]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - drivers/staging/bcm/IPv6ProtocolHdr.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
[mirror_ubuntu-artful-kernel.git] / drivers / staging / bcm / IPv6ProtocolHdr.h
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