Linux Audio

Check our new training course

Loading...
v3.1
  1#ifndef _IPV6_PROTOCOL_DEFINES_
  2#define _IPV6_PROTOCOL_DEFINES_
  3
  4
  5#define IPV6HDR_TYPE_HOPBYHOP 0x0
  6#define IPV6HDR_TYPE_ROUTING 0x2B
  7#define IPV6HDR_TYPE_FRAGMENTATION 0x2C
  8#define IPV6HDR_TYPE_DESTOPTS 0x3c
  9#define IPV6HDR_TYPE_AUTHENTICATION 0x33
 10#define IPV6HDR_TYPE_ENCRYPTEDSECURITYPAYLOAD 0x34
 11#define MASK_IPV6_CS_SPEC 0x2
 12
 13
 14#define TCP_HEADER_TYPE 0x6
 15#define UDP_HEADER_TYPE 0x11
 16#define IPV6_ICMP_HDR_TYPE 0x2
 17#define IPV6_FLOWLABEL_BITOFFSET 9
 18
 19#define IPV6_MAX_CHAINEDHDR_BUFFBYTES 0x64
 20/*
 21// Size of Dest Options field of Destinations Options Header
 22// in bytes.
 23*/
 24#define IPV6_DESTOPTS_HDR_OPTIONSIZE 0x8
 25
 26//typedef  unsigned char UCHAR;
 27//typedef  unsigned short USHORT;
 28//typedef  unsigned long int ULONG;
 29
 30typedef struct IPV6HeaderFormatTag
 31{
 32	UCHAR  ucVersionPrio;
 33	UCHAR  aucFlowLabel[3];
 34	USHORT usPayloadLength;
 35	UCHAR  ucNextHeader;
 36	UCHAR  ucHopLimit;
 37	ULONG  ulSrcIpAddress[4];
 38	ULONG  ulDestIpAddress[4];
 39}IPV6Header;
 40
 41typedef struct IPV6RoutingHeaderFormatTag
 42{
 43	UCHAR ucNextHeader;
 44	UCHAR ucRoutingType;
 45	UCHAR ucNumAddresses;
 46	UCHAR ucNextAddress;
 47	ULONG ulReserved;
 48	//UCHAR aucAddressList[0];
 49
 50}IPV6RoutingHeader;
 51
 52typedef struct IPV6FragmentHeaderFormatTag
 53{
 54	UCHAR ucNextHeader;
 55	UCHAR ucReserved;
 56	USHORT usFragmentOffset;
 57	ULONG  ulIdentification;
 58}IPV6FragmentHeader;
 59
 60typedef struct IPV6DestOptionsHeaderFormatTag
 61{
 62	UCHAR ucNextHeader;
 63	UCHAR ucHdrExtLen;
 64	UCHAR ucDestOptions[6];
 65	//UCHAR udExtDestOptions[0];
 66}IPV6DestOptionsHeader;
 67
 68typedef struct IPV6HopByHopOptionsHeaderFormatTag
 69{
 70	UCHAR ucNextHeader;
 71	UCHAR ucMisc[3];
 72	ULONG ulJumboPayloadLen;
 73}IPV6HopByHopOptionsHeader;
 74
 75typedef struct IPV6AuthenticationHeaderFormatTag
 76{
 77	UCHAR ucNextHeader;
 78	UCHAR ucLength;
 79	USHORT usReserved;
 80	ULONG  ulSecurityParametersIndex;
 81	//UCHAR  ucAuthenticationData[0];
 82
 83}IPV6AuthenticationHeader;
 84
 85typedef struct IPV6IcmpHeaderFormatTag
 86{
 87	UCHAR ucType;
 88	UCHAR ucCode;
 89	USHORT usChecksum;
 90	//UCHAR  ucIcmpMsg[0];
 91
 92}IPV6IcmpHeader;
 93
 94typedef enum _E_IPADDR_CONTEXT
 95{
 96	eSrcIpAddress,
 97	eDestIpAddress
 
 98
 99}E_IPADDR_CONTEXT;
100
101
102
103//Function Prototypes
104
105USHORT	IpVersion6(PMINI_ADAPTER Adapter, /**< Pointer to the driver control structure */
106					PVOID pcIpHeader, /**<Pointer to the IP Hdr of the packet*/
107					S_CLASSIFIER_RULE *pstClassifierRule );
108
109VOID DumpIpv6Address(ULONG *puIpv6Address);
 
 
110
111extern BOOLEAN MatchSrcPort(S_CLASSIFIER_RULE *pstClassifierRule,USHORT ushSrcPort);
112extern BOOLEAN MatchDestPort(S_CLASSIFIER_RULE *pstClassifierRule,USHORT ushSrcPort);
113extern BOOLEAN MatchProtocol(S_CLASSIFIER_RULE *pstClassifierRule,UCHAR ucProtocol);
114
 
 
 
115
116#endif
v3.15
 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
24struct 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
34struct 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
42struct bcm_ipv6_fragment_hdr {
43	unsigned char  ucNextHeader;
44	unsigned char  ucReserved;
45	unsigned short usFragmentOffset;
46	unsigned long  ulIdentification;
47};
48
49struct bcm_ipv6_dest_options_hdr {
50	unsigned char ucNextHeader;
51	unsigned char ucHdrExtLen;
52	unsigned char ucDestOptions[6];
53};
54
55struct bcm_ipv6_options_hdr {
56	unsigned char ucNextHeader;
57	unsigned char ucMisc[3];
58	unsigned long ulJumboPayloadLen;
59};
60
61struct bcm_ipv6_authentication_hdr {
62	unsigned char  ucNextHeader;
63	unsigned char  ucLength;
64	unsigned short usReserved;
65	unsigned long  ulSecurityParametersIndex;
66};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
68enum bcm_ipaddr_context {
 
 
 
69	eSrcIpAddress,
70	eDestIpAddress
71};
72
73/* Function Prototypes */
 
 
 
 
 
 
 
 
74
75unsigned 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
79void DumpIpv6Address(unsigned long *puIpv6Address);
 
 
80
81extern bool MatchSrcPort(struct bcm_classifier_rule *pstClassifierRule, unsigned short ushSrcPort);
82extern bool MatchDestPort(struct bcm_classifier_rule *pstClassifierRule, unsigned short ushSrcPort);
83extern bool MatchProtocol(struct bcm_classifier_rule *pstClassifierRule, unsigned char ucProtocol);
84
85#endif