/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:25:53 by OpenVMS SDL EV3-3 */ /* Source: 23-JUL-2003 15:57:49 $1$DGA7274:[LIB_H.SRC]LANUDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $PROTODEF ***/ #ifndef __PROTODEF_LOADED #define __PROTODEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /* LAN FRAME/PACKET DEFINITONS */ /* FRAME TYPES: */ /* Token Ring */ /* FDDI */ /* ATM */ /* CSMA/CD */ /* Ethernet */ /* IEEE 802.3 */ /* PACKET TYPES */ /* Mapped Ethernet (FDDI and TR only) */ /* 802.2 */ /* 802E */ /* Token Ring Frame Header */ #define TR$C_HDR_LEN 14 /* Size of Token Ring Header */ typedef struct _tr_hdr { /* Token Ring Frame hdr struct */ unsigned char tr$b_ac; /* Access Control field */ unsigned char tr$b_fc; /* Frame Control field */ unsigned char tr$g_da [6]; /* Destination Address field */ unsigned char tr$g_sa [6]; /* Source Address field */ } TR_HDR; /* Token Ring Maximum Frame length including all fields from AC through CRC */ #define TR$C_MAX_FRM_LEN 4462 /* Token Ring Source Routing fields */ #define TR$M_SA_RI 1 /* Bit in byte 0 of SA that indicates packet is a Source */ /* Routing packet. */ #define TR$C_MAX_SR_LEN 30 /* Max size of SR Field */ #define TR$C_MAX_TR_HDR 44 /* Maximum header size */ #define TR$C_SRF 0 /* Bits 0-2 are Routing Type */ #define TR$C_ARE 12418 #define TR$C_STE 12514 #define TR$M_EXPL 128 #define TR$M_SR_RT 224 #define TR$M_SR_LTH 31 /* Bits 3-7 are Length bits */ /* Must be even... */ #define TR$M_SR_D 128 /* Bit 0 is Direction */ #define TR$M_SR_D_ASC 0 /* Ascending (rd1, rd2, etc.) */ #define TR$M_SR_D_DSC 1 /* Descending (rdn, rdn-1, etc.) */ #define TR$M_SR_LF 14 /* Bits 1-3 are Longest Frame */ #define TR$M_SR_LF_4442 6 /* Longest frame = 4442 */ typedef struct _tr_sr_rc { /* Routing Control fields */ unsigned char tr$b_rc0; unsigned char tr$b_rc1; } TR_SR_RC; #define TR$C_SR_RC 14 /* Location of RC fields */ #define TR$C_SR_RD 16 /* Location of RD fields */ /* All RD fields are shorts... */ #define TR$M_SR_LI 4095 /* LAN Information bits in RD */ #define TR$M_SR_BN 61440 /* Bridge Number bits in RD */ /* Token Ring Constants for AC/FC definitions */ #define TR$M_AC_PPP 7 /* AC PPP field is low 3 bits */ #define TR$M_AC_T 8 /* Token Bit (0=token, 1=SFS) */ /* M-bit used by monitor */ #define TR$M_AC_RRR 224 /* Reservation bits */ #define TR$M_FC_MAC 0 /* FC for MAC Frames (unused) */ #define TR$M_FC_LLC 2 /* FC for LLC Users */ #define TR$M_FC_UNDEF 1 /* FC for Undefined purposes */ #define TR$M_FC_CTL 252 /* CTL field in FC (MAC only) */ #define TR$C_AC_DEF 16 /* Default AC */ #define TR$C_FC_DEF 64 /* Default FC */ /* FDDI Frame Header */ #define FDDI$C_HDR_LEN 13 /* Size of FDDI Header */ typedef struct _fddi_hdr { /* FDDI Frame header structure */ unsigned char fddi$b_fc; /* Frame Control field */ unsigned char fddi$g_da [6]; /* Destination Address field */ unsigned char fddi$g_sa [6]; /* Source Address field */ } FDDI_HDR; /* Maximum Frame length for FDDI including all fields from FC through CRC */ #define FDDI$C_MAX_FRM_LEN 4495 /* Constants for FC definitions */ #define FDDI$V_FC_PPP 0 /* FC PPP field starts at bit 0 */ #define FDDI$M_FC_PPP 7 /* FC PPP field is low order three bits */ #define FDDI$S_FC_PPP 3 /* FC PPP field is 3 bits wide */ #define FDDI$C_FC_LLC_MIN 80 /* FC for LLC Users (minimum) */ #define FDDI$C_FC_LLC_DEF 80 /* FC for LLC Users (default) */ #define FDDI$C_FC_LLC_MAX 87 /* FC for LLC Users (maximum) */ #define FDDI$C_FC_SMT_MIN 65 /* FC for LLC Users (minimum) */ #define FDDI$C_FC_SMT_DEF 65 /* FC for LLC Users (default) */ #define FDDI$C_FC_SMT_MAX 79 /* FC for LLC Users (maximum) */ /* ATM Frame Header */ #define ATM$C_HDR_LEN 12 /* Size of ATM Header */ typedef struct _atm_hdr { /* ATM Frame header structure */ unsigned char atm$g_da [6]; /* Destination Address field */ unsigned char atm$g_sa [6]; /* Source Address field */ } ATM_HDR; /* Maximum Frame length for ATM including all fields in header (even 2 bytes for LEH) */ /* Does not include padding or trailer */ #define ATM$C_MAX_FRM_LEN 9234 /* CSMACD (Ethernet/IEEE 802.3) Frame Header */ #define CSMACD$C_HDR_LEN 14 /* Size of CSMACD Header */ #define CSMACD$C_PAD_LEN 16 /* Size of CSMACD Header */ typedef struct _csmacd_hdr { unsigned char csmacd$g_da [6]; /* Destination Address field */ unsigned char csmacd$g_sa [6]; /* Source Address field */ __union { __struct { unsigned short int csmacd$w_pty; /* Ethernet Protocol Type field */ } csmacd$r_field3_eth; __struct { unsigned short int csmacd$w_len_8023; /* IEEE 802.3 Length field */ } csmacd$r_field3_802; } csmacd$r_field3; unsigned short int csmacd$w_pad; /* optional Ethenet Length (PAD) field */ } CSMACD_HDR; #if !defined(__VAXC) #define csmacd$r_field3_eth csmacd$r_field3.csmacd$r_field3_eth #define csmacd$w_pty csmacd$r_field3_eth.csmacd$w_pty #define csmacd$r_field3_802 csmacd$r_field3.csmacd$r_field3_802 #define csmacd$w_len_8023 csmacd$r_field3_802.csmacd$w_len_8023 #endif /* #if !defined(__VAXC) */ /* Maximum Frame length for FDDI including all fields from FC through CRC */ #define CSMACD$C_MAX_FRM_LEN 1518 /* 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) */ /* - IEEE 802.2, Class I, including (Type 1 packets only): */ /* - UI */ /* - XID */ /* - TEST */ /* FDDI Mapped Ethernet packet header */ #define MPDETH$C_LEN 8 /* Size of Mapped Ethernet Header without Padding */ #define MPDETH$C_PAD_LEN 10 /* Size of Mapped Eth Header with Padding */ typedef struct _mpdeth_hdr { unsigned char mpdeth$g_snap_sap [3]; /* SNAP-SAP hex */ unsigned char mpdeth$g_map_pid [3]; /* SNAP PID <00-00-00> */ unsigned short int mpdeth$w_pty; /* Ethernet Protocol Type field */ unsigned short int mpdeth$w_pad; /* PAD (length) field (If User enables it) */ } MPDETH_HDR; /* IEEE Standard 802.2 (LLC), packet header */ #define LLC$C_ONEBYTCTL_LEN 3 /* Size of 802.2 Header with 1 byte CTL */ #define LLC$G_ONEBYT_DATA 3 /* Start of User Data with 1 byte CTL */ #define LLC$C_TWOBYTCTL_LEN 4 /* Size of 802.2 Header with 2 byte CTL */ #define LLC$G_TWOBYT_DATA 4 /* Start of User Data with 2 byte CTL */ typedef struct _hdr_802 { unsigned char llc$b_dsap; /* Destination Service Access Point */ unsigned char llc$b_ssap; /* Source Service Access Point */ unsigned char llc$b_ctl1; /* Control field */ unsigned char llc$b_ctl2; /* optional second byte of CTL */ } HDR_802; /* IEEE 802.1 SNAP SAP packet header (802E/802PID) */ #define SNAP$C_LEN 8 /* Size of 802 SNAP Header */ typedef struct _snap_hdr { unsigned char snap$g_sap [3]; /* SNAP-SAP hex */ unsigned char snap$g_pid [5]; /* Protocol Identifier (PID) */ } SNAP_HDR; #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __PROTODEF_LOADED */