blob: d4a9d83138eea4a3e65e410c159b38597a4d6d11 [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
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 {
Tao Baod7db5942015-01-28 10:07:51 -080032 RTM_BASE = 16,
Ben Cheng655a7c02013-10-16 16:09:24 -070033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#define RTM_BASE RTM_BASE
Tao Baod7db5942015-01-28 10:07:51 -080035 RTM_NEWLINK = 16,
Ben Cheng655a7c02013-10-16 16:09:24 -070036#define RTM_NEWLINK RTM_NEWLINK
Tao Baod7db5942015-01-28 10:07:51 -080037 RTM_DELLINK,
Ben Cheng655a7c02013-10-16 16:09:24 -070038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39#define RTM_DELLINK RTM_DELLINK
Tao Baod7db5942015-01-28 10:07:51 -080040 RTM_GETLINK,
Ben Cheng655a7c02013-10-16 16:09:24 -070041#define RTM_GETLINK RTM_GETLINK
Tao Baod7db5942015-01-28 10:07:51 -080042 RTM_SETLINK,
Ben Cheng655a7c02013-10-16 16:09:24 -070043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44#define RTM_SETLINK RTM_SETLINK
Tao Baod7db5942015-01-28 10:07:51 -080045 RTM_NEWADDR = 20,
Ben Cheng655a7c02013-10-16 16:09:24 -070046#define RTM_NEWADDR RTM_NEWADDR
Tao Baod7db5942015-01-28 10:07:51 -080047 RTM_DELADDR,
Ben Cheng655a7c02013-10-16 16:09:24 -070048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49#define RTM_DELADDR RTM_DELADDR
Tao Baod7db5942015-01-28 10:07:51 -080050 RTM_GETADDR,
Ben Cheng655a7c02013-10-16 16:09:24 -070051#define RTM_GETADDR RTM_GETADDR
Tao Baod7db5942015-01-28 10:07:51 -080052 RTM_NEWROUTE = 24,
Ben Cheng655a7c02013-10-16 16:09:24 -070053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54#define RTM_NEWROUTE RTM_NEWROUTE
Tao Baod7db5942015-01-28 10:07:51 -080055 RTM_DELROUTE,
Ben Cheng655a7c02013-10-16 16:09:24 -070056#define RTM_DELROUTE RTM_DELROUTE
Tao Baod7db5942015-01-28 10:07:51 -080057 RTM_GETROUTE,
Ben Cheng655a7c02013-10-16 16:09:24 -070058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59#define RTM_GETROUTE RTM_GETROUTE
Tao Baod7db5942015-01-28 10:07:51 -080060 RTM_NEWNEIGH = 28,
Ben Cheng655a7c02013-10-16 16:09:24 -070061#define RTM_NEWNEIGH RTM_NEWNEIGH
Tao Baod7db5942015-01-28 10:07:51 -080062 RTM_DELNEIGH,
Ben Cheng655a7c02013-10-16 16:09:24 -070063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64#define RTM_DELNEIGH RTM_DELNEIGH
Tao Baod7db5942015-01-28 10:07:51 -080065 RTM_GETNEIGH,
Ben Cheng655a7c02013-10-16 16:09:24 -070066#define RTM_GETNEIGH RTM_GETNEIGH
Tao Baod7db5942015-01-28 10:07:51 -080067 RTM_NEWRULE = 32,
Ben Cheng655a7c02013-10-16 16:09:24 -070068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69#define RTM_NEWRULE RTM_NEWRULE
Tao Baod7db5942015-01-28 10:07:51 -080070 RTM_DELRULE,
Ben Cheng655a7c02013-10-16 16:09:24 -070071#define RTM_DELRULE RTM_DELRULE
Tao Baod7db5942015-01-28 10:07:51 -080072 RTM_GETRULE,
Ben Cheng655a7c02013-10-16 16:09:24 -070073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74#define RTM_GETRULE RTM_GETRULE
Tao Baod7db5942015-01-28 10:07:51 -080075 RTM_NEWQDISC = 36,
Ben Cheng655a7c02013-10-16 16:09:24 -070076#define RTM_NEWQDISC RTM_NEWQDISC
Tao Baod7db5942015-01-28 10:07:51 -080077 RTM_DELQDISC,
Ben Cheng655a7c02013-10-16 16:09:24 -070078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79#define RTM_DELQDISC RTM_DELQDISC
Tao Baod7db5942015-01-28 10:07:51 -080080 RTM_GETQDISC,
Ben Cheng655a7c02013-10-16 16:09:24 -070081#define RTM_GETQDISC RTM_GETQDISC
Tao Baod7db5942015-01-28 10:07:51 -080082 RTM_NEWTCLASS = 40,
Ben Cheng655a7c02013-10-16 16:09:24 -070083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84#define RTM_NEWTCLASS RTM_NEWTCLASS
Tao Baod7db5942015-01-28 10:07:51 -080085 RTM_DELTCLASS,
Ben Cheng655a7c02013-10-16 16:09:24 -070086#define RTM_DELTCLASS RTM_DELTCLASS
Tao Baod7db5942015-01-28 10:07:51 -080087 RTM_GETTCLASS,
Ben Cheng655a7c02013-10-16 16:09:24 -070088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89#define RTM_GETTCLASS RTM_GETTCLASS
Tao Baod7db5942015-01-28 10:07:51 -080090 RTM_NEWTFILTER = 44,
Ben Cheng655a7c02013-10-16 16:09:24 -070091#define RTM_NEWTFILTER RTM_NEWTFILTER
Tao Baod7db5942015-01-28 10:07:51 -080092 RTM_DELTFILTER,
Ben Cheng655a7c02013-10-16 16:09:24 -070093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94#define RTM_DELTFILTER RTM_DELTFILTER
Tao Baod7db5942015-01-28 10:07:51 -080095 RTM_GETTFILTER,
Ben Cheng655a7c02013-10-16 16:09:24 -070096#define RTM_GETTFILTER RTM_GETTFILTER
Tao Baod7db5942015-01-28 10:07:51 -080097 RTM_NEWACTION = 48,
Ben Cheng655a7c02013-10-16 16:09:24 -070098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99#define RTM_NEWACTION RTM_NEWACTION
Tao Baod7db5942015-01-28 10:07:51 -0800100 RTM_DELACTION,
Ben Cheng655a7c02013-10-16 16:09:24 -0700101#define RTM_DELACTION RTM_DELACTION
Tao Baod7db5942015-01-28 10:07:51 -0800102 RTM_GETACTION,
Ben Cheng655a7c02013-10-16 16:09:24 -0700103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104#define RTM_GETACTION RTM_GETACTION
Tao Baod7db5942015-01-28 10:07:51 -0800105 RTM_NEWPREFIX = 52,
Ben Cheng655a7c02013-10-16 16:09:24 -0700106#define RTM_NEWPREFIX RTM_NEWPREFIX
Tao Baod7db5942015-01-28 10:07:51 -0800107 RTM_GETMULTICAST = 58,
Ben Cheng655a7c02013-10-16 16:09:24 -0700108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109#define RTM_GETMULTICAST RTM_GETMULTICAST
Tao Baod7db5942015-01-28 10:07:51 -0800110 RTM_GETANYCAST = 62,
Ben Cheng655a7c02013-10-16 16:09:24 -0700111#define RTM_GETANYCAST RTM_GETANYCAST
Tao Baod7db5942015-01-28 10:07:51 -0800112 RTM_NEWNEIGHTBL = 64,
Ben Cheng655a7c02013-10-16 16:09:24 -0700113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114#define RTM_NEWNEIGHTBL RTM_NEWNEIGHTBL
Tao Baod7db5942015-01-28 10:07:51 -0800115 RTM_GETNEIGHTBL = 66,
Ben Cheng655a7c02013-10-16 16:09:24 -0700116#define RTM_GETNEIGHTBL RTM_GETNEIGHTBL
Tao Baod7db5942015-01-28 10:07:51 -0800117 RTM_SETNEIGHTBL,
Ben Cheng655a7c02013-10-16 16:09:24 -0700118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119#define RTM_SETNEIGHTBL RTM_SETNEIGHTBL
Tao Baod7db5942015-01-28 10:07:51 -0800120 RTM_NEWNDUSEROPT = 68,
Ben Cheng655a7c02013-10-16 16:09:24 -0700121#define RTM_NEWNDUSEROPT RTM_NEWNDUSEROPT
Tao Baod7db5942015-01-28 10:07:51 -0800122 RTM_NEWADDRLABEL = 72,
Ben Cheng655a7c02013-10-16 16:09:24 -0700123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124#define RTM_NEWADDRLABEL RTM_NEWADDRLABEL
Tao Baod7db5942015-01-28 10:07:51 -0800125 RTM_DELADDRLABEL,
Ben Cheng655a7c02013-10-16 16:09:24 -0700126#define RTM_DELADDRLABEL RTM_DELADDRLABEL
Tao Baod7db5942015-01-28 10:07:51 -0800127 RTM_GETADDRLABEL,
Ben Cheng655a7c02013-10-16 16:09:24 -0700128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129#define RTM_GETADDRLABEL RTM_GETADDRLABEL
Tao Baod7db5942015-01-28 10:07:51 -0800130 RTM_GETDCB = 78,
Ben Cheng655a7c02013-10-16 16:09:24 -0700131#define RTM_GETDCB RTM_GETDCB
Tao Baod7db5942015-01-28 10:07:51 -0800132 RTM_SETDCB,
Ben Cheng655a7c02013-10-16 16:09:24 -0700133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134#define RTM_SETDCB RTM_SETDCB
Tao Baod7db5942015-01-28 10:07:51 -0800135 RTM_NEWNETCONF = 80,
Ben Cheng655a7c02013-10-16 16:09:24 -0700136#define RTM_NEWNETCONF RTM_NEWNETCONF
Tao Baod7db5942015-01-28 10:07:51 -0800137 RTM_GETNETCONF = 82,
Ben Cheng655a7c02013-10-16 16:09:24 -0700138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139#define RTM_GETNETCONF RTM_GETNETCONF
Tao Baod7db5942015-01-28 10:07:51 -0800140 RTM_NEWMDB = 84,
Ben Cheng655a7c02013-10-16 16:09:24 -0700141#define RTM_NEWMDB RTM_NEWMDB
Tao Baod7db5942015-01-28 10:07:51 -0800142 RTM_DELMDB = 85,
Ben Cheng655a7c02013-10-16 16:09:24 -0700143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144#define RTM_DELMDB RTM_DELMDB
Tao Baod7db5942015-01-28 10:07:51 -0800145 RTM_GETMDB = 86,
Ben Cheng655a7c02013-10-16 16:09:24 -0700146#define RTM_GETMDB RTM_GETMDB
Christopher Ferris05d08e92016-02-04 13:16:38 -0800147 RTM_NEWNSID = 88,
Ben Cheng655a7c02013-10-16 16:09:24 -0700148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800149#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
Christopher Ferris106b3a82016-08-24 12:15:38 -0700155 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
Christopher Ferris05d08e92016-02-04 13:16:38 -0800160 __RTM_MAX,
Ben Cheng655a7c02013-10-16 16:09:24 -0700161#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
162};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700164#define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE)
165#define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2)
Ben Cheng655a7c02013-10-16 16:09:24 -0700166#define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2)
167struct rtattr {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800169 unsigned short rta_len;
170 unsigned short rta_type;
Ben Cheng655a7c02013-10-16 16:09:24 -0700171};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800172#define RTA_ALIGNTO 4U
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800174#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))
Tao Baod7db5942015-01-28 10:07:51 -0800176#define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len), (struct rtattr *) (((char *) (rta)) + RTA_ALIGN((rta)->rta_len)))
Ben Cheng655a7c02013-10-16 16:09:24 -0700177#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len))
Christopher Ferris05d08e92016-02-04 13:16:38 -0800178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700179#define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len))
Tao Baod7db5942015-01-28 10:07:51 -0800180#define RTA_DATA(rta) ((void *) (((char *) (rta)) + RTA_LENGTH(0)))
Tao Baod7db5942015-01-28 10:07:51 -0800181#define RTA_PAYLOAD(rta) ((int) ((rta)->rta_len) - RTA_LENGTH(0))
Ben Cheng655a7c02013-10-16 16:09:24 -0700182struct rtmsg {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800184 unsigned char rtm_family;
185 unsigned char rtm_dst_len;
Tao Baod7db5942015-01-28 10:07:51 -0800186 unsigned char rtm_src_len;
187 unsigned char rtm_tos;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800189 unsigned char rtm_table;
190 unsigned char rtm_protocol;
Tao Baod7db5942015-01-28 10:07:51 -0800191 unsigned char rtm_scope;
192 unsigned char rtm_type;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800194 unsigned rtm_flags;
Ben Cheng655a7c02013-10-16 16:09:24 -0700195};
Ben Cheng655a7c02013-10-16 16:09:24 -0700196enum {
Tao Baod7db5942015-01-28 10:07:51 -0800197 RTN_UNSPEC,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800199 RTN_UNICAST,
200 RTN_LOCAL,
Tao Baod7db5942015-01-28 10:07:51 -0800201 RTN_BROADCAST,
202 RTN_ANYCAST,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800204 RTN_MULTICAST,
205 RTN_BLACKHOLE,
Tao Baod7db5942015-01-28 10:07:51 -0800206 RTN_UNREACHABLE,
207 RTN_PROHIBIT,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800209 RTN_THROW,
210 RTN_NAT,
Tao Baod7db5942015-01-28 10:07:51 -0800211 RTN_XRESOLVE,
212 __RTN_MAX
Christopher Ferris05d08e92016-02-04 13:16:38 -0800213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700214};
215#define RTN_MAX (__RTN_MAX - 1)
Ben Cheng655a7c02013-10-16 16:09:24 -0700216#define RTPROT_UNSPEC 0
217#define RTPROT_REDIRECT 1
Christopher Ferris05d08e92016-02-04 13:16:38 -0800218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700219#define RTPROT_KERNEL 2
220#define RTPROT_BOOT 3
Ben Cheng655a7c02013-10-16 16:09:24 -0700221#define RTPROT_STATIC 4
222#define RTPROT_GATED 8
Christopher Ferris05d08e92016-02-04 13:16:38 -0800223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700224#define RTPROT_RA 9
225#define RTPROT_MRT 10
Ben Cheng655a7c02013-10-16 16:09:24 -0700226#define RTPROT_ZEBRA 11
227#define RTPROT_BIRD 12
Christopher Ferris05d08e92016-02-04 13:16:38 -0800228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700229#define RTPROT_DNROUTED 13
230#define RTPROT_XORP 14
Ben Cheng655a7c02013-10-16 16:09:24 -0700231#define RTPROT_NTK 15
232#define RTPROT_DHCP 16
Ben Cheng655a7c02013-10-16 16:09:24 -0700233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800234#define RTPROT_MROUTED 17
235#define RTPROT_BABEL 42
236enum rt_scope_t {
Tao Baod7db5942015-01-28 10:07:51 -0800237 RT_SCOPE_UNIVERSE = 0,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800239 RT_SCOPE_SITE = 200,
240 RT_SCOPE_LINK = 253,
241 RT_SCOPE_HOST = 254,
Tao Baod7db5942015-01-28 10:07:51 -0800242 RT_SCOPE_NOWHERE = 255
Christopher Ferris05d08e92016-02-04 13:16:38 -0800243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700244};
245#define RTM_F_NOTIFY 0x100
246#define RTM_F_CLONED 0x200
Ben Cheng655a7c02013-10-16 16:09:24 -0700247#define RTM_F_EQUALIZE 0x400
Christopher Ferris05d08e92016-02-04 13:16:38 -0800248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700249#define RTM_F_PREFIX 0x800
Christopher Ferris05d08e92016-02-04 13:16:38 -0800250#define RTM_F_LOOKUP_TABLE 0x1000
Ben Cheng655a7c02013-10-16 16:09:24 -0700251enum rt_class_t {
Tao Baod7db5942015-01-28 10:07:51 -0800252 RT_TABLE_UNSPEC = 0,
Ben Cheng655a7c02013-10-16 16:09:24 -0700253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800254 RT_TABLE_COMPAT = 252,
255 RT_TABLE_DEFAULT = 253,
256 RT_TABLE_MAIN = 254,
257 RT_TABLE_LOCAL = 255,
Ben Cheng655a7c02013-10-16 16:09:24 -0700258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800259 RT_TABLE_MAX = 0xFFFFFFFF
Ben Cheng655a7c02013-10-16 16:09:24 -0700260};
261enum rtattr_type_t {
Tao Baod7db5942015-01-28 10:07:51 -0800262 RTA_UNSPEC,
Ben Cheng655a7c02013-10-16 16:09:24 -0700263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800264 RTA_DST,
265 RTA_SRC,
266 RTA_IIF,
267 RTA_OIF,
Ben Cheng655a7c02013-10-16 16:09:24 -0700268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800269 RTA_GATEWAY,
270 RTA_PRIORITY,
271 RTA_PREFSRC,
272 RTA_METRICS,
Ben Cheng655a7c02013-10-16 16:09:24 -0700273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800274 RTA_MULTIPATH,
275 RTA_PROTOINFO,
276 RTA_FLOW,
277 RTA_CACHEINFO,
Ben Cheng655a7c02013-10-16 16:09:24 -0700278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800279 RTA_SESSION,
280 RTA_MP_ALGO,
281 RTA_TABLE,
282 RTA_MARK,
Ben Cheng655a7c02013-10-16 16:09:24 -0700283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800284 RTA_MFC_STATS,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800285 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,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700291 RTA_EXPIRES,
292 RTA_PAD,
293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800294 __RTA_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -0700295};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800296#define RTA_MAX (__RTA_MAX - 1)
Tao Baod7db5942015-01-28 10:07:51 -0800297#define RTM_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
Christopher Ferris106b3a82016-08-24 12:15:38 -0700298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800299#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct rtmsg))
Ben Cheng655a7c02013-10-16 16:09:24 -0700300struct rtnexthop {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800301 unsigned short rtnh_len;
Tao Baod7db5942015-01-28 10:07:51 -0800302 unsigned char rtnh_flags;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800304 unsigned char rtnh_hops;
305 int rtnh_ifindex;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800306};
Ben Cheng655a7c02013-10-16 16:09:24 -0700307#define RTNH_F_DEAD 1
Christopher Ferris106b3a82016-08-24 12:15:38 -0700308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700309#define RTNH_F_PERVASIVE 2
310#define RTNH_F_ONLINK 4
Christopher Ferris05d08e92016-02-04 13:16:38 -0800311#define RTNH_F_OFFLOAD 8
312#define RTNH_F_LINKDOWN 16
Christopher Ferris106b3a82016-08-24 12:15:38 -0700313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800314#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN)
Ben Cheng655a7c02013-10-16 16:09:24 -0700315#define RTNH_ALIGNTO 4
Tao Baod7db5942015-01-28 10:07:51 -0800316#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))
Christopher Ferris106b3a82016-08-24 12:15:38 -0700318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800319#define RTNH_NEXT(rtnh) ((struct rtnexthop *) (((char *) (rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len)))
Ben Cheng655a7c02013-10-16 16:09:24 -0700320#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len))
Ben Cheng655a7c02013-10-16 16:09:24 -0700321#define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len))
Tao Baod7db5942015-01-28 10:07:51 -0800322#define RTNH_DATA(rtnh) ((struct rtattr *) (((char *) (rtnh)) + RTNH_LENGTH(0)))
Christopher Ferris106b3a82016-08-24 12:15:38 -0700323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800324struct rtvia {
325 __kernel_sa_family_t rtvia_family;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800326 __u8 rtvia_addr[0];
327};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700329struct rta_cacheinfo {
Tao Baod7db5942015-01-28 10:07:51 -0800330 __u32 rta_clntref;
Tao Baod7db5942015-01-28 10:07:51 -0800331 __u32 rta_lastuse;
332 __s32 rta_expires;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800334 __u32 rta_error;
335 __u32 rta_used;
Ben Cheng655a7c02013-10-16 16:09:24 -0700336#define RTNETLINK_HAVE_PEERINFO 1
Tao Baod7db5942015-01-28 10:07:51 -0800337 __u32 rta_id;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800339 __u32 rta_ts;
340 __u32 rta_tsage;
Ben Cheng655a7c02013-10-16 16:09:24 -0700341};
342enum {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800344 RTAX_UNSPEC,
Ben Cheng655a7c02013-10-16 16:09:24 -0700345#define RTAX_UNSPEC RTAX_UNSPEC
Tao Baod7db5942015-01-28 10:07:51 -0800346 RTAX_LOCK,
Ben Cheng655a7c02013-10-16 16:09:24 -0700347#define RTAX_LOCK RTAX_LOCK
Christopher Ferris106b3a82016-08-24 12:15:38 -0700348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800349 RTAX_MTU,
Ben Cheng655a7c02013-10-16 16:09:24 -0700350#define RTAX_MTU RTAX_MTU
Tao Baod7db5942015-01-28 10:07:51 -0800351 RTAX_WINDOW,
Ben Cheng655a7c02013-10-16 16:09:24 -0700352#define RTAX_WINDOW RTAX_WINDOW
Christopher Ferris106b3a82016-08-24 12:15:38 -0700353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800354 RTAX_RTT,
Ben Cheng655a7c02013-10-16 16:09:24 -0700355#define RTAX_RTT RTAX_RTT
Tao Baod7db5942015-01-28 10:07:51 -0800356 RTAX_RTTVAR,
Ben Cheng655a7c02013-10-16 16:09:24 -0700357#define RTAX_RTTVAR RTAX_RTTVAR
Christopher Ferris106b3a82016-08-24 12:15:38 -0700358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800359 RTAX_SSTHRESH,
Ben Cheng655a7c02013-10-16 16:09:24 -0700360#define RTAX_SSTHRESH RTAX_SSTHRESH
Tao Baod7db5942015-01-28 10:07:51 -0800361 RTAX_CWND,
Ben Cheng655a7c02013-10-16 16:09:24 -0700362#define RTAX_CWND RTAX_CWND
Christopher Ferris106b3a82016-08-24 12:15:38 -0700363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800364 RTAX_ADVMSS,
Ben Cheng655a7c02013-10-16 16:09:24 -0700365#define RTAX_ADVMSS RTAX_ADVMSS
Tao Baod7db5942015-01-28 10:07:51 -0800366 RTAX_REORDERING,
Ben Cheng655a7c02013-10-16 16:09:24 -0700367#define RTAX_REORDERING RTAX_REORDERING
Christopher Ferris106b3a82016-08-24 12:15:38 -0700368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800369 RTAX_HOPLIMIT,
Ben Cheng655a7c02013-10-16 16:09:24 -0700370#define RTAX_HOPLIMIT RTAX_HOPLIMIT
Tao Baod7db5942015-01-28 10:07:51 -0800371 RTAX_INITCWND,
Ben Cheng655a7c02013-10-16 16:09:24 -0700372#define RTAX_INITCWND RTAX_INITCWND
Christopher Ferris106b3a82016-08-24 12:15:38 -0700373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800374 RTAX_FEATURES,
Ben Cheng655a7c02013-10-16 16:09:24 -0700375#define RTAX_FEATURES RTAX_FEATURES
Tao Baod7db5942015-01-28 10:07:51 -0800376 RTAX_RTO_MIN,
Ben Cheng655a7c02013-10-16 16:09:24 -0700377#define RTAX_RTO_MIN RTAX_RTO_MIN
Christopher Ferris106b3a82016-08-24 12:15:38 -0700378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800379 RTAX_INITRWND,
Ben Cheng655a7c02013-10-16 16:09:24 -0700380#define RTAX_INITRWND RTAX_INITRWND
Tao Baod7db5942015-01-28 10:07:51 -0800381 RTAX_QUICKACK,
Christopher Ferris38062f92014-07-09 15:33:25 -0700382#define RTAX_QUICKACK RTAX_QUICKACK
Christopher Ferris106b3a82016-08-24 12:15:38 -0700383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800384 RTAX_CC_ALGO,
385#define RTAX_CC_ALGO RTAX_CC_ALGO
Tao Baod7db5942015-01-28 10:07:51 -0800386 __RTAX_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -0700387};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700389#define RTAX_MAX (__RTAX_MAX - 1)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800390#define RTAX_FEATURE_ECN (1 << 0)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800391#define RTAX_FEATURE_SACK (1 << 1)
392#define RTAX_FEATURE_TIMESTAMP (1 << 2)
Christopher Ferris106b3a82016-08-24 12:15:38 -0700393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800394#define RTAX_FEATURE_ALLFRAG (1 << 3)
395#define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG)
Ben Cheng655a7c02013-10-16 16:09:24 -0700396struct rta_session {
Tao Baod7db5942015-01-28 10:07:51 -0800397 __u8 proto;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800399 __u8 pad1;
Tao Baod7db5942015-01-28 10:07:51 -0800400 __u16 pad2;
401 union {
402 struct {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800404 __u16 sport;
Tao Baod7db5942015-01-28 10:07:51 -0800405 __u16 dport;
406 } ports;
407 struct {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800409 __u8 type;
Tao Baod7db5942015-01-28 10:07:51 -0800410 __u8 code;
411 __u16 ident;
412 } icmpt;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800414 __u32 spi;
Tao Baod7db5942015-01-28 10:07:51 -0800415 } u;
Ben Cheng655a7c02013-10-16 16:09:24 -0700416};
417struct rta_mfc_stats {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800419 __u64 mfcs_packets;
Tao Baod7db5942015-01-28 10:07:51 -0800420 __u64 mfcs_bytes;
421 __u64 mfcs_wrong_if;
Ben Cheng655a7c02013-10-16 16:09:24 -0700422};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700424struct rtgenmsg {
Tao Baod7db5942015-01-28 10:07:51 -0800425 unsigned char rtgen_family;
Ben Cheng655a7c02013-10-16 16:09:24 -0700426};
427struct ifinfomsg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800429 unsigned char ifi_family;
Tao Baod7db5942015-01-28 10:07:51 -0800430 unsigned char __ifi_pad;
431 unsigned short ifi_type;
432 int ifi_index;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800434 unsigned ifi_flags;
Tao Baod7db5942015-01-28 10:07:51 -0800435 unsigned ifi_change;
Ben Cheng655a7c02013-10-16 16:09:24 -0700436};
437struct prefixmsg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800439 unsigned char prefix_family;
Tao Baod7db5942015-01-28 10:07:51 -0800440 unsigned char prefix_pad1;
441 unsigned short prefix_pad2;
442 int prefix_ifindex;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800444 unsigned char prefix_type;
Tao Baod7db5942015-01-28 10:07:51 -0800445 unsigned char prefix_len;
446 unsigned char prefix_flags;
447 unsigned char prefix_pad3;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700449};
Tao Baod7db5942015-01-28 10:07:51 -0800450enum {
451 PREFIX_UNSPEC,
452 PREFIX_ADDRESS,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800454 PREFIX_CACHEINFO,
Tao Baod7db5942015-01-28 10:07:51 -0800455 __PREFIX_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -0700456};
457#define PREFIX_MAX (__PREFIX_MAX - 1)
Christopher Ferris106b3a82016-08-24 12:15:38 -0700458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700459struct prefix_cacheinfo {
Tao Baod7db5942015-01-28 10:07:51 -0800460 __u32 preferred_time;
461 __u32 valid_time;
462};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700464struct tcmsg {
Tao Baod7db5942015-01-28 10:07:51 -0800465 unsigned char tcm_family;
466 unsigned char tcm__pad1;
467 unsigned short tcm__pad2;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800469 int tcm_ifindex;
Tao Baod7db5942015-01-28 10:07:51 -0800470 __u32 tcm_handle;
471 __u32 tcm_parent;
472 __u32 tcm_info;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700474};
475enum {
Tao Baod7db5942015-01-28 10:07:51 -0800476 TCA_UNSPEC,
477 TCA_KIND,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800479 TCA_OPTIONS,
Tao Baod7db5942015-01-28 10:07:51 -0800480 TCA_STATS,
481 TCA_XSTATS,
482 TCA_RATE,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800484 TCA_FCNT,
Tao Baod7db5942015-01-28 10:07:51 -0800485 TCA_STATS2,
486 TCA_STAB,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700487 TCA_PAD,
488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800489 __TCA_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -0700490};
491#define TCA_MAX (__TCA_MAX - 1)
Tao Baod7db5942015-01-28 10:07:51 -0800492#define TCA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
Christopher Ferris106b3a82016-08-24 12:15:38 -0700493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800494#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcmsg))
Ben Cheng655a7c02013-10-16 16:09:24 -0700495struct nduseroptmsg {
Tao Baod7db5942015-01-28 10:07:51 -0800496 unsigned char nduseropt_family;
497 unsigned char nduseropt_pad1;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800499 unsigned short nduseropt_opts_len;
500 int nduseropt_ifindex;
Tao Baod7db5942015-01-28 10:07:51 -0800501 __u8 nduseropt_icmp_type;
502 __u8 nduseropt_icmp_code;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800504 unsigned short nduseropt_pad2;
505 unsigned int nduseropt_pad3;
Ben Cheng655a7c02013-10-16 16:09:24 -0700506};
507enum {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800509 NDUSEROPT_UNSPEC,
510 NDUSEROPT_SRCADDR,
Tao Baod7db5942015-01-28 10:07:51 -0800511 __NDUSEROPT_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -0700512};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700514#define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1)
Ben Cheng655a7c02013-10-16 16:09:24 -0700515#define RTMGRP_LINK 1
516#define RTMGRP_NOTIFY 2
517#define RTMGRP_NEIGH 4
Christopher Ferris106b3a82016-08-24 12:15:38 -0700518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700519#define RTMGRP_TC 8
Ben Cheng655a7c02013-10-16 16:09:24 -0700520#define RTMGRP_IPV4_IFADDR 0x10
521#define RTMGRP_IPV4_MROUTE 0x20
522#define RTMGRP_IPV4_ROUTE 0x40
Christopher Ferris106b3a82016-08-24 12:15:38 -0700523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700524#define RTMGRP_IPV4_RULE 0x80
Ben Cheng655a7c02013-10-16 16:09:24 -0700525#define RTMGRP_IPV6_IFADDR 0x100
526#define RTMGRP_IPV6_MROUTE 0x200
527#define RTMGRP_IPV6_ROUTE 0x400
Christopher Ferris106b3a82016-08-24 12:15:38 -0700528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700529#define RTMGRP_IPV6_IFINFO 0x800
Ben Cheng655a7c02013-10-16 16:09:24 -0700530#define RTMGRP_DECnet_IFADDR 0x1000
531#define RTMGRP_DECnet_ROUTE 0x4000
532#define RTMGRP_IPV6_PREFIX 0x20000
Christopher Ferris106b3a82016-08-24 12:15:38 -0700533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700534enum rtnetlink_groups {
Tao Baod7db5942015-01-28 10:07:51 -0800535 RTNLGRP_NONE,
Ben Cheng655a7c02013-10-16 16:09:24 -0700536#define RTNLGRP_NONE RTNLGRP_NONE
Tao Baod7db5942015-01-28 10:07:51 -0800537 RTNLGRP_LINK,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700538/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700539#define RTNLGRP_LINK RTNLGRP_LINK
Tao Baod7db5942015-01-28 10:07:51 -0800540 RTNLGRP_NOTIFY,
Ben Cheng655a7c02013-10-16 16:09:24 -0700541#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY
Tao Baod7db5942015-01-28 10:07:51 -0800542 RTNLGRP_NEIGH,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700543/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700544#define RTNLGRP_NEIGH RTNLGRP_NEIGH
Tao Baod7db5942015-01-28 10:07:51 -0800545 RTNLGRP_TC,
Ben Cheng655a7c02013-10-16 16:09:24 -0700546#define RTNLGRP_TC RTNLGRP_TC
Tao Baod7db5942015-01-28 10:07:51 -0800547 RTNLGRP_IPV4_IFADDR,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700548/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700549#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR
Tao Baod7db5942015-01-28 10:07:51 -0800550 RTNLGRP_IPV4_MROUTE,
Ben Cheng655a7c02013-10-16 16:09:24 -0700551#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
Tao Baod7db5942015-01-28 10:07:51 -0800552 RTNLGRP_IPV4_ROUTE,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700553/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700554#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
Tao Baod7db5942015-01-28 10:07:51 -0800555 RTNLGRP_IPV4_RULE,
Ben Cheng655a7c02013-10-16 16:09:24 -0700556#define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE
Tao Baod7db5942015-01-28 10:07:51 -0800557 RTNLGRP_IPV6_IFADDR,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700558/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700559#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
Tao Baod7db5942015-01-28 10:07:51 -0800560 RTNLGRP_IPV6_MROUTE,
Ben Cheng655a7c02013-10-16 16:09:24 -0700561#define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE
Tao Baod7db5942015-01-28 10:07:51 -0800562 RTNLGRP_IPV6_ROUTE,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700563/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700564#define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE
Tao Baod7db5942015-01-28 10:07:51 -0800565 RTNLGRP_IPV6_IFINFO,
Ben Cheng655a7c02013-10-16 16:09:24 -0700566#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
Tao Baod7db5942015-01-28 10:07:51 -0800567 RTNLGRP_DECnet_IFADDR,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700568/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700569#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
Tao Baod7db5942015-01-28 10:07:51 -0800570 RTNLGRP_NOP2,
Tao Baod7db5942015-01-28 10:07:51 -0800571 RTNLGRP_DECnet_ROUTE,
Ben Cheng655a7c02013-10-16 16:09:24 -0700572#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
Christopher Ferris106b3a82016-08-24 12:15:38 -0700573/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800574 RTNLGRP_DECnet_RULE,
Ben Cheng655a7c02013-10-16 16:09:24 -0700575#define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE
Tao Baod7db5942015-01-28 10:07:51 -0800576 RTNLGRP_NOP4,
577 RTNLGRP_IPV6_PREFIX,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700578/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700579#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
Tao Baod7db5942015-01-28 10:07:51 -0800580 RTNLGRP_IPV6_RULE,
Ben Cheng655a7c02013-10-16 16:09:24 -0700581#define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE
Tao Baod7db5942015-01-28 10:07:51 -0800582 RTNLGRP_ND_USEROPT,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700583/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700584#define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT
Tao Baod7db5942015-01-28 10:07:51 -0800585 RTNLGRP_PHONET_IFADDR,
Ben Cheng655a7c02013-10-16 16:09:24 -0700586#define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR
Tao Baod7db5942015-01-28 10:07:51 -0800587 RTNLGRP_PHONET_ROUTE,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700588/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700589#define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE
Tao Baod7db5942015-01-28 10:07:51 -0800590 RTNLGRP_DCB,
Ben Cheng655a7c02013-10-16 16:09:24 -0700591#define RTNLGRP_DCB RTNLGRP_DCB
Tao Baod7db5942015-01-28 10:07:51 -0800592 RTNLGRP_IPV4_NETCONF,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700593/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700594#define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF
Tao Baod7db5942015-01-28 10:07:51 -0800595 RTNLGRP_IPV6_NETCONF,
Ben Cheng655a7c02013-10-16 16:09:24 -0700596#define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF
Tao Baod7db5942015-01-28 10:07:51 -0800597 RTNLGRP_MDB,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700598/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700599#define RTNLGRP_MDB RTNLGRP_MDB
Christopher Ferris05d08e92016-02-04 13:16:38 -0800600 RTNLGRP_MPLS_ROUTE,
601#define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE
Christopher Ferris05d08e92016-02-04 13:16:38 -0800602 RTNLGRP_NSID,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700603/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800604#define RTNLGRP_NSID RTNLGRP_NSID
605 __RTNLGRP_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -0700606};
607#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
Christopher Ferris106b3a82016-08-24 12:15:38 -0700608/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700609struct tcamsg {
Tao Baod7db5942015-01-28 10:07:51 -0800610 unsigned char tca_family;
Tao Baod7db5942015-01-28 10:07:51 -0800611 unsigned char tca__pad1;
612 unsigned short tca__pad2;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700613/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700614};
Tao Baod7db5942015-01-28 10:07:51 -0800615#define TA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
Tao Baod7db5942015-01-28 10:07:51 -0800616#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcamsg))
Ben Cheng655a7c02013-10-16 16:09:24 -0700617#define TCA_ACT_TAB 1
Christopher Ferris106b3a82016-08-24 12:15:38 -0700618/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Ben Cheng655a7c02013-10-16 16:09:24 -0700619#define TCAA_MAX 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700620#define RTEXT_FILTER_VF (1 << 0)
621#define RTEXT_FILTER_BRVLAN (1 << 1)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800622#define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
Christopher Ferris106b3a82016-08-24 12:15:38 -0700623/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -0800624#define RTEXT_FILTER_SKIP_STATS (1 << 3)
Ben Cheng655a7c02013-10-16 16:09:24 -0700625#endif