| #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 |