#ifndef _IPV6_PROTOCOL_DEFINES_ #define _IPV6_PROTOCOL_DEFINES_ #define IPV6HDR_TYPE_HOPBYHOP 0x0 #define IPV6HDR_TYPE_ROUTING 0x2B #define IPV6HDR_TYPE_FRAGMENTATION 0x2C #define IPV6HDR_TYPE_DESTOPTS 0x3c #define IPV6HDR_TYPE_AUTHENTICATION 0x33 #define IPV6HDR_TYPE_ENCRYPTEDSECURITYPAYLOAD 0x34 #define MASK_IPV6_CS_SPEC 0x2 #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. */ #define IPV6_DESTOPTS_HDR_OPTIONSIZE 0x8 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 }; /* Function Prototypes */ 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); 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