diff options
Diffstat (limited to 'drivers/staging/bcm/IPv6ProtocolHdr.h')
-rw-r--r-- | drivers/staging/bcm/IPv6ProtocolHdr.h | 149 |
1 files changed, 59 insertions, 90 deletions
diff --git a/drivers/staging/bcm/IPv6ProtocolHdr.h b/drivers/staging/bcm/IPv6ProtocolHdr.h index 8ba88a5..96b36a5 100644 --- a/drivers/staging/bcm/IPv6ProtocolHdr.h +++ b/drivers/staging/bcm/IPv6ProtocolHdr.h @@ -1,7 +1,6 @@ #ifndef _IPV6_PROTOCOL_DEFINES_ #define _IPV6_PROTOCOL_DEFINES_ - #define IPV6HDR_TYPE_HOPBYHOP 0x0 #define IPV6HDR_TYPE_ROUTING 0x2B #define IPV6HDR_TYPE_FRAGMENTATION 0x2C @@ -10,107 +9,77 @@ #define IPV6HDR_TYPE_ENCRYPTEDSECURITYPAYLOAD 0x34 #define MASK_IPV6_CS_SPEC 0x2 - -#define TCP_HEADER_TYPE 0x6 -#define UDP_HEADER_TYPE 0x11 +#define TCP_HEADER_TYPE 0x6 +#define UDP_HEADER_TYPE 0x11 #define IPV6_ICMP_HDR_TYPE 0x2 #define IPV6_FLOWLABEL_BITOFFSET 9 #define IPV6_MAX_CHAINEDHDR_BUFFBYTES 0x64 /* -// Size of Dest Options field of Destinations Options Header -// in bytes. -*/ + * Size of Dest Options field of Destinations Options Header + * in bytes. + */ #define IPV6_DESTOPTS_HDR_OPTIONSIZE 0x8 -//typedef unsigned char UCHAR; -//typedef unsigned short USHORT; -//typedef unsigned long int ULONG; - -typedef struct IPV6HeaderFormatTag -{ - UCHAR ucVersionPrio; - UCHAR aucFlowLabel[3]; - USHORT usPayloadLength; - UCHAR ucNextHeader; - UCHAR ucHopLimit; - ULONG ulSrcIpAddress[4]; - ULONG ulDestIpAddress[4]; -}IPV6Header; - -typedef struct IPV6RoutingHeaderFormatTag -{ - UCHAR ucNextHeader; - UCHAR ucRoutingType; - UCHAR ucNumAddresses; - UCHAR ucNextAddress; - ULONG ulReserved; - //UCHAR aucAddressList[0]; - -}IPV6RoutingHeader; - -typedef struct IPV6FragmentHeaderFormatTag -{ - UCHAR ucNextHeader; - UCHAR ucReserved; - USHORT usFragmentOffset; - ULONG ulIdentification; -}IPV6FragmentHeader; - -typedef struct IPV6DestOptionsHeaderFormatTag -{ - UCHAR ucNextHeader; - UCHAR ucHdrExtLen; - UCHAR ucDestOptions[6]; - //UCHAR udExtDestOptions[0]; -}IPV6DestOptionsHeader; - -typedef struct IPV6HopByHopOptionsHeaderFormatTag -{ - UCHAR ucNextHeader; - UCHAR ucMisc[3]; - ULONG ulJumboPayloadLen; -}IPV6HopByHopOptionsHeader; - -typedef struct IPV6AuthenticationHeaderFormatTag -{ - UCHAR ucNextHeader; - UCHAR ucLength; - USHORT usReserved; - ULONG ulSecurityParametersIndex; - //UCHAR ucAuthenticationData[0]; - -}IPV6AuthenticationHeader; - -typedef struct IPV6IcmpHeaderFormatTag -{ - UCHAR ucType; - UCHAR ucCode; - USHORT usChecksum; - //UCHAR ucIcmpMsg[0]; - -}IPV6IcmpHeader; - -typedef enum _E_IPADDR_CONTEXT -{ +struct bcm_ipv6_hdr { + unsigned char ucVersionPrio; + unsigned char aucFlowLabel[3]; + unsigned short usPayloadLength; + unsigned char ucNextHeader; + unsigned char ucHopLimit; + unsigned long ulSrcIpAddress[4]; + unsigned long ulDestIpAddress[4]; +}; + +struct bcm_ipv6_routing_hdr { + unsigned char ucNextHeader; + unsigned char ucRoutingType; + unsigned char ucNumAddresses; + unsigned char ucNextAddress; + unsigned long ulReserved; +}; + +struct bcm_ipv6_fragment_hdr { + unsigned char ucNextHeader; + unsigned char ucReserved; + unsigned short usFragmentOffset; + unsigned long ulIdentification; +}; + +struct bcm_ipv6_dest_options_hdr { + unsigned char ucNextHeader; + unsigned char ucHdrExtLen; + unsigned char ucDestOptions[6]; +}; + +struct bcm_ipv6_options_hdr { + unsigned char ucNextHeader; + unsigned char ucMisc[3]; + unsigned long ulJumboPayloadLen; +}; + +struct bcm_ipv6_authentication_hdr { + unsigned char ucNextHeader; + unsigned char ucLength; + unsigned short usReserved; + unsigned long ulSecurityParametersIndex; +}; + +enum bcm_ipaddr_context { eSrcIpAddress, eDestIpAddress +}; -}E_IPADDR_CONTEXT; - - - -//Function Prototypes - -USHORT IpVersion6(struct bcm_mini_adapter *Adapter, /**< Pointer to the driver control structure */ - PVOID pcIpHeader, /**<Pointer to the IP Hdr of the packet*/ - struct bcm_classifier_rule *pstClassifierRule ); +/* Function Prototypes */ -VOID DumpIpv6Address(ULONG *puIpv6Address); +unsigned short IpVersion6(struct bcm_mini_adapter *Adapter, /* < Pointer to the driver control structure */ + void *pcIpHeader, /* <Pointer to the IP Hdr of the packet */ + struct bcm_classifier_rule *pstClassifierRule); -extern BOOLEAN MatchSrcPort(struct bcm_classifier_rule *pstClassifierRule,USHORT ushSrcPort); -extern BOOLEAN MatchDestPort(struct bcm_classifier_rule *pstClassifierRule,USHORT ushSrcPort); -extern BOOLEAN MatchProtocol(struct bcm_classifier_rule *pstClassifierRule,UCHAR ucProtocol); +void DumpIpv6Address(unsigned long *puIpv6Address); +extern bool MatchSrcPort(struct bcm_classifier_rule *pstClassifierRule, unsigned short ushSrcPort); +extern bool MatchDestPort(struct bcm_classifier_rule *pstClassifierRule, unsigned short ushSrcPort); +extern bool MatchProtocol(struct bcm_classifier_rule *pstClassifierRule, unsigned char ucProtocol); #endif |