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 {
416  PREFIX_UNSPEC,
417  PREFIX_ADDRESS,
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419  PREFIX_CACHEINFO,
420  __PREFIX_MAX
421 };
422 #define PREFIX_MAX (__PREFIX_MAX - 1)
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424 struct prefix_cacheinfo {
425  __u32 preferred_time;
426  __u32 valid_time;
427 };
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429 struct tcmsg {
430  unsigned char tcm_family;
431  unsigned char tcm__pad1;
432  unsigned short tcm__pad2;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434  int tcm_ifindex;
435  __u32 tcm_handle;
436  __u32 tcm_parent;
437  __u32 tcm_info;
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439 };
440 enum {
441  TCA_UNSPEC,
442  TCA_KIND,
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  TCA_OPTIONS,
445  TCA_STATS,
446  TCA_XSTATS,
447  TCA_RATE,
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449  TCA_FCNT,
450  TCA_STATS2,
451  TCA_STAB,
452  __TCA_MAX
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454 };
455 #define TCA_MAX (__TCA_MAX - 1)
456 #define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
457 #define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg))
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459 struct nduseroptmsg {
460  unsigned char nduseropt_family;
461  unsigned char nduseropt_pad1;
462  unsigned short nduseropt_opts_len;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464  int nduseropt_ifindex;
465  __u8 nduseropt_icmp_type;
466  __u8 nduseropt_icmp_code;
467  unsigned short nduseropt_pad2;
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469  unsigned int nduseropt_pad3;
470 };
471 enum {
472  NDUSEROPT_UNSPEC,
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474  NDUSEROPT_SRCADDR,
475  __NDUSEROPT_MAX
476 };
477 #define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1)
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479 #define RTMGRP_LINK 1
480 #define RTMGRP_NOTIFY 2
481 #define RTMGRP_NEIGH 4
482 #define RTMGRP_TC 8
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484 #define RTMGRP_IPV4_IFADDR 0x10
485 #define RTMGRP_IPV4_MROUTE 0x20
486 #define RTMGRP_IPV4_ROUTE 0x40
487 #define RTMGRP_IPV4_RULE 0x80
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489 #define RTMGRP_IPV6_IFADDR 0x100
490 #define RTMGRP_IPV6_MROUTE 0x200
491 #define RTMGRP_IPV6_ROUTE 0x400
492 #define RTMGRP_IPV6_IFINFO 0x800
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494 #define RTMGRP_DECnet_IFADDR 0x1000
495 #define RTMGRP_DECnet_ROUTE 0x4000
496 #define RTMGRP_IPV6_PREFIX 0x20000
497 enum rtnetlink_groups {
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499  RTNLGRP_NONE,
500 #define RTNLGRP_NONE RTNLGRP_NONE
501  RTNLGRP_LINK,
502 #define RTNLGRP_LINK RTNLGRP_LINK
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504  RTNLGRP_NOTIFY,
505 #define RTNLGRP_NOTIFY RTNLGRP_NOTIFY
506  RTNLGRP_NEIGH,
507 #define RTNLGRP_NEIGH RTNLGRP_NEIGH
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509  RTNLGRP_TC,
510 #define RTNLGRP_TC RTNLGRP_TC
511  RTNLGRP_IPV4_IFADDR,
512 #define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514  RTNLGRP_IPV4_MROUTE,
515 #define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
516  RTNLGRP_IPV4_ROUTE,
517 #define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519  RTNLGRP_IPV4_RULE,
520 #define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE
521  RTNLGRP_IPV6_IFADDR,
522 #define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524  RTNLGRP_IPV6_MROUTE,
525 #define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE
526  RTNLGRP_IPV6_ROUTE,
527 #define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529  RTNLGRP_IPV6_IFINFO,
530 #define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
531  RTNLGRP_DECnet_IFADDR,
532 #define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534  RTNLGRP_NOP2,
535  RTNLGRP_DECnet_ROUTE,
536 #define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
537  RTNLGRP_DECnet_RULE,
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539 #define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE
540  RTNLGRP_NOP4,
541  RTNLGRP_IPV6_PREFIX,
542 #define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544  RTNLGRP_IPV6_RULE,
545 #define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE
546  RTNLGRP_ND_USEROPT,
547 #define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549  RTNLGRP_PHONET_IFADDR,
550 #define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR
551  RTNLGRP_PHONET_ROUTE,
552 #define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554  RTNLGRP_DCB,
555 #define RTNLGRP_DCB RTNLGRP_DCB
556  RTNLGRP_IPV4_NETCONF,
557 #define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559  RTNLGRP_IPV6_NETCONF,
560 #define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF
561  RTNLGRP_MDB,
562 #define RTNLGRP_MDB RTNLGRP_MDB
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564  __RTNLGRP_MAX
565 };
566 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
567 struct tcamsg {
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569  unsigned char tca_family;
570  unsigned char tca__pad1;
571  unsigned short tca__pad2;
572 };
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574 #define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
575 #define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg))
576 #define TCA_ACT_TAB 1
577 #define TCAA_MAX 1
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579 #define RTEXT_FILTER_VF (1 << 0)
580 #define RTEXT_FILTER_BRVLAN (1 << 1)
581 #endif
582