1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI__LINUX_RTNETLINK_H
20 #define _UAPI__LINUX_RTNETLINK_H
21 #include <linux/types.h>
22 #include <linux/netlink.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #include <linux/if_link.h>
25 #include <linux/if_addr.h>
26 #include <linux/neighbour.h>
27 #define RTNL_FAMILY_IPMR 128
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define RTNL_FAMILY_IP6MR 129
30 #define RTNL_FAMILY_MAX 129
31 enum {
32   RTM_BASE = 16,
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define RTM_BASE RTM_BASE
35   RTM_NEWLINK = 16,
36 #define RTM_NEWLINK RTM_NEWLINK
37   RTM_DELLINK,
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 #define RTM_DELLINK RTM_DELLINK
40   RTM_GETLINK,
41 #define RTM_GETLINK RTM_GETLINK
42   RTM_SETLINK,
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 #define RTM_SETLINK RTM_SETLINK
45   RTM_NEWADDR = 20,
46 #define RTM_NEWADDR RTM_NEWADDR
47   RTM_DELADDR,
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define RTM_DELADDR RTM_DELADDR
50   RTM_GETADDR,
51 #define RTM_GETADDR RTM_GETADDR
52   RTM_NEWROUTE = 24,
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define RTM_NEWROUTE RTM_NEWROUTE
55   RTM_DELROUTE,
56 #define RTM_DELROUTE RTM_DELROUTE
57   RTM_GETROUTE,
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 #define RTM_GETROUTE RTM_GETROUTE
60   RTM_NEWNEIGH = 28,
61 #define RTM_NEWNEIGH RTM_NEWNEIGH
62   RTM_DELNEIGH,
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 #define RTM_DELNEIGH RTM_DELNEIGH
65   RTM_GETNEIGH,
66 #define RTM_GETNEIGH RTM_GETNEIGH
67   RTM_NEWRULE = 32,
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 #define RTM_NEWRULE RTM_NEWRULE
70   RTM_DELRULE,
71 #define RTM_DELRULE RTM_DELRULE
72   RTM_GETRULE,
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 #define RTM_GETRULE RTM_GETRULE
75   RTM_NEWQDISC = 36,
76 #define RTM_NEWQDISC RTM_NEWQDISC
77   RTM_DELQDISC,
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 #define RTM_DELQDISC RTM_DELQDISC
80   RTM_GETQDISC,
81 #define RTM_GETQDISC RTM_GETQDISC
82   RTM_NEWTCLASS = 40,
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 #define RTM_NEWTCLASS RTM_NEWTCLASS
85   RTM_DELTCLASS,
86 #define RTM_DELTCLASS RTM_DELTCLASS
87   RTM_GETTCLASS,
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 #define RTM_GETTCLASS RTM_GETTCLASS
90   RTM_NEWTFILTER = 44,
91 #define RTM_NEWTFILTER RTM_NEWTFILTER
92   RTM_DELTFILTER,
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 #define RTM_DELTFILTER RTM_DELTFILTER
95   RTM_GETTFILTER,
96 #define RTM_GETTFILTER RTM_GETTFILTER
97   RTM_NEWACTION = 48,
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 #define RTM_NEWACTION RTM_NEWACTION
100   RTM_DELACTION,
101 #define RTM_DELACTION RTM_DELACTION
102   RTM_GETACTION,
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 #define RTM_GETACTION RTM_GETACTION
105   RTM_NEWPREFIX = 52,
106 #define RTM_NEWPREFIX RTM_NEWPREFIX
107   RTM_GETMULTICAST = 58,
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 #define RTM_GETMULTICAST RTM_GETMULTICAST
110   RTM_GETANYCAST = 62,
111 #define RTM_GETANYCAST RTM_GETANYCAST
112   RTM_NEWNEIGHTBL = 64,
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 #define RTM_NEWNEIGHTBL RTM_NEWNEIGHTBL
115   RTM_GETNEIGHTBL = 66,
116 #define RTM_GETNEIGHTBL RTM_GETNEIGHTBL
117   RTM_SETNEIGHTBL,
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 #define RTM_SETNEIGHTBL RTM_SETNEIGHTBL
120   RTM_NEWNDUSEROPT = 68,
121 #define RTM_NEWNDUSEROPT RTM_NEWNDUSEROPT
122   RTM_NEWADDRLABEL = 72,
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 #define RTM_NEWADDRLABEL RTM_NEWADDRLABEL
125   RTM_DELADDRLABEL,
126 #define RTM_DELADDRLABEL RTM_DELADDRLABEL
127   RTM_GETADDRLABEL,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129 #define RTM_GETADDRLABEL RTM_GETADDRLABEL
130   RTM_GETDCB = 78,
131 #define RTM_GETDCB RTM_GETDCB
132   RTM_SETDCB,
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134 #define RTM_SETDCB RTM_SETDCB
135   RTM_NEWNETCONF = 80,
136 #define RTM_NEWNETCONF RTM_NEWNETCONF
137   RTM_GETNETCONF = 82,
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 #define RTM_GETNETCONF RTM_GETNETCONF
140   RTM_NEWMDB = 84,
141 #define RTM_NEWMDB RTM_NEWMDB
142   RTM_DELMDB = 85,
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144 #define RTM_DELMDB RTM_DELMDB
145   RTM_GETMDB = 86,
146 #define RTM_GETMDB RTM_GETMDB
147   RTM_NEWNSID = 88,
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 #define RTM_NEWNSID RTM_NEWNSID
150   RTM_DELNSID = 89,
151 #define RTM_DELNSID RTM_DELNSID
152   RTM_GETNSID = 90,
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 #define RTM_GETNSID RTM_GETNSID
155   __RTM_MAX,
156 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
157 };
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159 #define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE)
160 #define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2)
161 #define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2)
162 struct rtattr {
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164   unsigned short rta_len;
165   unsigned short rta_type;
166 };
167 #define RTA_ALIGNTO 4U
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169 #define RTA_ALIGN(len) (((len) + RTA_ALIGNTO - 1) & ~(RTA_ALIGNTO - 1))
170 #define RTA_OK(rta,len) ((len) >= (int) sizeof(struct rtattr) && (rta)->rta_len >= sizeof(struct rtattr) && (rta)->rta_len <= (len))
171 #define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len), (struct rtattr *) (((char *) (rta)) + RTA_ALIGN((rta)->rta_len)))
172 #define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len))
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 #define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len))
175 #define RTA_DATA(rta) ((void *) (((char *) (rta)) + RTA_LENGTH(0)))
176 #define RTA_PAYLOAD(rta) ((int) ((rta)->rta_len) - RTA_LENGTH(0))
177 struct rtmsg {
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   unsigned char rtm_family;
180   unsigned char rtm_dst_len;
181   unsigned char rtm_src_len;
182   unsigned char rtm_tos;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   unsigned char rtm_table;
185   unsigned char rtm_protocol;
186   unsigned char rtm_scope;
187   unsigned char rtm_type;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189   unsigned rtm_flags;
190 };
191 enum {
192   RTN_UNSPEC,
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   RTN_UNICAST,
195   RTN_LOCAL,
196   RTN_BROADCAST,
197   RTN_ANYCAST,
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   RTN_MULTICAST,
200   RTN_BLACKHOLE,
201   RTN_UNREACHABLE,
202   RTN_PROHIBIT,
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204   RTN_THROW,
205   RTN_NAT,
206   RTN_XRESOLVE,
207   __RTN_MAX
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 };
210 #define RTN_MAX (__RTN_MAX - 1)
211 #define RTPROT_UNSPEC 0
212 #define RTPROT_REDIRECT 1
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 #define RTPROT_KERNEL 2
215 #define RTPROT_BOOT 3
216 #define RTPROT_STATIC 4
217 #define RTPROT_GATED 8
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 #define RTPROT_RA 9
220 #define RTPROT_MRT 10
221 #define RTPROT_ZEBRA 11
222 #define RTPROT_BIRD 12
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 #define RTPROT_DNROUTED 13
225 #define RTPROT_XORP 14
226 #define RTPROT_NTK 15
227 #define RTPROT_DHCP 16
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 #define RTPROT_MROUTED 17
230 #define RTPROT_BABEL 42
231 enum rt_scope_t {
232   RT_SCOPE_UNIVERSE = 0,
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234   RT_SCOPE_SITE = 200,
235   RT_SCOPE_LINK = 253,
236   RT_SCOPE_HOST = 254,
237   RT_SCOPE_NOWHERE = 255
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239 };
240 #define RTM_F_NOTIFY 0x100
241 #define RTM_F_CLONED 0x200
242 #define RTM_F_EQUALIZE 0x400
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 #define RTM_F_PREFIX 0x800
245 #define RTM_F_LOOKUP_TABLE 0x1000
246 enum rt_class_t {
247   RT_TABLE_UNSPEC = 0,
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249   RT_TABLE_COMPAT = 252,
250   RT_TABLE_DEFAULT = 253,
251   RT_TABLE_MAIN = 254,
252   RT_TABLE_LOCAL = 255,
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254   RT_TABLE_MAX = 0xFFFFFFFF
255 };
256 enum rtattr_type_t {
257   RTA_UNSPEC,
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259   RTA_DST,
260   RTA_SRC,
261   RTA_IIF,
262   RTA_OIF,
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264   RTA_GATEWAY,
265   RTA_PRIORITY,
266   RTA_PREFSRC,
267   RTA_METRICS,
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269   RTA_MULTIPATH,
270   RTA_PROTOINFO,
271   RTA_FLOW,
272   RTA_CACHEINFO,
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274   RTA_SESSION,
275   RTA_MP_ALGO,
276   RTA_TABLE,
277   RTA_MARK,
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279   RTA_MFC_STATS,
280   RTA_VIA,
281   RTA_NEWDST,
282   RTA_PREF,
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284   RTA_ENCAP_TYPE,
285   RTA_ENCAP,
286   __RTA_MAX
287 };
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289 #define RTA_MAX (__RTA_MAX - 1)
290 #define RTM_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
291 #define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct rtmsg))
292 struct rtnexthop {
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294   unsigned short rtnh_len;
295   unsigned char rtnh_flags;
296   unsigned char rtnh_hops;
297   int rtnh_ifindex;
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 };
300 #define RTNH_F_DEAD 1
301 #define RTNH_F_PERVASIVE 2
302 #define RTNH_F_ONLINK 4
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 #define RTNH_F_OFFLOAD 8
305 #define RTNH_F_LINKDOWN 16
306 #define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN)
307 #define RTNH_ALIGNTO 4
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 #define RTNH_ALIGN(len) (((len) + RTNH_ALIGNTO - 1) & ~(RTNH_ALIGNTO - 1))
310 #define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && ((int) (rtnh)->rtnh_len) <= (len))
311 #define RTNH_NEXT(rtnh) ((struct rtnexthop *) (((char *) (rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len)))
312 #define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len))
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 #define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len))
315 #define RTNH_DATA(rtnh) ((struct rtattr *) (((char *) (rtnh)) + RTNH_LENGTH(0)))
316 struct rtvia {
317   __kernel_sa_family_t rtvia_family;
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319   __u8 rtvia_addr[0];
320 };
321 struct rta_cacheinfo {
322   __u32 rta_clntref;
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324   __u32 rta_lastuse;
325   __s32 rta_expires;
326   __u32 rta_error;
327   __u32 rta_used;
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329 #define RTNETLINK_HAVE_PEERINFO 1
330   __u32 rta_id;
331   __u32 rta_ts;
332   __u32 rta_tsage;
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334 };
335 enum {
336   RTAX_UNSPEC,
337 #define RTAX_UNSPEC RTAX_UNSPEC
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339   RTAX_LOCK,
340 #define RTAX_LOCK RTAX_LOCK
341   RTAX_MTU,
342 #define RTAX_MTU RTAX_MTU
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344   RTAX_WINDOW,
345 #define RTAX_WINDOW RTAX_WINDOW
346   RTAX_RTT,
347 #define RTAX_RTT RTAX_RTT
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349   RTAX_RTTVAR,
350 #define RTAX_RTTVAR RTAX_RTTVAR
351   RTAX_SSTHRESH,
352 #define RTAX_SSTHRESH RTAX_SSTHRESH
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354   RTAX_CWND,
355 #define RTAX_CWND RTAX_CWND
356   RTAX_ADVMSS,
357 #define RTAX_ADVMSS RTAX_ADVMSS
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359   RTAX_REORDERING,
360 #define RTAX_REORDERING RTAX_REORDERING
361   RTAX_HOPLIMIT,
362 #define RTAX_HOPLIMIT RTAX_HOPLIMIT
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364   RTAX_INITCWND,
365 #define RTAX_INITCWND RTAX_INITCWND
366   RTAX_FEATURES,
367 #define RTAX_FEATURES RTAX_FEATURES
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369   RTAX_RTO_MIN,
370 #define RTAX_RTO_MIN RTAX_RTO_MIN
371   RTAX_INITRWND,
372 #define RTAX_INITRWND RTAX_INITRWND
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374   RTAX_QUICKACK,
375 #define RTAX_QUICKACK RTAX_QUICKACK
376   RTAX_CC_ALGO,
377 #define RTAX_CC_ALGO RTAX_CC_ALGO
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379   __RTAX_MAX
380 };
381 #define RTAX_MAX (__RTAX_MAX - 1)
382 #define RTAX_FEATURE_ECN (1 << 0)
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384 #define RTAX_FEATURE_SACK (1 << 1)
385 #define RTAX_FEATURE_TIMESTAMP (1 << 2)
386 #define RTAX_FEATURE_ALLFRAG (1 << 3)
387 #define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG)
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389 struct rta_session {
390   __u8 proto;
391   __u8 pad1;
392   __u16 pad2;
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394   union {
395     struct {
396       __u16 sport;
397       __u16 dport;
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399     } ports;
400     struct {
401       __u8 type;
402       __u8 code;
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404       __u16 ident;
405     } icmpt;
406     __u32 spi;
407   } u;
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409 };
410 struct rta_mfc_stats {
411   __u64 mfcs_packets;
412   __u64 mfcs_bytes;
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414   __u64 mfcs_wrong_if;
415 };
416 struct rtgenmsg {
417   unsigned char rtgen_family;
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419 };
420 struct ifinfomsg {
421   unsigned char ifi_family;
422   unsigned char __ifi_pad;
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424   unsigned short ifi_type;
425   int ifi_index;
426   unsigned ifi_flags;
427   unsigned ifi_change;
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429 };
430 struct prefixmsg {
431   unsigned char prefix_family;
432   unsigned char prefix_pad1;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434   unsigned short prefix_pad2;
435   int prefix_ifindex;
436   unsigned char prefix_type;
437   unsigned char prefix_len;
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439   unsigned char prefix_flags;
440   unsigned char prefix_pad3;
441 };
442 enum {
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444   PREFIX_UNSPEC,
445   PREFIX_ADDRESS,
446   PREFIX_CACHEINFO,
447   __PREFIX_MAX
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449 };
450 #define PREFIX_MAX (__PREFIX_MAX - 1)
451 struct prefix_cacheinfo {
452   __u32 preferred_time;
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454   __u32 valid_time;
455 };
456 struct tcmsg {
457   unsigned char tcm_family;
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459   unsigned char tcm__pad1;
460   unsigned short tcm__pad2;
461   int tcm_ifindex;
462   __u32 tcm_handle;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464   __u32 tcm_parent;
465   __u32 tcm_info;
466 };
467 enum {
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469   TCA_UNSPEC,
470   TCA_KIND,
471   TCA_OPTIONS,
472   TCA_STATS,
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474   TCA_XSTATS,
475   TCA_RATE,
476   TCA_FCNT,
477   TCA_STATS2,
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479   TCA_STAB,
480   __TCA_MAX
481 };
482 #define TCA_MAX (__TCA_MAX - 1)
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484 #define TCA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
485 #define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcmsg))
486 struct nduseroptmsg {
487   unsigned char nduseropt_family;
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489   unsigned char nduseropt_pad1;
490   unsigned short nduseropt_opts_len;
491   int nduseropt_ifindex;
492   __u8 nduseropt_icmp_type;
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494   __u8 nduseropt_icmp_code;
495   unsigned short nduseropt_pad2;
496   unsigned int nduseropt_pad3;
497 };
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499 enum {
500   NDUSEROPT_UNSPEC,
501   NDUSEROPT_SRCADDR,
502   __NDUSEROPT_MAX
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504 };
505 #define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1)
506 #define RTMGRP_LINK 1
507 #define RTMGRP_NOTIFY 2
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509 #define RTMGRP_NEIGH 4
510 #define RTMGRP_TC 8
511 #define RTMGRP_IPV4_IFADDR 0x10
512 #define RTMGRP_IPV4_MROUTE 0x20
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514 #define RTMGRP_IPV4_ROUTE 0x40
515 #define RTMGRP_IPV4_RULE 0x80
516 #define RTMGRP_IPV6_IFADDR 0x100
517 #define RTMGRP_IPV6_MROUTE 0x200
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519 #define RTMGRP_IPV6_ROUTE 0x400
520 #define RTMGRP_IPV6_IFINFO 0x800
521 #define RTMGRP_DECnet_IFADDR 0x1000
522 #define RTMGRP_DECnet_ROUTE 0x4000
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524 #define RTMGRP_IPV6_PREFIX 0x20000
525 enum rtnetlink_groups {
526   RTNLGRP_NONE,
527 #define RTNLGRP_NONE RTNLGRP_NONE
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529   RTNLGRP_LINK,
530 #define RTNLGRP_LINK RTNLGRP_LINK
531   RTNLGRP_NOTIFY,
532 #define RTNLGRP_NOTIFY RTNLGRP_NOTIFY
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534   RTNLGRP_NEIGH,
535 #define RTNLGRP_NEIGH RTNLGRP_NEIGH
536   RTNLGRP_TC,
537 #define RTNLGRP_TC RTNLGRP_TC
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539   RTNLGRP_IPV4_IFADDR,
540 #define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR
541   RTNLGRP_IPV4_MROUTE,
542 #define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544   RTNLGRP_IPV4_ROUTE,
545 #define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
546   RTNLGRP_IPV4_RULE,
547 #define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549   RTNLGRP_IPV6_IFADDR,
550 #define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
551   RTNLGRP_IPV6_MROUTE,
552 #define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554   RTNLGRP_IPV6_ROUTE,
555 #define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE
556   RTNLGRP_IPV6_IFINFO,
557 #define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559   RTNLGRP_DECnet_IFADDR,
560 #define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
561   RTNLGRP_NOP2,
562   RTNLGRP_DECnet_ROUTE,
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564 #define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
565   RTNLGRP_DECnet_RULE,
566 #define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE
567   RTNLGRP_NOP4,
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569   RTNLGRP_IPV6_PREFIX,
570 #define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
571   RTNLGRP_IPV6_RULE,
572 #define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574   RTNLGRP_ND_USEROPT,
575 #define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT
576   RTNLGRP_PHONET_IFADDR,
577 #define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579   RTNLGRP_PHONET_ROUTE,
580 #define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE
581   RTNLGRP_DCB,
582 #define RTNLGRP_DCB RTNLGRP_DCB
583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584   RTNLGRP_IPV4_NETCONF,
585 #define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF
586   RTNLGRP_IPV6_NETCONF,
587 #define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF
588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589   RTNLGRP_MDB,
590 #define RTNLGRP_MDB RTNLGRP_MDB
591   RTNLGRP_MPLS_ROUTE,
592 #define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE
593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594   RTNLGRP_NSID,
595 #define RTNLGRP_NSID RTNLGRP_NSID
596   __RTNLGRP_MAX
597 };
598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
600 struct tcamsg {
601   unsigned char tca_family;
602   unsigned char tca__pad1;
603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604   unsigned short tca__pad2;
605 };
606 #define TA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
607 #define TA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcamsg))
608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609 #define TCA_ACT_TAB 1
610 #define TCAA_MAX 1
611 #define RTEXT_FILTER_VF (1 << 0)
612 #define RTEXT_FILTER_BRVLAN (1 << 1)
613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614 #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
615 #define RTEXT_FILTER_SKIP_STATS (1 << 3)
616 #endif
617