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