• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _IPV6_PROTOCOL_DEFINES_
2 #define _IPV6_PROTOCOL_DEFINES_
3 
4 #define IPV6HDR_TYPE_HOPBYHOP 0x0
5 #define IPV6HDR_TYPE_ROUTING 0x2B
6 #define IPV6HDR_TYPE_FRAGMENTATION 0x2C
7 #define IPV6HDR_TYPE_DESTOPTS 0x3c
8 #define IPV6HDR_TYPE_AUTHENTICATION 0x33
9 #define IPV6HDR_TYPE_ENCRYPTEDSECURITYPAYLOAD 0x34
10 #define MASK_IPV6_CS_SPEC 0x2
11 
12 #define TCP_HEADER_TYPE	0x6
13 #define UDP_HEADER_TYPE	0x11
14 #define IPV6_ICMP_HDR_TYPE 0x2
15 #define IPV6_FLOWLABEL_BITOFFSET 9
16 
17 #define IPV6_MAX_CHAINEDHDR_BUFFBYTES 0x64
18 /*
19  * Size of Dest Options field of Destinations Options Header
20  * in bytes.
21  */
22 #define IPV6_DESTOPTS_HDR_OPTIONSIZE 0x8
23 
24 struct bcm_ipv6_hdr {
25 	unsigned char  ucVersionPrio;
26 	unsigned char  aucFlowLabel[3];
27 	unsigned short usPayloadLength;
28 	unsigned char  ucNextHeader;
29 	unsigned char  ucHopLimit;
30 	unsigned long  ulSrcIpAddress[4];
31 	unsigned long  ulDestIpAddress[4];
32 };
33 
34 struct bcm_ipv6_routing_hdr {
35 	unsigned char ucNextHeader;
36 	unsigned char ucRoutingType;
37 	unsigned char ucNumAddresses;
38 	unsigned char ucNextAddress;
39 	unsigned long ulReserved;
40 };
41 
42 struct bcm_ipv6_fragment_hdr {
43 	unsigned char  ucNextHeader;
44 	unsigned char  ucReserved;
45 	unsigned short usFragmentOffset;
46 	unsigned long  ulIdentification;
47 };
48 
49 struct bcm_ipv6_dest_options_hdr {
50 	unsigned char ucNextHeader;
51 	unsigned char ucHdrExtLen;
52 	unsigned char ucDestOptions[6];
53 };
54 
55 struct bcm_ipv6_options_hdr {
56 	unsigned char ucNextHeader;
57 	unsigned char ucMisc[3];
58 	unsigned long ulJumboPayloadLen;
59 };
60 
61 struct bcm_ipv6_authentication_hdr {
62 	unsigned char  ucNextHeader;
63 	unsigned char  ucLength;
64 	unsigned short usReserved;
65 	unsigned long  ulSecurityParametersIndex;
66 };
67 
68 enum bcm_ipaddr_context {
69 	eSrcIpAddress,
70 	eDestIpAddress
71 };
72 
73 /* Function Prototypes */
74 
75 unsigned short IpVersion6(struct bcm_mini_adapter *Adapter, /* < Pointer to the driver control structure */
76 					void *pcIpHeader, /* <Pointer to the IP Hdr of the packet */
77 					struct bcm_classifier_rule *pstClassifierRule);
78 
79 void DumpIpv6Address(unsigned long *puIpv6Address);
80 
81 extern bool MatchSrcPort(struct bcm_classifier_rule *pstClassifierRule, unsigned short ushSrcPort);
82 extern bool MatchDestPort(struct bcm_classifier_rule *pstClassifierRule, unsigned short ushSrcPort);
83 extern bool MatchProtocol(struct bcm_classifier_rule *pstClassifierRule, unsigned char ucProtocol);
84 
85 #endif
86