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