• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_NEWSTATS = 92,
156 #define RTM_NEWSTATS RTM_NEWSTATS
157   RTM_GETSTATS = 94,
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159 #define RTM_GETSTATS RTM_GETSTATS
160   __RTM_MAX,
161 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
162 };
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 #define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE)
165 #define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2)
166 #define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2)
167 struct rtattr {
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   unsigned short rta_len;
170   unsigned short rta_type;
171 };
172 #define RTA_ALIGNTO 4U
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 #define RTA_ALIGN(len) (((len) + RTA_ALIGNTO - 1) & ~(RTA_ALIGNTO - 1))
175 #define RTA_OK(rta,len) ((len) >= (int) sizeof(struct rtattr) && (rta)->rta_len >= sizeof(struct rtattr) && (rta)->rta_len <= (len))
176 #define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len), (struct rtattr *) (((char *) (rta)) + RTA_ALIGN((rta)->rta_len)))
177 #define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len))
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179 #define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len))
180 #define RTA_DATA(rta) ((void *) (((char *) (rta)) + RTA_LENGTH(0)))
181 #define RTA_PAYLOAD(rta) ((int) ((rta)->rta_len) - RTA_LENGTH(0))
182 struct rtmsg {
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   unsigned char rtm_family;
185   unsigned char rtm_dst_len;
186   unsigned char rtm_src_len;
187   unsigned char rtm_tos;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189   unsigned char rtm_table;
190   unsigned char rtm_protocol;
191   unsigned char rtm_scope;
192   unsigned char rtm_type;
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   unsigned rtm_flags;
195 };
196 enum {
197   RTN_UNSPEC,
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   RTN_UNICAST,
200   RTN_LOCAL,
201   RTN_BROADCAST,
202   RTN_ANYCAST,
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204   RTN_MULTICAST,
205   RTN_BLACKHOLE,
206   RTN_UNREACHABLE,
207   RTN_PROHIBIT,
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209   RTN_THROW,
210   RTN_NAT,
211   RTN_XRESOLVE,
212   __RTN_MAX
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 };
215 #define RTN_MAX (__RTN_MAX - 1)
216 #define RTPROT_UNSPEC 0
217 #define RTPROT_REDIRECT 1
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 #define RTPROT_KERNEL 2
220 #define RTPROT_BOOT 3
221 #define RTPROT_STATIC 4
222 #define RTPROT_GATED 8
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 #define RTPROT_RA 9
225 #define RTPROT_MRT 10
226 #define RTPROT_ZEBRA 11
227 #define RTPROT_BIRD 12
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 #define RTPROT_DNROUTED 13
230 #define RTPROT_XORP 14
231 #define RTPROT_NTK 15
232 #define RTPROT_DHCP 16
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234 #define RTPROT_MROUTED 17
235 #define RTPROT_BABEL 42
236 enum rt_scope_t {
237   RT_SCOPE_UNIVERSE = 0,
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239   RT_SCOPE_SITE = 200,
240   RT_SCOPE_LINK = 253,
241   RT_SCOPE_HOST = 254,
242   RT_SCOPE_NOWHERE = 255
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 };
245 #define RTM_F_NOTIFY 0x100
246 #define RTM_F_CLONED 0x200
247 #define RTM_F_EQUALIZE 0x400
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249 #define RTM_F_PREFIX 0x800
250 #define RTM_F_LOOKUP_TABLE 0x1000
251 enum rt_class_t {
252   RT_TABLE_UNSPEC = 0,
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254   RT_TABLE_COMPAT = 252,
255   RT_TABLE_DEFAULT = 253,
256   RT_TABLE_MAIN = 254,
257   RT_TABLE_LOCAL = 255,
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259   RT_TABLE_MAX = 0xFFFFFFFF
260 };
261 enum rtattr_type_t {
262   RTA_UNSPEC,
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264   RTA_DST,
265   RTA_SRC,
266   RTA_IIF,
267   RTA_OIF,
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269   RTA_GATEWAY,
270   RTA_PRIORITY,
271   RTA_PREFSRC,
272   RTA_METRICS,
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274   RTA_MULTIPATH,
275   RTA_PROTOINFO,
276   RTA_FLOW,
277   RTA_CACHEINFO,
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279   RTA_SESSION,
280   RTA_MP_ALGO,
281   RTA_TABLE,
282   RTA_MARK,
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284   RTA_MFC_STATS,
285   RTA_VIA,
286   RTA_NEWDST,
287   RTA_PREF,
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289   RTA_ENCAP_TYPE,
290   RTA_ENCAP,
291   RTA_EXPIRES,
292   RTA_PAD,
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294   RTA_UID,
295   __RTA_MAX
296 };
297 #define RTA_MAX (__RTA_MAX - 1)
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 #define RTM_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
300 #define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct rtmsg))
301 struct rtnexthop {
302   unsigned short rtnh_len;
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304   unsigned char rtnh_flags;
305   unsigned char rtnh_hops;
306   int rtnh_ifindex;
307 };
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 #define RTNH_F_DEAD 1
310 #define RTNH_F_PERVASIVE 2
311 #define RTNH_F_ONLINK 4
312 #define RTNH_F_OFFLOAD 8
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 #define RTNH_F_LINKDOWN 16
315 #define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD)
316 #define RTNH_ALIGNTO 4
317 #define RTNH_ALIGN(len) (((len) + RTNH_ALIGNTO - 1) & ~(RTNH_ALIGNTO - 1))
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319 #define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && ((int) (rtnh)->rtnh_len) <= (len))
320 #define RTNH_NEXT(rtnh) ((struct rtnexthop *) (((char *) (rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len)))
321 #define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len))
322 #define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len))
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324 #define RTNH_DATA(rtnh) ((struct rtattr *) (((char *) (rtnh)) + RTNH_LENGTH(0)))
325 struct rtvia {
326   __kernel_sa_family_t rtvia_family;
327   __u8 rtvia_addr[0];
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329 };
330 struct rta_cacheinfo {
331   __u32 rta_clntref;
332   __u32 rta_lastuse;
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334   __s32 rta_expires;
335   __u32 rta_error;
336   __u32 rta_used;
337 #define RTNETLINK_HAVE_PEERINFO 1
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339   __u32 rta_id;
340   __u32 rta_ts;
341   __u32 rta_tsage;
342 };
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344 enum {
345   RTAX_UNSPEC,
346 #define RTAX_UNSPEC RTAX_UNSPEC
347   RTAX_LOCK,
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349 #define RTAX_LOCK RTAX_LOCK
350   RTAX_MTU,
351 #define RTAX_MTU RTAX_MTU
352   RTAX_WINDOW,
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354 #define RTAX_WINDOW RTAX_WINDOW
355   RTAX_RTT,
356 #define RTAX_RTT RTAX_RTT
357   RTAX_RTTVAR,
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359 #define RTAX_RTTVAR RTAX_RTTVAR
360   RTAX_SSTHRESH,
361 #define RTAX_SSTHRESH RTAX_SSTHRESH
362   RTAX_CWND,
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364 #define RTAX_CWND RTAX_CWND
365   RTAX_ADVMSS,
366 #define RTAX_ADVMSS RTAX_ADVMSS
367   RTAX_REORDERING,
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369 #define RTAX_REORDERING RTAX_REORDERING
370   RTAX_HOPLIMIT,
371 #define RTAX_HOPLIMIT RTAX_HOPLIMIT
372   RTAX_INITCWND,
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374 #define RTAX_INITCWND RTAX_INITCWND
375   RTAX_FEATURES,
376 #define RTAX_FEATURES RTAX_FEATURES
377   RTAX_RTO_MIN,
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379 #define RTAX_RTO_MIN RTAX_RTO_MIN
380   RTAX_INITRWND,
381 #define RTAX_INITRWND RTAX_INITRWND
382   RTAX_QUICKACK,
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384 #define RTAX_QUICKACK RTAX_QUICKACK
385   RTAX_CC_ALGO,
386 #define RTAX_CC_ALGO RTAX_CC_ALGO
387   __RTAX_MAX
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389 };
390 #define RTAX_MAX (__RTAX_MAX - 1)
391 #define RTAX_FEATURE_ECN (1 << 0)
392 #define RTAX_FEATURE_SACK (1 << 1)
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394 #define RTAX_FEATURE_TIMESTAMP (1 << 2)
395 #define RTAX_FEATURE_ALLFRAG (1 << 3)
396 #define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG)
397 struct rta_session {
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399   __u8 proto;
400   __u8 pad1;
401   __u16 pad2;
402   union {
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404     struct {
405       __u16 sport;
406       __u16 dport;
407     } ports;
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409     struct {
410       __u8 type;
411       __u8 code;
412       __u16 ident;
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414     } icmpt;
415     __u32 spi;
416   } u;
417 };
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419 struct rta_mfc_stats {
420   __u64 mfcs_packets;
421   __u64 mfcs_bytes;
422   __u64 mfcs_wrong_if;
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424 };
425 struct rtgenmsg {
426   unsigned char rtgen_family;
427 };
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429 struct ifinfomsg {
430   unsigned char ifi_family;
431   unsigned char __ifi_pad;
432   unsigned short ifi_type;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434   int ifi_index;
435   unsigned ifi_flags;
436   unsigned ifi_change;
437 };
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439 struct prefixmsg {
440   unsigned char prefix_family;
441   unsigned char prefix_pad1;
442   unsigned short prefix_pad2;
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444   int prefix_ifindex;
445   unsigned char prefix_type;
446   unsigned char prefix_len;
447   unsigned char prefix_flags;
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449   unsigned char prefix_pad3;
450 };
451 enum {
452   PREFIX_UNSPEC,
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454   PREFIX_ADDRESS,
455   PREFIX_CACHEINFO,
456   __PREFIX_MAX
457 };
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459 #define PREFIX_MAX (__PREFIX_MAX - 1)
460 struct prefix_cacheinfo {
461   __u32 preferred_time;
462   __u32 valid_time;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464 };
465 struct tcmsg {
466   unsigned char tcm_family;
467   unsigned char tcm__pad1;
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469   unsigned short tcm__pad2;
470   int tcm_ifindex;
471   __u32 tcm_handle;
472   __u32 tcm_parent;
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474   __u32 tcm_info;
475 };
476 enum {
477   TCA_UNSPEC,
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479   TCA_KIND,
480   TCA_OPTIONS,
481   TCA_STATS,
482   TCA_XSTATS,
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484   TCA_RATE,
485   TCA_FCNT,
486   TCA_STATS2,
487   TCA_STAB,
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489   TCA_PAD,
490   __TCA_MAX
491 };
492 #define TCA_MAX (__TCA_MAX - 1)
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494 #define TCA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
495 #define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcmsg))
496 struct nduseroptmsg {
497   unsigned char nduseropt_family;
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499   unsigned char nduseropt_pad1;
500   unsigned short nduseropt_opts_len;
501   int nduseropt_ifindex;
502   __u8 nduseropt_icmp_type;
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504   __u8 nduseropt_icmp_code;
505   unsigned short nduseropt_pad2;
506   unsigned int nduseropt_pad3;
507 };
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509 enum {
510   NDUSEROPT_UNSPEC,
511   NDUSEROPT_SRCADDR,
512   __NDUSEROPT_MAX
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514 };
515 #define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1)
516 #define RTMGRP_LINK 1
517 #define RTMGRP_NOTIFY 2
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519 #define RTMGRP_NEIGH 4
520 #define RTMGRP_TC 8
521 #define RTMGRP_IPV4_IFADDR 0x10
522 #define RTMGRP_IPV4_MROUTE 0x20
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524 #define RTMGRP_IPV4_ROUTE 0x40
525 #define RTMGRP_IPV4_RULE 0x80
526 #define RTMGRP_IPV6_IFADDR 0x100
527 #define RTMGRP_IPV6_MROUTE 0x200
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529 #define RTMGRP_IPV6_ROUTE 0x400
530 #define RTMGRP_IPV6_IFINFO 0x800
531 #define RTMGRP_DECnet_IFADDR 0x1000
532 #define RTMGRP_DECnet_ROUTE 0x4000
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534 #define RTMGRP_IPV6_PREFIX 0x20000
535 enum rtnetlink_groups {
536   RTNLGRP_NONE,
537 #define RTNLGRP_NONE RTNLGRP_NONE
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539   RTNLGRP_LINK,
540 #define RTNLGRP_LINK RTNLGRP_LINK
541   RTNLGRP_NOTIFY,
542 #define RTNLGRP_NOTIFY RTNLGRP_NOTIFY
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544   RTNLGRP_NEIGH,
545 #define RTNLGRP_NEIGH RTNLGRP_NEIGH
546   RTNLGRP_TC,
547 #define RTNLGRP_TC RTNLGRP_TC
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549   RTNLGRP_IPV4_IFADDR,
550 #define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR
551   RTNLGRP_IPV4_MROUTE,
552 #define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554   RTNLGRP_IPV4_ROUTE,
555 #define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
556   RTNLGRP_IPV4_RULE,
557 #define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559   RTNLGRP_IPV6_IFADDR,
560 #define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
561   RTNLGRP_IPV6_MROUTE,
562 #define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564   RTNLGRP_IPV6_ROUTE,
565 #define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE
566   RTNLGRP_IPV6_IFINFO,
567 #define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569   RTNLGRP_DECnet_IFADDR,
570 #define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
571   RTNLGRP_NOP2,
572   RTNLGRP_DECnet_ROUTE,
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574 #define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
575   RTNLGRP_DECnet_RULE,
576 #define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE
577   RTNLGRP_NOP4,
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579   RTNLGRP_IPV6_PREFIX,
580 #define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
581   RTNLGRP_IPV6_RULE,
582 #define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE
583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584   RTNLGRP_ND_USEROPT,
585 #define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT
586   RTNLGRP_PHONET_IFADDR,
587 #define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR
588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589   RTNLGRP_PHONET_ROUTE,
590 #define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE
591   RTNLGRP_DCB,
592 #define RTNLGRP_DCB RTNLGRP_DCB
593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594   RTNLGRP_IPV4_NETCONF,
595 #define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF
596   RTNLGRP_IPV6_NETCONF,
597 #define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF
598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599   RTNLGRP_MDB,
600 #define RTNLGRP_MDB RTNLGRP_MDB
601   RTNLGRP_MPLS_ROUTE,
602 #define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE
603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604   RTNLGRP_NSID,
605 #define RTNLGRP_NSID RTNLGRP_NSID
606   __RTNLGRP_MAX
607 };
608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
610 struct tcamsg {
611   unsigned char tca_family;
612   unsigned char tca__pad1;
613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614   unsigned short tca__pad2;
615 };
616 #define TA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
617 #define TA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcamsg))
618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619 #define TCA_ACT_TAB 1
620 #define TCAA_MAX 1
621 #define RTEXT_FILTER_VF (1 << 0)
622 #define RTEXT_FILTER_BRVLAN (1 << 1)
623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624 #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
625 #define RTEXT_FILTER_SKIP_STATS (1 << 3)
626 #endif
627