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