rtnetlink.h revision 49f525c47bd383cd6a87db8f067cddb3ab620d17
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
31enum {
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)
167struct 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))
182struct 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};
196enum {
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
236enum 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
251enum 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};
261enum 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_MAX
295};
296#define RTA_MAX (__RTA_MAX - 1)
297#define RTM_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct rtmsg))
300struct rtnexthop {
301  unsigned short rtnh_len;
302  unsigned char rtnh_flags;
303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304  unsigned char rtnh_hops;
305  int rtnh_ifindex;
306};
307#define RTNH_F_DEAD 1
308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309#define RTNH_F_PERVASIVE 2
310#define RTNH_F_ONLINK 4
311#define RTNH_F_OFFLOAD 8
312#define RTNH_F_LINKDOWN 16
313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD)
315#define RTNH_ALIGNTO 4
316#define RTNH_ALIGN(len) (((len) + RTNH_ALIGNTO - 1) & ~(RTNH_ALIGNTO - 1))
317#define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && ((int) (rtnh)->rtnh_len) <= (len))
318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319#define RTNH_NEXT(rtnh) ((struct rtnexthop *) (((char *) (rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len)))
320#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len))
321#define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len))
322#define RTNH_DATA(rtnh) ((struct rtattr *) (((char *) (rtnh)) + RTNH_LENGTH(0)))
323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324struct rtvia {
325  __kernel_sa_family_t rtvia_family;
326  __u8 rtvia_addr[0];
327};
328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329struct rta_cacheinfo {
330  __u32 rta_clntref;
331  __u32 rta_lastuse;
332  __s32 rta_expires;
333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334  __u32 rta_error;
335  __u32 rta_used;
336#define RTNETLINK_HAVE_PEERINFO 1
337  __u32 rta_id;
338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339  __u32 rta_ts;
340  __u32 rta_tsage;
341};
342enum {
343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344  RTAX_UNSPEC,
345#define RTAX_UNSPEC RTAX_UNSPEC
346  RTAX_LOCK,
347#define RTAX_LOCK RTAX_LOCK
348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349  RTAX_MTU,
350#define RTAX_MTU RTAX_MTU
351  RTAX_WINDOW,
352#define RTAX_WINDOW RTAX_WINDOW
353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354  RTAX_RTT,
355#define RTAX_RTT RTAX_RTT
356  RTAX_RTTVAR,
357#define RTAX_RTTVAR RTAX_RTTVAR
358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359  RTAX_SSTHRESH,
360#define RTAX_SSTHRESH RTAX_SSTHRESH
361  RTAX_CWND,
362#define RTAX_CWND RTAX_CWND
363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364  RTAX_ADVMSS,
365#define RTAX_ADVMSS RTAX_ADVMSS
366  RTAX_REORDERING,
367#define RTAX_REORDERING RTAX_REORDERING
368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369  RTAX_HOPLIMIT,
370#define RTAX_HOPLIMIT RTAX_HOPLIMIT
371  RTAX_INITCWND,
372#define RTAX_INITCWND RTAX_INITCWND
373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374  RTAX_FEATURES,
375#define RTAX_FEATURES RTAX_FEATURES
376  RTAX_RTO_MIN,
377#define RTAX_RTO_MIN RTAX_RTO_MIN
378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379  RTAX_INITRWND,
380#define RTAX_INITRWND RTAX_INITRWND
381  RTAX_QUICKACK,
382#define RTAX_QUICKACK RTAX_QUICKACK
383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384  RTAX_CC_ALGO,
385#define RTAX_CC_ALGO RTAX_CC_ALGO
386  __RTAX_MAX
387};
388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389#define RTAX_MAX (__RTAX_MAX - 1)
390#define RTAX_FEATURE_ECN (1 << 0)
391#define RTAX_FEATURE_SACK (1 << 1)
392#define RTAX_FEATURE_TIMESTAMP (1 << 2)
393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394#define RTAX_FEATURE_ALLFRAG (1 << 3)
395#define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG)
396struct rta_session {
397  __u8 proto;
398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399  __u8 pad1;
400  __u16 pad2;
401  union {
402    struct {
403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404      __u16 sport;
405      __u16 dport;
406    } ports;
407    struct {
408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409      __u8 type;
410      __u8 code;
411      __u16 ident;
412    } icmpt;
413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414    __u32 spi;
415  } u;
416};
417struct rta_mfc_stats {
418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419  __u64 mfcs_packets;
420  __u64 mfcs_bytes;
421  __u64 mfcs_wrong_if;
422};
423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424struct rtgenmsg {
425  unsigned char rtgen_family;
426};
427struct ifinfomsg {
428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429  unsigned char ifi_family;
430  unsigned char __ifi_pad;
431  unsigned short ifi_type;
432  int ifi_index;
433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434  unsigned ifi_flags;
435  unsigned ifi_change;
436};
437struct prefixmsg {
438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439  unsigned char prefix_family;
440  unsigned char prefix_pad1;
441  unsigned short prefix_pad2;
442  int prefix_ifindex;
443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  unsigned char prefix_type;
445  unsigned char prefix_len;
446  unsigned char prefix_flags;
447  unsigned char prefix_pad3;
448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449};
450enum {
451  PREFIX_UNSPEC,
452  PREFIX_ADDRESS,
453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454  PREFIX_CACHEINFO,
455  __PREFIX_MAX
456};
457#define PREFIX_MAX (__PREFIX_MAX - 1)
458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459struct prefix_cacheinfo {
460  __u32 preferred_time;
461  __u32 valid_time;
462};
463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464struct tcmsg {
465  unsigned char tcm_family;
466  unsigned char tcm__pad1;
467  unsigned short tcm__pad2;
468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469  int tcm_ifindex;
470  __u32 tcm_handle;
471  __u32 tcm_parent;
472  __u32 tcm_info;
473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474};
475enum {
476  TCA_UNSPEC,
477  TCA_KIND,
478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479  TCA_OPTIONS,
480  TCA_STATS,
481  TCA_XSTATS,
482  TCA_RATE,
483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484  TCA_FCNT,
485  TCA_STATS2,
486  TCA_STAB,
487  TCA_PAD,
488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489  __TCA_MAX
490};
491#define TCA_MAX (__TCA_MAX - 1)
492#define TCA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcmsg))
495struct nduseroptmsg {
496  unsigned char nduseropt_family;
497  unsigned char nduseropt_pad1;
498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499  unsigned short nduseropt_opts_len;
500  int nduseropt_ifindex;
501  __u8 nduseropt_icmp_type;
502  __u8 nduseropt_icmp_code;
503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504  unsigned short nduseropt_pad2;
505  unsigned int nduseropt_pad3;
506};
507enum {
508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509  NDUSEROPT_UNSPEC,
510  NDUSEROPT_SRCADDR,
511  __NDUSEROPT_MAX
512};
513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514#define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1)
515#define RTMGRP_LINK 1
516#define RTMGRP_NOTIFY 2
517#define RTMGRP_NEIGH 4
518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519#define RTMGRP_TC 8
520#define RTMGRP_IPV4_IFADDR 0x10
521#define RTMGRP_IPV4_MROUTE 0x20
522#define RTMGRP_IPV4_ROUTE 0x40
523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524#define RTMGRP_IPV4_RULE 0x80
525#define RTMGRP_IPV6_IFADDR 0x100
526#define RTMGRP_IPV6_MROUTE 0x200
527#define RTMGRP_IPV6_ROUTE 0x400
528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529#define RTMGRP_IPV6_IFINFO 0x800
530#define RTMGRP_DECnet_IFADDR 0x1000
531#define RTMGRP_DECnet_ROUTE 0x4000
532#define RTMGRP_IPV6_PREFIX 0x20000
533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534enum rtnetlink_groups {
535  RTNLGRP_NONE,
536#define RTNLGRP_NONE RTNLGRP_NONE
537  RTNLGRP_LINK,
538/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539#define RTNLGRP_LINK RTNLGRP_LINK
540  RTNLGRP_NOTIFY,
541#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY
542  RTNLGRP_NEIGH,
543/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544#define RTNLGRP_NEIGH RTNLGRP_NEIGH
545  RTNLGRP_TC,
546#define RTNLGRP_TC RTNLGRP_TC
547  RTNLGRP_IPV4_IFADDR,
548/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR
550  RTNLGRP_IPV4_MROUTE,
551#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
552  RTNLGRP_IPV4_ROUTE,
553/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
555  RTNLGRP_IPV4_RULE,
556#define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE
557  RTNLGRP_IPV6_IFADDR,
558/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
560  RTNLGRP_IPV6_MROUTE,
561#define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE
562  RTNLGRP_IPV6_ROUTE,
563/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564#define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE
565  RTNLGRP_IPV6_IFINFO,
566#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
567  RTNLGRP_DECnet_IFADDR,
568/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
570  RTNLGRP_NOP2,
571  RTNLGRP_DECnet_ROUTE,
572#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
573/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574  RTNLGRP_DECnet_RULE,
575#define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE
576  RTNLGRP_NOP4,
577  RTNLGRP_IPV6_PREFIX,
578/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
580  RTNLGRP_IPV6_RULE,
581#define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE
582  RTNLGRP_ND_USEROPT,
583/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584#define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT
585  RTNLGRP_PHONET_IFADDR,
586#define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR
587  RTNLGRP_PHONET_ROUTE,
588/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589#define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE
590  RTNLGRP_DCB,
591#define RTNLGRP_DCB RTNLGRP_DCB
592  RTNLGRP_IPV4_NETCONF,
593/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594#define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF
595  RTNLGRP_IPV6_NETCONF,
596#define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF
597  RTNLGRP_MDB,
598/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599#define RTNLGRP_MDB RTNLGRP_MDB
600  RTNLGRP_MPLS_ROUTE,
601#define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE
602  RTNLGRP_NSID,
603/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604#define RTNLGRP_NSID RTNLGRP_NSID
605  __RTNLGRP_MAX
606};
607#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
608/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609struct tcamsg {
610  unsigned char tca_family;
611  unsigned char tca__pad1;
612  unsigned short tca__pad2;
613/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614};
615#define TA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
616#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcamsg))
617#define TCA_ACT_TAB 1
618/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619#define TCAA_MAX 1
620#define RTEXT_FILTER_VF (1 << 0)
621#define RTEXT_FILTER_BRVLAN (1 << 1)
622#define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
623/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624#define RTEXT_FILTER_SKIP_STATS (1 << 3)
625#endif
626