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