1 /*
2  * This file is auto-generated. Modifications will be lost.
3  *
4  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5  * for more information.
6  */
7 #ifndef _UAPI_LINUX_IP_H
8 #define _UAPI_LINUX_IP_H
9 #include <linux/types.h>
10 #include <linux/stddef.h>
11 #include <asm/byteorder.h>
12 #define IPTOS_TOS_MASK 0x1E
13 #define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK)
14 #define IPTOS_LOWDELAY 0x10
15 #define IPTOS_THROUGHPUT 0x08
16 #define IPTOS_RELIABILITY 0x04
17 #define IPTOS_MINCOST 0x02
18 #define IPTOS_PREC_MASK 0xE0
19 #define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK)
20 #define IPTOS_PREC_NETCONTROL 0xe0
21 #define IPTOS_PREC_INTERNETCONTROL 0xc0
22 #define IPTOS_PREC_CRITIC_ECP 0xa0
23 #define IPTOS_PREC_FLASHOVERRIDE 0x80
24 #define IPTOS_PREC_FLASH 0x60
25 #define IPTOS_PREC_IMMEDIATE 0x40
26 #define IPTOS_PREC_PRIORITY 0x20
27 #define IPTOS_PREC_ROUTINE 0x00
28 #define IPOPT_COPY 0x80
29 #define IPOPT_CLASS_MASK 0x60
30 #define IPOPT_NUMBER_MASK 0x1f
31 #define IPOPT_COPIED(o) ((o) & IPOPT_COPY)
32 #define IPOPT_CLASS(o) ((o) & IPOPT_CLASS_MASK)
33 #define IPOPT_NUMBER(o) ((o) & IPOPT_NUMBER_MASK)
34 #define IPOPT_CONTROL 0x00
35 #define IPOPT_RESERVED1 0x20
36 #define IPOPT_MEASUREMENT 0x40
37 #define IPOPT_RESERVED2 0x60
38 #define IPOPT_END (0 | IPOPT_CONTROL)
39 #define IPOPT_NOOP (1 | IPOPT_CONTROL)
40 #define IPOPT_SEC (2 | IPOPT_CONTROL | IPOPT_COPY)
41 #define IPOPT_LSRR (3 | IPOPT_CONTROL | IPOPT_COPY)
42 #define IPOPT_TIMESTAMP (4 | IPOPT_MEASUREMENT)
43 #define IPOPT_CIPSO (6 | IPOPT_CONTROL | IPOPT_COPY)
44 #define IPOPT_RR (7 | IPOPT_CONTROL)
45 #define IPOPT_SID (8 | IPOPT_CONTROL | IPOPT_COPY)
46 #define IPOPT_SSRR (9 | IPOPT_CONTROL | IPOPT_COPY)
47 #define IPOPT_RA (20 | IPOPT_CONTROL | IPOPT_COPY)
48 #define IPVERSION 4
49 #define MAXTTL 255
50 #define IPDEFTTL 64
51 #define IPOPT_OPTVAL 0
52 #define IPOPT_OLEN 1
53 #define IPOPT_OFFSET 2
54 #define IPOPT_MINOFF 4
55 #define MAX_IPOPTLEN 40
56 #define IPOPT_NOP IPOPT_NOOP
57 #define IPOPT_EOL IPOPT_END
58 #define IPOPT_TS IPOPT_TIMESTAMP
59 #define IPOPT_TS_TSONLY 0
60 #define IPOPT_TS_TSANDADDR 1
61 #define IPOPT_TS_PRESPEC 3
62 #define IPV4_BEET_PHMAXLEN 8
63 struct iphdr {
64 #ifdef __LITTLE_ENDIAN_BITFIELD
65   __u8 ihl : 4, version : 4;
66 #elif defined(__BIG_ENDIAN_BITFIELD)
67   __u8 version : 4, ihl : 4;
68 #else
69 #error "Please fix <asm/byteorder.h>"
70 #endif
71   __u8 tos;
72   __be16 tot_len;
73   __be16 id;
74   __be16 frag_off;
75   __u8 ttl;
76   __u8 protocol;
77   __sum16 check;
78   __struct_group(, addrs,, __be32 saddr;
79   __be32 daddr;
80  );
81 };
82 struct ip_auth_hdr {
83   __u8 nexthdr;
84   __u8 hdrlen;
85   __be16 reserved;
86   __be32 spi;
87   __be32 seq_no;
88   __u8 auth_data[];
89 };
90 struct ip_esp_hdr {
91   __be32 spi;
92   __be32 seq_no;
93   __u8 enc_data[];
94 };
95 struct ip_comp_hdr {
96   __u8 nexthdr;
97   __u8 flags;
98   __be16 cpi;
99 };
100 struct ip_beet_phdr {
101   __u8 nexthdr;
102   __u8 hdrlen;
103   __u8 padlen;
104   __u8 reserved;
105 };
106 enum {
107   IPV4_DEVCONF_FORWARDING = 1,
108   IPV4_DEVCONF_MC_FORWARDING,
109   IPV4_DEVCONF_PROXY_ARP,
110   IPV4_DEVCONF_ACCEPT_REDIRECTS,
111   IPV4_DEVCONF_SECURE_REDIRECTS,
112   IPV4_DEVCONF_SEND_REDIRECTS,
113   IPV4_DEVCONF_SHARED_MEDIA,
114   IPV4_DEVCONF_RP_FILTER,
115   IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE,
116   IPV4_DEVCONF_BOOTP_RELAY,
117   IPV4_DEVCONF_LOG_MARTIANS,
118   IPV4_DEVCONF_TAG,
119   IPV4_DEVCONF_ARPFILTER,
120   IPV4_DEVCONF_MEDIUM_ID,
121   IPV4_DEVCONF_NOXFRM,
122   IPV4_DEVCONF_NOPOLICY,
123   IPV4_DEVCONF_FORCE_IGMP_VERSION,
124   IPV4_DEVCONF_ARP_ANNOUNCE,
125   IPV4_DEVCONF_ARP_IGNORE,
126   IPV4_DEVCONF_PROMOTE_SECONDARIES,
127   IPV4_DEVCONF_ARP_ACCEPT,
128   IPV4_DEVCONF_ARP_NOTIFY,
129   IPV4_DEVCONF_ACCEPT_LOCAL,
130   IPV4_DEVCONF_SRC_VMARK,
131   IPV4_DEVCONF_PROXY_ARP_PVLAN,
132   IPV4_DEVCONF_ROUTE_LOCALNET,
133   IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL,
134   IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL,
135   IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
136   IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
137   IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
138   IPV4_DEVCONF_BC_FORWARDING,
139   IPV4_DEVCONF_ARP_EVICT_NOCARRIER,
140   __IPV4_DEVCONF_MAX
141 };
142 #define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1)
143 #endif
144