xref: /aosp_15_r20/external/libnl/etc/pktloc (revision 4dc78e53d49367fa8e61b07018507c90983a077d)
1*4dc78e53SAndroid Build Coastguard Worker#
2*4dc78e53SAndroid Build Coastguard Worker# Location definitions for packet matching
3*4dc78e53SAndroid Build Coastguard Worker#
4*4dc78e53SAndroid Build Coastguard Worker
5*4dc78e53SAndroid Build Coastguard Worker# name		alignment	offset		mask		shift
6*4dc78e53SAndroid Build Coastguard Workerip.version	u8		net+0		0xF0		4
7*4dc78e53SAndroid Build Coastguard Workerip.hdrlen	u8		net+0		0x0F
8*4dc78e53SAndroid Build Coastguard Workerip.diffserv	u8		net+1
9*4dc78e53SAndroid Build Coastguard Workerip.length	u16		net+2
10*4dc78e53SAndroid Build Coastguard Workerip.id		u16		net+4
11*4dc78e53SAndroid Build Coastguard Workerip.flag.res	u8		net+6		0xff		7
12*4dc78e53SAndroid Build Coastguard Workerip.df		u8		net+6		0x40		6
13*4dc78e53SAndroid Build Coastguard Workerip.mf		u8		net+6		0x20		5
14*4dc78e53SAndroid Build Coastguard Workerip.offset	u16		net+6		0x1FFF
15*4dc78e53SAndroid Build Coastguard Workerip.ttl		u8		net+8
16*4dc78e53SAndroid Build Coastguard Workerip.proto	u8		net+9
17*4dc78e53SAndroid Build Coastguard Workerip.chksum	u16		net+10
18*4dc78e53SAndroid Build Coastguard Workerip.src		u32		net+12
19*4dc78e53SAndroid Build Coastguard Workerip.dst		u32		net+16
20*4dc78e53SAndroid Build Coastguard Worker
21*4dc78e53SAndroid Build Coastguard Worker# if ip.ihl > 5
22*4dc78e53SAndroid Build Coastguard Workerip.opts		u32		net+20
23*4dc78e53SAndroid Build Coastguard Worker
24*4dc78e53SAndroid Build Coastguard Worker
25*4dc78e53SAndroid Build Coastguard Worker#
26*4dc78e53SAndroid Build Coastguard Worker# IP version 6
27*4dc78e53SAndroid Build Coastguard Worker#
28*4dc78e53SAndroid Build Coastguard Worker# name		alignment	offset		mask		shift
29*4dc78e53SAndroid Build Coastguard Workerip6.version	u8		net+0		0xF0		4
30*4dc78e53SAndroid Build Coastguard Workerip6.tc		u16		net+0		0xFF0		4
31*4dc78e53SAndroid Build Coastguard Workerip6.flowlabel	u32		net+0		0xFFFFF
32*4dc78e53SAndroid Build Coastguard Workerip6.length	u16		net+4
33*4dc78e53SAndroid Build Coastguard Workerip6.nexthdr	u8		net+6
34*4dc78e53SAndroid Build Coastguard Workerip6.hoplimit	u8		net+7
35*4dc78e53SAndroid Build Coastguard Workerip6.src		16		net+8
36*4dc78e53SAndroid Build Coastguard Workerip6.dst		16		net+24
37*4dc78e53SAndroid Build Coastguard Worker
38*4dc78e53SAndroid Build Coastguard Worker#
39*4dc78e53SAndroid Build Coastguard Worker# Transmission Control Protocol (TCP)
40*4dc78e53SAndroid Build Coastguard Worker#
41*4dc78e53SAndroid Build Coastguard Worker# name		alignment	offset		mask		shift
42*4dc78e53SAndroid Build Coastguard Workertcp.sport	u16		tcp+0
43*4dc78e53SAndroid Build Coastguard Workertcp.dport	u16		tcp+2
44*4dc78e53SAndroid Build Coastguard Workertcp.seq		u32		tcp+4
45*4dc78e53SAndroid Build Coastguard Workertcp.ack		u32		tcp+8
46*4dc78e53SAndroid Build Coastguard Worker
47*4dc78e53SAndroid Build Coastguard Worker# Data offset (4 bits)
48*4dc78e53SAndroid Build Coastguard Workertcp.off		u8		tcp+12		0xF0		4
49*4dc78e53SAndroid Build Coastguard Worker
50*4dc78e53SAndroid Build Coastguard Worker# Reserved [0 0 0] (3 bits)
51*4dc78e53SAndroid Build Coastguard Workertcp.reserved	u8		tcp+12		0x04		1
52*4dc78e53SAndroid Build Coastguard Worker
53*4dc78e53SAndroid Build Coastguard Worker# ECN [N C E] (3 bits)
54*4dc78e53SAndroid Build Coastguard Workertcp.ecn		u16		tcp+12		0x01C00		6
55*4dc78e53SAndroid Build Coastguard Worker
56*4dc78e53SAndroid Build Coastguard Worker# Individual TCP flags (0|1) (6 bits in total)
57*4dc78e53SAndroid Build Coastguard Workertcp.flag.urg	u8		tcp+13		0x20		5
58*4dc78e53SAndroid Build Coastguard Workertcp.flag.ack	u8		tcp+13		0x10		4
59*4dc78e53SAndroid Build Coastguard Workertcp.flag.psh	u8		tcp+13		0x08		3
60*4dc78e53SAndroid Build Coastguard Workertcp.flag.rst	u8		tcp+13		0x04		2
61*4dc78e53SAndroid Build Coastguard Workertcp.flag.syn	u8		tcp+13		0x02		1
62*4dc78e53SAndroid Build Coastguard Workertcp.flag.fin	u8		tcp+13		0x01
63*4dc78e53SAndroid Build Coastguard Worker
64*4dc78e53SAndroid Build Coastguard Workertcp.win		u16		tcp+14
65*4dc78e53SAndroid Build Coastguard Workertcp.csum	u16		tcp+16
66*4dc78e53SAndroid Build Coastguard Workertcp.urg		u16		tcp+18
67*4dc78e53SAndroid Build Coastguard Workertcp.opts	u32		tcp+20
68*4dc78e53SAndroid Build Coastguard Worker
69*4dc78e53SAndroid Build Coastguard Worker#
70*4dc78e53SAndroid Build Coastguard Worker# User Datagram Protocol (UDP)
71*4dc78e53SAndroid Build Coastguard Worker#
72*4dc78e53SAndroid Build Coastguard Worker# name		alignment	offset		mask		shift
73*4dc78e53SAndroid Build Coastguard Workerudp.sport	u16		tcp+0
74*4dc78e53SAndroid Build Coastguard Workerudp.dport	u16		tcp+2
75*4dc78e53SAndroid Build Coastguard Workerudp.length	u16		tcp+4
76*4dc78e53SAndroid Build Coastguard Workerudp.csum	u16		tcp+6
77