From: HENRY::IN%"KND%dhdmpi5.bitnet%wiscvm.wisc.edu%sri-kl.ARPA%relay.cs.net@rca.com" 24-FEB-1987 21:58 To: Subj: Date: Tue, 24 Feb 87 17:35:44 n To: INFO-VAX@SRI-KL.ARPA From: KND%DHDMPI5.BITNET%relay.cs.net@rca.com Organisation: MPI fuer Kernphysik Postal-address: Saupfercheckweg, 6900 Heidelberg, W. Germany Phone: (6221)516-1 [switchboard] Subject: Ethernet QIO- Problem Header-Disclaimer: I don't like my headers either ! hi, I have a problem with the Ethernet QIO-Interface. When I init the Ethernet Ports in non promiscious mode, all works fine. But for promiscious mode the QIO returns a "BAD PARAMETER" I/O-status for NMA$C_PCLI_PRM (hex value= B18). Indeed this could not be a bad parameter because it works for non promiscious mode. Could it be a problem with the combination of other init parameters ? I include the init subroutine in my mail Post-Mail-Address E-Mail Hans Kandler PSI%02624562219303::KND Max-Planck-Institut fuer Kernphysik KND@DHDMPI5 (Bitnet / Earn) Postfach 1o398o D-69oo Heidelberg KND@DHDMPI5V (Bitnet / Earn) GERMANY Program follows ----------------------------------------------------------- ;--------------- FILE XESET.MAR 1-OCT-1986 15:50:15 -------------------- ; (NON-PROMISCUOUS VERSION) .LIBRARY /SYS$LIBRARY:LIB.MLB/ ; $IODEF ; VAX I/O definitions $NMADEF ; VAX definitions $XMDEF ; VAX Config calls NMA$C_LINPR_CLR = 2 ; Symbol not defined VMS V 3. ; ; Program constants ; receive_buf_size = 1498 ; Default max Receive buffer size per Port nbuff = 32 ; Number preallocated buffers per ; Protocol type device_buf_size = 1500 ; Maximum Hardware buffer size protocol_type = ^X0006 ;DARAUF REAGIERT ER !!!^X0660 ; Protoc ol type 0660 HEX user_header_length = 20 ; 20 Bytes "User-Header" ; ; Header size values in bytes ; preamble = 8 dest_address = 6 src_address = 6 protocol = 2 ; ; ------------------------------ .PSECT RWDATA,PIC,NOEXE,LONG ; ------------------------------ ; ; parblk: .WORD NMA$C_PCLI_BUS ; Buffer size /port .LONG receive_buf_size ; default value = 512 ; ---------------------------------------- .WORD NMA$C_PCLI_BFN ; Number of receive buffs / proto typ .LONG nbuff ; value = nbuff ; ---------------------------------------- .WORD NMA$C_PCLI_BSZ ; Hardware Buffer size (for all users) .LONG device_buf_size ; default value = 1500 ; ---------------------------------------- .WORD NMA$C_PCLI_PRM ; Promiscuous mode THIS WILL NOT WORK ;;; .LONG NMA$C_STATE_OFF ; default value = disabled .LONG NMA$C_STATE_ON ; !!!!! ********************************* ; ---------------------------------------- .WORD NMA$C_PCLI_MLT ; Multicast address state .LONG NMA$C_STATE_OFF ; default value = disabled ; ---------------------------------------- ;;; .WORD NMA$C_PCLI_MCA ; Multicast address ;;; .WORD 6$-4$ ;;;4$: .WORD NMA$C_LINMC_SET ; value = set adress string ;;; .WORD NMA$C_LINMC_CLR ; value = clear adress string ;;; .WORD NMA$C_LINMC_CAL ; value = clear all multic adr ;;; .BLKB 6 ; Multicast adr string ;;;6$: ; ---------------------------------------- .WORD NMA$C_PCLI_PAD ; Pad short buffers .LONG NMA$C_STATE_OFF ; value = padding disabled ;;; .LONG NMA$C_STATE_ON ; default value = padding enabled ; ---------------------------------------- ;;; .WORD NMA$C_PCLI_EKO ; Echo mode (only for DEUNA) ;;; .LONG NMA$C_STATE_OFF ; value = noecho ; ---------------------------------------- .WORD NMA$C_PCLI_DCH ; Data chaining .LONG NMA$C_STATE_OFF ; default value = no chaining ; ---------------------------------------- ;;; .WORD NMA$C_PCLI_CRC ; Generate CRC (only for DEUNA) ;;; .LONG NMA$C_STATE_ON ; default value = harware-CRC ; ---------------------------------------- .WORD NMA$C_PCLI_PTY ; Protocol type .LONG protocol_type ; value = protocol_type ; ---------------------------------------- .WORD NMA$C_PCLI_CON ; Controller mode .LONG NMA$C_LINCN_NOR ; value = normal ;;; .LONG NMA$C_STATE_OFF ; value = wirkt wie loopback ; ---------------------------------------- .WORD NMA$C_PCLI_ACC ; Protocol access .LONG NMA$C_ACC_EXC ; default value = exlusive use ;;; .LONG NMA$C_ACC_LIM ; value = limited ;;; .LONG NMA$C_ACC_SHR ; value = shared ; ---------------------------------------- .WORD NMA$C_PCLI_PHA ; Physical port address .WORD 20$-10$ 10$: .WORD NMA$C_LINMC_SET ; value = set adr string ;;; .WORD NMA$C_LINMC_CLR ; value = clear adr string ;;; .WORD NMA$C_LINMC_SDF ; value = DECNET default .BYTE ^XAA,^X00,^X04,^X00,^X14,^X04 ; == AA-00-04-00-14-04 == ; ;-----------------------------------> SO MUSS ES AUSSEHEN !!! ; .BYTE ^X04,^X14,^X00,^X04,^X00,^XAA ; ;; .BYTE ^X08,^X00,^X2B,^X02,^X95,^X39 ;DARAUF REAGIERT ER AUCH !! 20$: ; ---------------------------------------- .WORD NMA$C_PCLI_DES ; Shared Protl dest addr .WORD pb40-pb30 ; only meaningful for NMA$C_ACC_LIM pb30: .WORD NMA$C_LINMC_SET unitad: .BLKB 6 ; 6 byte dest ethernet address pb40: pblen=.-parblk ; Length of parameter block ; ; ============================================================ ; pbdesc: .LONG pblen ; Descriptor points to param block pbaddr: .ADDRESS parblk ;10unitad: .BLKB 6 ; 6 byte dest ethernet address ; eiosb:: .BLKQ 1 ; Status buflen: .LONG 0 ; ; ; Set ETHERNET parameters from FORTRAN : ; ; BYTE address(6) ! Filled in with destination address ; INTEGER syschan ! Filled in with system channel from SYS$ASSIGN ; INTEGER status ! to receive routine status ; ; status = ESET (syschan,address) ; ; ; ------------------------- .PSECT CODE,PIC,EXE .ENTRY ESET,^M<> ; ------------------------- MOVL #512,buflen MOVL 8(AP),R3 ; Copy address MOVB (R3)+,UNITAD+0 MOVB (R3)+,UNITAD+1 MOVB (R3)+,UNITAD+2 MOVB (R3)+,UNITAD+3 MOVB (R3)+,UNITAD+4 MOVB (R3)+,UNITAD+5 ; ; ; Set the mode function and init Controller ; ;;; $ASSIGN_S DEVNAM = DEVDSC,CHAN=DEVCHAN ;;; MOVL DEVCHAN,@4(AP) ;RICHTIGE CHANNEL-NUMMER ; $QIOW_S FUNC =#,- CHAN = @4(AP),- ;;; CHAN=DEVCHAN,- IOSB = eiosb,- P2 = #pbdesc ; ;;; $QIOW_S FUNC=#IO$_WRITEVBLK,CHAN=@4(AP),IOSB=IOSB,- ;;; P1=XMTBUF, P2=#XMTBUFLEN, P5=#DEST ; UNITAD ; ;;;; SEND MESSAGE 2 X RET ; ++++++++++++++ DEVDSC: .ASCID 'XQA0' DEVCHAN: .BLKL 1 ; ; ++++++++++++++++++++++ XMTBUF: .BLKB user_header_length .ASCII / MESSAGE FROM NODE HERING::/ .ASCII /ETHERNET TEST TEST TEST TEST .../ XMTBUFLEN=.-XMTBUF IOSB: .BLKQ 1 DEST: .BYTE ^XFF,^XFF,^XFF,^XFF,^XFF,^XFF,^X06,^X00 ; MULTICAST .END