Home | History | Annotate | Download | only in linux
      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