| $LANUDEF @@ LANUDEF Version Identification@ LAN$C_LANUDEF_VERLAN$C LANUDEF_VER@K This constant is used (after swapping the protocol type bytes) to validate@ a protocol type. LAN$C_PTY_MINLAN$CPTY_MIN@ Protocol TypesP`NI$C_PTY_DUMP_LOADNI$C PTY_DUMP_LOAD DNA Dump/Load (MOP)P`NI$C_PTY_RMTCNNI$C PTY_RMTCN DNA Remote Console (MOP)P`NI$C_PTY_ROUTENI$C PTY_ROUTE DNA RoutingP` NI$C_PTY_LATNI$CPTY_LAT  Local Area Transport (LAT)P` NI$C_PTY_DIAGNI$CPTY_DIAG DiagnosticsP` NI$C_PTY_CUSTNI$CPTY_CUST Customer UseP` NI$C_PTY_SCANI$CPTY_SCA( System Communication Architecture (SCA)PNI$C_PTY_LOOPBNI$C PTY_LOOPB Loopback Assist protocol typePNI$C_PTY_TCPIPNI$C PTY_TCPIP TCP/IPP NI$C_PTY_ARPNI$CPTY_ARP ARPP8NI$C_PTY_BRIDGENI$C PTY_BRIDGE BRIDGEP; NI$C_PTY_ELNNI$CPTY_ELN VAX ELNP<NI$C_PTY_DNA MENI$C PTY_DNAME DNA Name ServiceP=NI$C_PTY_ENCRYNI$C PTY_ENCRY EncryptionP>NI$C_PTY_DTIMENI$C PTY_DTIME DNA Time ServiceP? NI$C_PTY_LTMNI$CPTY_LTM LTMP@ NI$C_PTY_BIOSNI$CPTY_BIOS BIOSPA NI$C_PTY_LASTNI$CPTY_LAST Local Area Storage (LAST)@& DIGITAL multicast address assignmentsPNI$C_MCA_L_MOPNI$C MCA_L_MOP DNA Dump/Load Assistance (MOP)@NI$C_MCA_W_MOPNI$C MCA_W_MOP DNA Dump/Load Assistance (MOP)P NI$C_MCA_L_RMTCNNI$C MCA_L_RMTCN DNA Remote Console (MOP)@NI$C_MCA_W_RMTCNNI$C MCA_W_RMTCN DNA Remote Console (MOP)PNI$C_MCA_L_ROUTERSNI$C MCA_L_ROUTERS DNA Routing Routers@NI$C_MCA_W_ROUTERSNI$C MCA_W_ROUTERS DNA Routing RoutersPNI$C_MCA_L_ENDNODENI$C MCA_L_ENDNODE DNA Routing End nodes@NI$C_MCA_W_ENDNODENI$C MCA_W_ENDNODE DNA Routing End nodesPNI$C_MCA_L_LATNI$C MCA_L_LAT Local Area Transport (LAT)@NI$C_MCA_W_L ATNI$C MCA_W_LAT Local Area Transport (LAT)PNI$C_MCA_L_CUSTNI$C MCA_L_CUST Customer Use@M CONSTANT MCA_W_CUST EQUALS %X0000-%XFFFF TAG C PREFIX NI$; /* Customer UsePNI$C_MCA_L_SCANI$C MCA_L_SCA( System Communication Architecture (SCA)@g CONSTANT MCA_W_SCA EQUALS %X0000-%XFFFF TAG C PREFIX NI$; /* System Communication Architecture (SCA)@" Cross-company address assignmentsPNI$C_CCA_L_BROADCASTNI$CCCA_L_BROADCAST BroadcastPNI$C_CCA_W_B ROADCASTNI$CCCA_W_BROADCAST BroadcastPNI$C_CCA_L_LOOPBACKANI$CCCA_L_LOOPBACKA Loopback Assistance@NI$C_CCA_W_LOOPBACKANI$CCCA_W_LOOPBACKA Loopback Assistance@ DNA SNAP SAP assignments@ NI$C_NULL_SAPNI$CNULL_SAP The NULL SAP PNI$C_LLC_MGT_FNC_SAPNI$CLLC_MGT_FNC_SAP% LLC SUBLAYER MANAGEMENT FUNCTION SAPPNI$C_LLC_MGT_SAPNI$C LLC_MGT_SAP LLC SUBLAYER MANAGEMENT SAPP NI$C_SNAP_SAPNI$CSNAP_SAP The SNAP SAP @ DNA DSAP assignmentsPNI$C_GLOBAL_DSAPNI$C GLOBAL_DSAP GLOBAL DSAP @ DNA GROUP SAP assignmentsPNI$C_MAX_NO_GSAPNI$C MAX_NO_GSAP& Maximum number of group SAPs per user@ LAN frame constantsPNI$C_CRCNI$CCRC Size of Ethernet CRCPNI$C_ADDR_SIZENI$C ADDR_SIZE Maximum size of NI addressP NI$C_LEN_SIZENI$CLEN_SIZE Size of the length field@ CSMACD frame constantsPNI$C_MAX_PKTSIZENI$C MAX_PKTSIZE+ Maximum of Ethernet P acket without paddingPNI$C_MAX_PKTSIZE_PADNI$CMAX_PKTSIZE_PAD( Maximum of Ethernet Packet with paddingPNI$C_MAX_PKTSIZE_CLINI$CMAX_PKTSIZE_CLI Maximum of 802 PacketPNI$C_MAX_PKTSIZE_USRNI$CMAX_PKTSIZE_USR Maximum of 802 PacketPNI$C_MAX_PKTSIZE_802ENI$CMAX_PKTSIZE_802E Maximum of 802E PacketPNI$C_MAX_PKTSIZE_HWANI$CMAX_PKTSIZE_HWA1 Maximum hardware Packet including header and CRCP.NI$C_MIN_PKTSIZENI$C MIN_PKTSIZE M inimum of Ethernet Packet@@% Frame/packet header sizes for CSMACD@PNI$C_HDRSIZE_ETHNI$C HDRSIZE_ETH+ Maximum of Ethernet Packet without paddingPNI$C_HDRSIZE_PADNI$C HDRSIZE_PAD( Maximum of Ethernet Packet with paddingPNI$C_HDRSIZE_CLINI$C HDRSIZE_CLI Maximum of 802 PacketPNI$C_HDRSIZE_USRNI$C HDRSIZE_USR Maximum of 802 PacketPNI$C_HDRSIZE_802ENI$C HDRSIZE_802E Maximum of 802E Packet@ LAN Item List definitionsP DLL$K_DL_ENTITYDLL$ DL_ENTITY Create InputP DLL$K_CLIENTDLL$CLIENT Create InputPDLL$K_DL_TEMPLATEDLL$ DL_TEMPLATE Create InputPDLL$K_LAN_DEVICEDLL$ LAN_DEVICE Create InputPDLL$K_PORT_ENTITYDLL$ PORT_ENTITY Create OutputPDLL$K_MINIMUM_BUFFER_SIZEDLL$MINIMUM_BUFFER_SIZE Enable InputPDLL$K_PREFERRED_BUFFER_SIZEDLL$PREFERRED_BUFFER_SIZE Enable InputPDLL$K_PROTOCOLIDDLL$ PROTOCOLID Enable InputP DLL$K_DECU SERDATADLL$ DECUSERDATA Enable InputP DLL$K_PROFILEDLL$PROFILE Enable OutputP DLL$K_ACTUAL_BUFFER_SIZEDLL$ACTUAL_BUFFER_SIZE Enable Output@++@@J This structure represents a LAN module entity. There will be one used to@L represent CSMA/CD; even if there are multiple CSMA/CD stations. There will@$ also be one used to represent FDDI.@@6 These are the common fields of the LAN module entity.@--4 TQEDEFTQE$TQEDEF  TQ E$R_RQTYPE_OVERLAYTQE$RRQTYPE_OVERLAY  TQE$R_RQTYPE_BITSTQE$R RQTYPE_BITS  TQE$R_PID_OVERLAYTQE$R PID_OVERLAY TQE$R_AST_OVERLAYTQE$R AST_OVERLAY TQE$R_ASTPRM_OVERLAYTQE$RASTPRM_OVERLAYPLLAN$K_FIXED_LENGTH FIXED_LENGTH Length of LAN blockLLANUDEFLAN$LANUDEF @D This is version 1 of the LAN structure. Use #1 (no symbol) for the@ version field.N  LAN$L_VERSIONLA N$LVERSION Version of LAN databaseO LAN$L_RESERVED1LAN$L RESERVED1 ReservedGLAN$A_GET_DEVICELAN$A GET_DEVICE Address of LAN$GET_DEVICEO  LAN$L_RESERVED2LAN$L RESERVED2 ReservedGLAN$A_CREATE_PORTLAN$A CREATE_PORT Address of LAN$CREATE_PORTGLAN$A_DELETE_PORTLAN$A DELETE_PORT Address of LAN$DELETE_PORT44 LAN$T_TQELAN$TTQE@ TQE for the one second timer  $LDCDEF @++@@% LAN Device Characteristics structure@@D This data structure is returned on a call to LAN$GET_DEVICE. It is@ embedded in the LSB.@@--P LDC$K_LENGTHLENGTH Length of LDC blockLDCDEFLDC$LDCDEF F LDC$A_NAMELDC$ANAME Address of a counted string@ containing the device nameO LDC$W_TYPELDC$WTYPE Type of device - same as@ VCIB$W_DLL_TYPEO LDC$W_RCVSIZELDC$WRCVSI ZE! Number of entries in the receive@ ringO  LDC$L_RATE128LDC$LRATE128# Kilobits per second with 128 bytes@ of user data (on transmit)O   LDC$L_RATE256LDC$LRATE256# Kilobits per second with 256 bytes@ of user data (on transmit)O LDC$B_DEVTYPELDC$BDEVTYPE VMS Device type (from the UCB)O LDC$B_MOPIDLDC$BMOPID MOP ID for this deviceO LDC$W_EXTRA_WLDC$WEXTRA_W Preserve alignmen tO  LDC$L_MOPNAMELDC$LMOPNAME Counted string (always three@ characters) for MOP name@C Remember to make sure that this structure is an integral number of@4 quadwords. That helps keep the LSB fields aligned. $LILDEF @++@@ LAN Item List definitions@@K This data structure should look like a DECnet-VAX item list. We don't use@A the DECnet-VAX item list symbols because they are not available.@@--P LIL$T_DATATDATA Start of the itemlistP LIL$T_ITEMVALTITEMVAL Value for this item LILDEFLIL$LILDEF  LIL$R_LIL_UNIONLIL$R LIL_UNION @D This structure definition will describe the header of the itemlist. LIL$R_HEADER_FIELDSLIL$R HEADER_FIELDS N  LIL$L_LISTLENLIL$LLISTLEN Number of bytes in the listG LIL$A_LISTADRLIL$ALISTADR Address of the listO LIL$W_SIZELIL$WSIZE Size of structureO   LIL$B_TYPELIL$BTYPE Type = DYN$C_NETO  LIL$B_SUBTYPELIL$BSUBTYPE Subtype = DYN$C_NET_ITEM @G This structure definition will describe an item in the itemlist. Note@F that the ITEMLEN field includes the size of the ITEMLEN, ITEMTAG, and@ ITEMVAL fields.LIL$R_LIST_FIELDSLIL$R LIST_FIELDS N LIL$W_ITEMLENLIL$WITEMLEN Number of bytes in the itemO LIL$W_ITEMTAGLIL$WITEMTAG Size of structure  $VCIBDLLDEF @++@@; Data Link definitions that follow the standard VCIB fields@@--< VCIBDEFVCIB$VCIBDEFVCIB$M_DLL_RCV_DCBVCIB$M DLL_RCV_DCBVCIB$M_DLL_RCV_MACVCIB$M DLL_RCV_MACVCIB$M_DLL_XMT_CHAINVCIB$M DLL_XMT_CHAINVCIB$M_DLL_XMT_RCVRSBVCIB$MDLL_XMT_RCVRSBVCIB$M_DLL_PORT_STATUSVCIB$MDLL_PORT_STATUSPVCIB$K_DLL_CSMACDVCIB$ DLL_CSMACD CSMACD data linkP VCIB$K_DLL_DDCMPVCIB$ DLL_DDCMP DDCMP data linkPVCIB$K_DLL_FDDIVCIB$DLL_FDDI FDDI data linkPVCIB$K_DLL_HDLCVCIB$DLL_HDLC HDLC data linkPVCIB$K_DLL_LAPBVCIB$DLL_LAPB LAPB data linkVCIB$M_LAN_RCV_LIMVCIB$M LAN_RCV_LIMVCIB$M_LAN_RCV_ICSVCIB$M LAN_RCV_ICSVCIB$M_LAN_FTCVCIB$MLAN_FTCVCIB$M_LAN_2ND_DEVVCIB$M LAN_2ND_DEVVCIB$M_LAN_SFRVCIB$MLAN_SFR VCIB$M_L AN_SCCVCIB$MLAN_SCCVCIB$M_LAN_RCV_DCBVCIB$M LAN_RCV_DCBVCIB$M_LAN_DP_DELAYVCIB$M LAN_DP_DELAYPVCIB$K_LAN_FIXED_LENGTHLAN_FIXED_LENGTH Length of LAN VCIBVCIB$M_SYN_UNSEQVCIB$M SYN_UNSEQPVVCIB$K_SYN_FIXED_LENGTHSYN_FIXED_LENGTH Length of SYN VCIB VCIBDLLDEFVCIB$ VCIBDLLDEF @D First get to the end of the common VCIB section. Then we can start@ the overlay.<<VCIB$B_DLL_FILLERVC IB$B DLL_FILLER@B DLL extensions to the VCIB. Note that the DLL extension includes@@ some generic extensions (DLL) followed by an overlay of the LAN@ and SYN extensions.G<VCIB$A_DLL_INPUT_LISTVCIB$ADLL_INPUT_LIST Address of input item listG@VCIB$A_DLL_OUTPUT_LISTVCIB$ADLL_OUTPUT_LIST Address of output item listDVCIB$R_DLL_OVERLAY_1VCIB$R DLL_OVERLAY_1 ODVCIB$W_DLL_CLIENT_FLAGSVCIB$WDLL_CLIENT_FLAGS Flag s specified by clientDVCIB$R_DLL_FLAGS_1VCIB$R DLL_FLAGS_1 _D VCIB$V_DLL_RCV_DCBVCIB$V DLL_RCV_DCB 1 = Can pass DCB on RCVD VCIB$V_DLL_RCV_MACVCIB$V DLL_RCV_MAC determines where @ VCRP$A_LAN_R_HEADER points:@ 0 = the LHI structure @ 1 = MAC specific frame header@ FDDI: [FC]@ CSMACD: [DA]?D  VCIB$V_fill_0VCIB$Vfill_0 FVCIB$R_DLL_OVERLAY_2VCIB$R DLL_OV ERLAY_2 OFVCIB$W_DLL_FLAGSVCIB$W DLL_FLAGS Flags specified by data linkFVCIB$R_DLL_FLAGS_2VCIB$R DLL_FLAGS_2 _F VCIB$V_DLL_XMT_CHAINVCIB$V DLL_XMT_CHAIN 1 = device can chainF VCIB$V_DLL_XMT_RCVRSBVCIB$VDLL_XMT_RCVRSB 1 = DL can XMT on RCV RSBF VCIB$V_DLL_PORT_STATUSVCIB$VDLL_PORT_STATUS 1 = PORT USABLE was last event@ 0 = PORT UNUSABLE was last @! even t, OR no USABLE/UNUSABLE@ event has occured yet?F  VCIB$V_fill_1VCIB$Vfill_1 OHVCIB$W_DLL_TYPEVCIB$WDLL_TYPE Type of data linkOJVCIB$W_DLL_HDR_SIZEVCIB$W DLL_HDR_SIZE Max data link header in bytesOLVCIB$W_DLL_XMT_SIZEVCIB$W DLL_XMT_SIZE Max transmit in bytesONVCIB$W_DLL_CHAIN_SIZEVCIB$WDLL_CHAIN_SIZE Min size of 1st chain in bytes@1 Define the values for the field VCIB$W_DLL_TYPE.P<VCIB$R_DLL_VCIB_ADDITIONSVCIB$RDLL_VCIB_ADDITIONS @6 LAN extensions to the VCIB; after the DLL extensions.P<VCIB$R_LAN_VCIBVCIB$RLAN_VCIB GPVCIB$A_LAN_LPBVCIB$ALAN_LPB Address of LAN Port BlockGTVCIB$A_LAN_UCBVCIB$ALAN_UCB Address of UCBGXVCIB$A_LAN_BUILD_HDRVCIB$A LAN_BUILD_HDR Address of LAN's Build Header@ serviceG\VCIB$A_LAN_TRANSMIT_FRAMEVCIB$ALAN_TRANS MIT_FRAME Address of LAN's Transmit @ Frame serviceG`VCIB$A_LAN_TRANSMIT_AVAILVCIB$ALAN_TRANSMIT_AVAIL Address of available TransmitsOdVCIB$W_LAN_MAX_RCVVCIB$W LAN_MAX_RCV Max outstanding receivesOfVCIB$W_LAN_OUT_RCVVCIB$W LAN_OUT_RCV Number of outstanding receiveshVCIB$R_LAN_OVERLAY_1VCIB$R LAN_OVERLAY_1 OhVCIB$W_LAN_CLIENT_FLAGSVCIB$WLAN_CLIENT_FLAGS Flags specified by clienth VCIB$R_LAN_FLAGS_1VCIB$R LAN_FLAGS_1 _h VCIB$V_LAN_RCV_LIMVCIB$V LAN_RCV_LIM 1 = DL will limit the #@ of RCV VCRPsh VCIB$V_LAN_RCV_ICSVCIB$V LAN_RCV_ICS 1 = DL must init context@ stack in RCV VCRPsh VCIB$V_LAN_FTCVCIB$VLAN_FTC 1 = Fast Transmit Completeh VCIB$V_LAN_2ND_DEVVCIB$V LAN_2ND_DEV 1 = Use 2nd deviceh VCIB$V_LAN_SFR VCIB$VLAN_SFR 1 = Skip field restoreh VCIB$V_LAN_SCCVCIB$VLAN_SCC 1 = Skip completion check?h  VCIB$V_fill_2VCIB$Vfill_2 jVCIB$R_LAN_OVERLAY_2VCIB$R LAN_OVERLAY_2 OjVCIB$W_LAN_FLAGSVCIB$W LAN_FLAGS Flags specified by LANjVCIB$R_LAN_FLAGS_2VCIB$R LAN_FLAGS_2 _j VCIB$V_LAN_RCV_DCBVCIB$V LAN_RCV_DCB 1 = DL supports delivery of@ VC RP/DCB setsj VCIB$V_LAN_DP_DELAYVCIB$V LAN_DP_DELAY 1 = Disable Port is being@ delayed?j  VCIB$V_fill_3VCIB$Vfill_3 GlVCIB$A_LAN_LDCVCIB$ALAN_LDC Address of the LDC structureGp VCIB$L_LAN_OOCNTVCIB$L LAN_OOCNT! Number of operations outstandingGtVCIB$A_LAN_DP_VCRPVCIB$A LAN_DP_VCRP! Address of the Disable Port VCRP@ being disabled. Only valid if@ the DP_DELAY flag is set.GxVCIB$A_LAN_HWAVCIB$ALAN_HWA pointer to HWA/MLAG|VCIB$A_LAN_PHAVCIB$ALAN_PHA pointer to PHAG VCIB$L_LAN_RESERVED1VCIB$L LAN_RESERVED1 For future expansionG VCIB$Q_LAN_RESERVED2VCIB$Q LAN_RESERVED2 For future expansion @6 SYN extensions to the VCIB; after the DLL extensions.PVCIB$R_SYN_VCIBVCIB$RSYN_VCIB GPVCIB$A_SYN_UP_PORTVCIB$A SYN_UP_PORT Used only by the data linkT VCIB$R_SYN_OVERLAY_1VCIB$R SYN_OVERLAY_1 OTVCIB$W_SYN_CLIENT_FLAGSVCIB$WSYN_CLIENT_FLAGS Flags specified by clientTVCIB$R_SYN_FLAGS_1VCIB$R SYN_FLAGS_1 _T VCIB$V_SYN_UNSEQVCIB$V SYN_UNSEQ 1 = Client wants unseq port?T  VCIB$V_fill_4VCIB$Vfill_4  $VCRPLANDEF @++@@> LAN definitions that are embedded in the standard VCRP fields@@--T VCRPSTACKDEFSTACK$ VCRPSTACKDEF VCRPDEFVCRP$VCRPDEF  VCRP$R_RMOD_OVERLAYVCRP$R RMOD_OVERLAY  VCRP$R_RMOD_BITSVCRP$R RMOD_BITS VCRP$R_COMMON_FLAGS_OVERLAYVCRP$RCOMMON_FLAGS_OVERLAY VCRP$R_COMMON_FLAGS_BITVCRP$RCOMMON_FLAGS_BIT$  VCRP$R_VCRP_REQUESTVCRP$R VCRP_REQUEST$ VCRP$R_REQUEST_OVERLAYVCRP$RREQUEST_OVERLAY$ VCRP$R_DATA_REQUEST VCRP$R DATA_REQUEST$ VCRP$R_MGMT_REQUESTVCRP$R MGMT_REQUESTP VCRP$R_STATUS_OVERLAYVCRP$RSTATUS_OVERLAYP VCRP$R_QUAD_REQUESTVCRP$R QUAD_REQUESTP VCRP$R_LONG_REQUESTVCRP$R LONG_REQUEST\@ VCRP$r_fill_1VCRP$rfill_1\ VCRP$r_fill_2VCRP$rfill_2\ VCRP$R_CREATOR_DATA_OVERLAYVCRP$RCREATOR_DATA_OVERLAY\ VCRP$R_QUAD_CREATOR_DATAVCRP$RQ UAD_CREATOR_DATA\ VCRP$R_LONG_CREATOR_DATAVCRP$RLONG_CREATOR_DATAVCRP$K_FC_DLL_BASEVCRP$ FC_DLL_BASEVCRP$K_FC_SYN_ENTER_MAINTVCRP$FC_SYN_ENTER_MAINTVCRP$K_FC_SYN_EXIT_MAINTVCRP$FC_SYN_EXIT_MAINTVCRP$K_FC_X25_RESETVCRP$ FC_X25_RESETVCRP$K_FC_X25_ACK_NOCOMVCRP$FC_X25_ACK_NOCOMVCRP$K_FC_LAN_CHANGE_PORTVCRP$FC_LAN_CHANGE_PORTVCRP$K_FC_DLL_LASTVCRP$ FC_DLL_LAST@ Data Link event codesVCRP $K_EC_DLL_BASEVCRP$ EC_DLL_BASEVCRP$K_EC_DLL_PORT_USABLEVCRP$EC_DLL_PORT_USABLEVCRP$K_EC_DLL_PORT_UNUSABLEVCRP$EC_DLL_PORT_UNUSABLEVCRP$K_EC_LAN_NEW_ADDRESSVCRP$EC_LAN_NEW_ADDRESSVCRP$K_EC_LAN_RCV_CONGESTIONVCRP$EC_LAN_RCV_CONGESTIONVCRP$K_EC_LAN_RCV_PDU_LOSTVCRP$EC_LAN_RCV_PDU_LOSTVCRP$K_EC_SYN_STATION_DELETEDVCRP$EC_SYN_STATION_DELETEDVCRP$K_EC_X25_INCOMING_RESETVCRP$EC_X25_INCOMING_RESETVCRP$K_EC_X25 _INCOMING_NOCOMVCRP$EC_X25_INCOMING_NOCOMVCRP$K_EC_LAN_RESTART_FAILVCRP$EC_LAN_RESTART_FAIL VCRP$K_EC_LAN_STATION_RENAMEDVCRP$EC_LAN_STATION_RENAMED VCRP$K_EC_DLL_LASTVCRP$ EC_DLL_LAST@A Since we need to overlay many fields, we will do each field in aPVCRP$L_LAN_802XMTL LAN_802XMT 802.2 XMT parametersVCRP$M_LAN_FLTR_MCAVCRP$M LAN_FLTR_MCAVCRP$M_LAN_FLTR_CTLVCRP$M LAN_FLTR_CTLVCRP$M_LAN_FLTR_SRCVCRP$ M LAN_FLTR_SRCVCRP$M_LAN_FLTR_STARTUPVCRP$MLAN_FLTR_STARTUPVCRP$M_LAN_FLTR_INTXMITVCRP$MLAN_FLTR_INTXMITVCRP$M_LAN_FLTR_DATVCRP$M LAN_FLTR_DATVCRP$M_LAN_CHAINEDVCRP$M LAN_CHAINEDVCRP$M_LAN_SVAPTEVCRP$M LAN_SVAPTEVCRP$M_LAN_1ST_SEGVCRP$M LAN_1ST_SEGVCRP$T_LAN_DATATLAN_DATA@A Now define maximum length needed, allowing for maximum alignmentFVCRP$C_LAN_OVERHEADC LAN_OVER HEAD@1 Now define all the fields in the various headersPVCRP$W_LAN_LEN_802W LAN_LEN_802 802 length fieldPVCRP$T_LAN_USER_ETHT LAN_USER_ETH Start of user ETH dataPVCRP$W_LAN_SIZEWLAN_SIZE Size of message if paddedPVCRP$X_LAN_CTLXLAN_CTL 802 CTL fieldPVCRP$G_LAN_PIDGLAN_PID 5-byte Protocol IdentifierPVCRP$T_LAN_USER_802ET LAN_USER_802E Start of user 802E data VCRPLANDEFVCRP$ VCRPLANDEF @D First we will define all the function codes and all the event codes@% used specifically by the data links.@ Data Link function codes@: separate overlay. That way, we can do them in any order.VCRP$R_VCRPLAN_OVERLAYVCRP$RVCRPLAN_OVERLAY @H========================================================================@E Data Request - For receive, LAN needs a field that will point to the@ data link header.AVCRP$R_VCRPLAN_DATA_REQUESTVCRP$RVCRPLAN_DATA_REQUEST < <VCRP$B_LAN_FILLER1VCRP$B LAN_FILLER1G<VCRP$A_LAN_R_HEADERVCRP$A LAN_R_HEADER" Address of receive packet header O@ VCRP$B_LAN_FCVCRP$BLAN_FC FC value for FDDI xmit/recv @H========================================================================@/ Mgmt Request - LAN needs the P2 buffer fields.8VCRP$R_VCRPLAN_MGMT_REQUESTVCRP$RVCRPLAN_MGMT_REQUEST 00VCRP$B_LAN_FILLER2VCRP$B LAN_FILLER20 VCRP$L_LAN_P2BUFF_SIZEVCRP$LLAN_P2BUFF_SIZE@ LAN P2 buffer sizeG4VCRP$A_LAN_P2BUFFVCRP$A LAN_P2BUFF LAN P2 buffer @H========================================================================@+ Scratch area - LAN needs many fields here.VCRP$R_VCRPLAN_SCRATCHVCRP$RVCRPLAN_SCRATCH VCRP$B_LAN_FILLER3VCRP$B LAN_FILLER3O VCRP$Q_LAN_T_DESTVCRP$Q LAN_T_DEST Destination addressOVCRP$ W_LAN_T_CTLVCRP$W LAN_T_CTL 802.2 ctl fieldOVCRP$B_LAN_T_CTL_SIZEVCRP$BLAN_T_CTL_SIZE 802.2 ctl field value sizeOVCRP$B_LAN_T_DSAPVCRP$B LAN_T_DSAP 802.2 XMT dest. sapOVCRP$B_LAN_T_RESPVCRP$B LAN_T_RESP 802.2 command/response flagVCRP$R_LAN_FILTERVCRP$R LAN_FILTER @ VCRP$r_fill_5VCRP$rfill_5 OVCRP$B_LAN_R_FILTERVCRP$B LAN_R_FILTER Receive filtering mas k  VCRP$r_fill_6VCRP$rfill_6 _ VCRP$V_LAN_FLTR_MCAVCRP$V LAN_FLTR_MCA! MCA filtering has been performed VCRP$V_LAN_FLTR_CTLVCRP$V LAN_FLTR_CTL! CTL filtering has been performed VCRP$V_LAN_FLTR_SRCVCRP$V LAN_FLTR_SRC! SRC filtering has been performed?  VCRP$V_fill_7VCRP$Vfill_7 @ VCRP$r_fill_8VCRP$rfill_8 OVCRP$B_ LAN_T_FILTERVCRP$B LAN_T_FILTER Transmit filtering mask  VCRP$r_fill_9VCRP$rfill_9 _ VCRP$V_LAN_FLTR_STARTUPVCRP$VLAN_FLTR_STARTUP Delete VCRP, complete IRP VCRP$V_LAN_FLTR_INTXMITVCRP$VLAN_FLTR_INTXMIT Add VCRP to Receive list VCRP$V_LAN_FLTR_DATVCRP$V LAN_FLTR_DAT Duplicate Address Test@ VCRP for LOOPBACK? VCRP$V_fill_10VCRP$Vfill_10 OVCRP$B_LAN_PORT1VCRP$B LAN_PORT1 Port specific byteOVCRP$B_LAN_PORT2VCRP$B LAN_PORT2 Port specific byteOVCRP$W_LAN_HDR_SIZEVCRP$W LAN_HDR_SIZE Size of receive hdrOVCRP$B_LAN_R_FMTVCRP$B LAN_R_FMT Receive packet formatGVCRP$A_LAN_UCBVCRP$ALAN_UCB Address of UCBOVCRP$B_LAN_DIAG_FLAGSVCRP$BLAN_DIAG_FLAGS Diagnostic flagsOVCRP$B_LAN_FUNCTION VCRP$B LAN_FUNCTION Function for this requestOVCRP$W_LAN_CODEVCRP$WLAN_CODE Parameter codeOVCRP$W_LAN_LENERRVCRP$W LAN_LENERR Diagnostic info.OVCRP$W_LAN_STATUSVCRP$W LAN_STATUS LAN status info.@VCRP$r_fill_11VCRP$rfill_11 OVCRP$B_LAN_FLAGSVCRP$B LAN_FLAGS FlagsVCRP$r_fill_12VCRP$rfill_12 _ VCRP$V_LAN_CHAINEDVCRP$V LAN_CHA INED Transmit is chained VCRP$V_LAN_SVAPTEVCRP$V LAN_SVAPTE 2nd entry uses SVAPTE/BOFF VCRP$V_LAN_1ST_SEGVCRP$V LAN_1ST_SEG 1st entry is being worked? VCRP$V_fill_13VCRP$Vfill_13 @E When the CHAINED bit is set, the following fields are used to get to@D the second buffer in the chain. DCBBCNT has the number of bytes in@B the second entry. Either DCBSVA or DCBSVAPTE/DCBBOFF are used to@A lo cate the buffer. Use DCBSVA if the SVAPTE flag is clear. Use@- DCBSVAPTE/DCBBOFF if the SVAPTE flag is set.O VCRP$L_LAN_DCBBCNTVCRP$L LAN_DCBBCNT Size of 2nd entryVCRP$R_LAN_UNION1VCRP$R LAN_UNION1 O VCRP$L_LAN_DCBSVAVCRP$L LAN_DCBSVA SVA of 2nd entryO VCRP$L_LAN_DCBSVAPTEVCRP$L LAN_DCBSVAPTE SVAPTE of 2nd entry O VCRP$L_LAN_DCBBOFFVCRP$L LAN_DCBBOFF BOFF of 2nd entry@B If reque sted, we will save the buffer descriptor fields here on a@C transmit request so that we can restore them when we are finished.O VCRP$L_LAN_SBOFFVCRP$L LAN_SBOFF Saved BOFF valueO VCRP$L_LAN_SBCNTVCRP$L LAN_SBCNT Saved BCNT valueO VCRP$L_LAN_STPSVCRP$LLAN_STPS Saved TOTAL_PDU_SIZE value @H========================================================================@? Receive PDU area - We will define the fields that describe th e@B fields in the received frames. Note that the DA must be quadword@ aligned for some devices.VCRP$R_VCRPLAN_RCVPDUVCRP$RVCRPLAN_RCVPDU VCRP$B_LAN_FILLER4VCRP$B LAN_FILLER4@> First we need to align the data field to be quadword aligned.@< In the furture we should do this so that it adjusts itself.@> Right now we are hacking in a longword because we know that's@ what we need.O VCRP$L_LAN_ALIGNVCRP$L LAN_ALIGN Need quadword alignment@9 Now define the generic "beginning of receive data" field@@ in any driver (currently that maximum is 31 bytes for FXDRIVER)OVCRP$G_LAN_DESTVCRP$GLAN_DEST Destination addressOVCRP$G_LAN_SRCVCRP$GLAN_SRC Source addressOVCRP$W_LAN_PTYPEVCRP$W LAN_PTYPE Protocol typeOVCRP$B_LAN_DSAPVCRP$BLAN_DSAP 802 DSAP fieldOVCRP$B_LAN_SSAPVCRP$BLAN_SSAP 802 SSAP field  $PROTODEF @@ LAN FRAME/PACKET DEFINITONS@ FRAME TYPES:@ FDDI@ CSMA/CD @ Ethernet@ IEEE 802.3@ PACKET TYPES@ Mapped Ethernet (FDDI only)@ 802.2@ 802E@@@ FDDI Frame Header@P FDDI$C_HDR_LENCHDR_LEN Size of FDDI HeaderN FDDI_HDRFDDI$FDDI_HDR FDDI Frame header structure N FDDI$B_FCFDDI$BFC Frame Control fieldO FDDI$G_DAF DDI$GDA Destination Address fieldO FDDI$G_SAFDDI$GSA Source Address field @@G Maximum Frame length for FDDI including all fields from FC through CRC@FDDI$C_MAX_FRM_LENFDDI$C MAX_FRM_LEN@@& Maximum Packet lengths for FDDI users@P~FDDI$C_MAX_PKTSIZEFDDI$C MAX_PKTSIZE6 Maximum Packet for FDDI (SMT user can send this size)PvFDDI$C_MAX_PKTSIZE_ETHFDDI$CMAX_PKTSIZE_ETH* Maximum of Mapped Ethernet Packet on F DDIPtFDDI$C_MAX_PKTSIZE_PADFDDI$CMAX_PKTSIZE_PAD7 Maximum of Mapped Ethernet Packet with padding on FDDIP{FDDI$C_MAX_PKTSIZE_CLIFDDI$CMAX_PKTSIZE_CLI Maximum of 802 Packet on FDDIPzFDDI$C_MAX_PKTSIZE_USRFDDI$CMAX_PKTSIZE_USR Maximum of 802 Packet on FDDIPvFDDI$C_MAX_PKTSIZE_802EFDDI$CMAX_PKTSIZE_802E Maximum of 802E Packet on FDDIPFDDI$C_MAX_PKTSIZE_HWAFDDI$CMAX_PKTSIZE_HWA1 Maximum hardware Packet including header and CRC@FDDI $C_MIN_PKTSIZEFDDI$C MIN_PKTSIZE Minimum Packet (any user)@@# Frame/packet header sizes for FDDI@PFDDI$C_HDRSIZE_ETHFDDI$C HDRSIZE_ETH+ Maximum of Ethernet Packet without paddingPFDDI$C_HDRSIZE_PADFDDI$C HDRSIZE_PAD( Maximum of Ethernet Packet with paddingPFDDI$C_HDRSIZE_CLIFDDI$C HDRSIZE_CLI Maximum of 802 PacketPFDDI$C_HDRSIZE_USRFDDI$C HDRSIZE_USR Maximum of 802 PacketPFDDI$C_HDRSIZE_802EFDDI$C HDRSIZE_802E Maxi mum of 802E Packet{FDDI$C_MAX802_PKTSIZFDDI$C MAX802_PKTSIZvFDDI$C_MAX802E_PKTSIZFDDI$CMAX802E_PKTSIZvFDDI$C_MAXMPETH_PKTSIZFDDI$CMAXMPETH_PKTSIZtFDDI$C_MAXMPETHPAD_PKTSIZFDDI$CMAXMPETHPAD_PKTSIZ@@ Constants for FC definitions@@ FDDI$V_FC_PPPFDDI$VFC_PPP FC PPP field starts at bit 0P FDDI$M_FC_PPPFDDI$MFC_PPP% FC PPP field is low order three bitsP FDDI$S_FC_PPPFDDI$SFC_PPP FC PPP field is 3 bits wid ePPFDDI$C_FC_LLC_MINFDDI$C FC_LLC_MIN FC for LLC Users (minimum)PPFDDI$C_FC_LLC_DEFFDDI$C FC_LLC_DEF FC for LLC Users (default)PWFDDI$C_FC_LLC_MAXFDDI$C FC_LLC_MAX FC for LLC Users (maximum)PAFDDI$C_FC_SMT_MINFDDI$C FC_SMT_MIN FC for LLC Users (minimum)PAFDDI$C_FC_SMT_DEFFDDI$C FC_SMT_DEF FC for LLC Users (default)POFDDI$C_FC_SMT_MAXFDDI$C FC_SMT_MAX FC for LLC Users (maximum)@@* CSMACD (Ethernet/IEEE 802.3) Frame Header@PCSMACD$C_HDR_LENCHDR_LEN Size of CSMACD HeaderPCSMACD$C_PAD_LENCPAD_LEN Size of CSMACD Header CSMACD_HDRCSMACD$ CSMACD_HDR N CSMACD$G_DACSMACD$GDA Destination Address fieldO CSMACD$G_SACSMACD$GSA Source Address field@@ The next field (field3) has different meanings depending on the@6 Specific CSMACD frame type (Ethernet vs. IEEE 802.3): CSMACD$r_field3CSMACD$r field3  CSMACD$r_field3_ethCSMACD$r field3_eth O  CSMACD$W_PTYCSMACD$WPTY Ethernet Protocol Type field  CSMACD$r_field3_802CSMACD$r field3_802 O CSMACD$W_LEN_8023CSMACD$WLEN_8023 IEEE 802.3 Length field O CSMACD$W_PADCSMACD$WPAD$ optional Ethenet Length (PAD) field @@G Maximum Frame length for FDDI including all fields from FC through CRC@CSMACD$C_MAX_FRM_LEN CSMACD$C MAX_FRM_LEN@@( Maximum Packet lengths for CSMACD users@PCSMACD$C_MAX_PKTSIZECSMACD$C MAX_PKTSIZE+ Maximum of Ethernet Packet without paddingPCSMACD$C_MAX_PKTSIZE_ETHCSMACD$CMAX_PKTSIZE_ETH+ Maximum of Ethernet Packet without paddingPCSMACD$C_MAX_PKTSIZE_PADCSMACD$CMAX_PKTSIZE_PAD( Maximum of Ethernet Packet with paddingPCSMACD$C_MAX_PKTSIZE_CLICSMACD$CMAX_PKTSIZE_CLI Maximum of 802 PacketPCSMACD$C_MAX_PKTSIZE_USR CSMACD$CMAX_PKTSIZE_USR Maximum of 802 PacketPCSMACD$C_MAX_PKTSIZE_802ECSMACD$CMAX_PKTSIZE_802E Maximum of 802E PacketPCSMACD$C_MAX_PKTSIZE_HWACSMACD$CMAX_PKTSIZE_HWA1 Maximum hardware Packet including header and CRCP.CSMACD$C_MIN_PKTSIZECSMACD$C MIN_PKTSIZE Minimum of Ethernet PacketPCSMACD$C_HDRSIZE_ETHCSMACD$C HDRSIZE_ETH+ Maximum of Ethernet Packet without paddingPCSMACD$C_HDRSIZE_PADCSMACD$C HDRSIZE_PAD( Maximum of Ethern et Packet with paddingPCSMACD$C_HDRSIZE_CLICSMACD$C HDRSIZE_CLI Maximum of 802 PacketPCSMACD$C_HDRSIZE_USRCSMACD$C HDRSIZE_USR Maximum of 802 PacketPCSMACD$C_HDRSIZE_802ECSMACD$C HDRSIZE_802E Maximum of 802E PacketCSMACD$C_MAX802_PKTSIZCSMACD$C MAX802_PKTSIZCSMACD$C_MAX802E_PKTSIZCSMACD$CMAX802E_PKTSIZCSMACD$C_MAXETH_PKTSIZCSMACD$C MAXETH_PKTSIZCSMACD$C_MAXETHPAD_PKTSIZCSMACD$CMAXETHPAD_PKTSIZ@@ Packet Header Definitions@@@ Packet headers begin at the byte following the FDDI or CSCMACD @; frame header. (at offsets FDDI$C_HDR_LEN/CSMACD$C_HDR_LEN)@@ Packet types supported:@( - FDDI mapped ethernet (for FDDI only)@% - IEEE 802.1 SNAP SAP (802E/802PID)@9 - IEEE 802.2, Class I, including (Type 1 packets only):@ -- UI@ -- XID@ -- TEST@@# FDDI Mapped Ethernet packet header@P MPDETH$C_LENCLEN/ Size of Mapped Ethernet Header without PaddingP MPDETH$C_PAD_LENCPAD_LEN' Size of Mapped Eth Header with Padding  MPDETH_HDRMPDETH$ MPDETH_HDR NMPDETH$G_SNAP_SAPMPDETH$GSNAP_SAP SNAP-SAP hexOMPDETH$G_MAP_PIDMPDETH$GMAP_PID SNAP PID <00-00-00>O MPDETH$W_PTYMPDETH$WPTY Ethernet Protocol Type fieldO MPDETH$W_PADMPDETH$WPAD( PAD (length) field (If User enables it) @@) IEEE Standard 802 .2 (LLC), packet header@PLLC$C_ONEBYTCTL_LENC ONEBYTCTL_LEN Size of 802.2 Header with @ one byte CTLPLLC$G_ONEBYT_DATAG ONEBYT_DATA Start of User Data @ with 1 byte control fieldPLLC$C_TWOBYTCTL_LENC TWOBYTCTL_LEN Size of 802.2 Header with @ two byte CTLPLLC$G_TWOBYT_DATAG TWOBYT_DATA Start of User Data @ with 1 byte control fieldHDR_802LLC$HDR_802 N LLC$B_DSAPLLC$BDSAP! Destination Service Ac cess PointO LLC$B_SSAPLLC$BSSAP Source Service Access PointO LLC$B_CTL1LLC$BCTL1 Control fieldO LLC$B_CTL2LLC$BCTL2 optional second byte of CTL @@0 IEEE 802.1 SNAP SAP packet header (802E/802PID)@P SNAP$C_LENCLEN Size of 802 SNAP HeaderSNAP_HDRSNAP$SNAP_HDR N SNAP$G_SAPSNAP$GSAP SNAP-SAP hexO SNAP$G_PIDSNAP$GPID Protocol Identifier (PID)