19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/****************************************************************************
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ****************************************************************************
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ***
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ***   This header was automatically generated from a Linux kernel header
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ***   of the same name, to make information necessary for userspace to
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ***   call into the kernel available to libc.  It contains only constants,
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ***   structures, and macros generated from the original header, and thus,
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ***   contains no copyrightable information.
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ***
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ****************************************************************************
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ****************************************************************************/
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef __LINUX_RTNETLINK_H
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define __LINUX_RTNETLINK_H
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <linux/netlink.h>
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectenum {
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_BASE = 16,
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_BASE RTM_BASE
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_NEWLINK = 16,
22124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt#define RTM_NEWLINK RTM_NEWLINK
23b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff RTM_DELLINK,
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_DELLINK RTM_DELLINK
257872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RTM_GETLINK,
26124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt#define RTM_GETLINK RTM_GETLINK
274717c261b2c670d5c0925e3527a864aa52db6ac0Robert Greenwalt RTM_SETLINK,
28124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt#define RTM_SETLINK RTM_SETLINK
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30ee00b353a4070a9ddbdf67fa715dc84e7282f7c2Elliott Hughes RTM_NEWADDR = 20,
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_NEWADDR RTM_NEWADDR
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_DELADDR,
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_DELADDR RTM_DELADDR
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_GETADDR,
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_GETADDR RTM_GETADDR
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff RTM_NEWROUTE = 24,
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_NEWROUTE RTM_NEWROUTE
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_DELROUTE,
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_DELROUTE RTM_DELROUTE
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_GETROUTE,
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_GETROUTE RTM_GETROUTE
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
442ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTM_NEWNEIGH = 28,
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_NEWNEIGH RTM_NEWNEIGH
46408abf7f1bec3253675d0225300d7ee39481d286Svet Ganov RTM_DELNEIGH,
47408abf7f1bec3253675d0225300d7ee39481d286Svet Ganov#define RTM_DELNEIGH RTM_DELNEIGH
48408abf7f1bec3253675d0225300d7ee39481d286Svet Ganov RTM_GETNEIGH,
49408abf7f1bec3253675d0225300d7ee39481d286Svet Ganov#define RTM_GETNEIGH RTM_GETNEIGH
50408abf7f1bec3253675d0225300d7ee39481d286Svet Ganov
51408abf7f1bec3253675d0225300d7ee39481d286Svet Ganov RTM_NEWRULE = 32,
52408abf7f1bec3253675d0225300d7ee39481d286Svet Ganov#define RTM_NEWRULE RTM_NEWRULE
53408abf7f1bec3253675d0225300d7ee39481d286Svet Ganov RTM_DELRULE,
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_DELRULE RTM_DELRULE
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_GETRULE,
56319da8c4c59be36fe2e221a0aba230ef6b77a14fIrfan Sheriff#define RTM_GETRULE RTM_GETRULE
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_NEWQDISC = 36,
59319da8c4c59be36fe2e221a0aba230ef6b77a14fIrfan Sheriff#define RTM_NEWQDISC RTM_NEWQDISC
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_DELQDISC,
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_DELQDISC RTM_DELQDISC
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_GETQDISC,
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_GETQDISC RTM_GETQDISC
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_NEWTCLASS = 40,
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_NEWTCLASS RTM_NEWTCLASS
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_DELTCLASS,
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_DELTCLASS RTM_DELTCLASS
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_GETTCLASS,
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_GETTCLASS RTM_GETTCLASS
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff RTM_NEWTFILTER = 44,
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_NEWTFILTER RTM_NEWTFILTER
74111fa0274d1d6620f9634783585387f3b773949evandwalle RTM_DELTFILTER,
75111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTM_DELTFILTER RTM_DELTFILTER
76111fa0274d1d6620f9634783585387f3b773949evandwalle RTM_GETTFILTER,
77111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTM_GETTFILTER RTM_GETTFILTER
78111fa0274d1d6620f9634783585387f3b773949evandwalle
79111fa0274d1d6620f9634783585387f3b773949evandwalle RTM_NEWACTION = 48,
80111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTM_NEWACTION RTM_NEWACTION
81111fa0274d1d6620f9634783585387f3b773949evandwalle RTM_DELACTION,
82111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTM_DELACTION RTM_DELACTION
83111fa0274d1d6620f9634783585387f3b773949evandwalle RTM_GETACTION,
84111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTM_GETACTION RTM_GETACTION
852ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
862ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTM_NEWPREFIX = 52,
872ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTM_NEWPREFIX RTM_NEWPREFIX
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_GETPREFIX = 54,
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_GETPREFIX RTM_GETPREFIX
902ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
912ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTM_GETMULTICAST = 58,
922ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTM_GETMULTICAST RTM_GETMULTICAST
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTM_GETANYCAST = 62,
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTM_GETANYCAST RTM_GETANYCAST
962ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
972ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTM_NEWNEIGHTBL = 64,
982ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTM_NEWNEIGHTBL RTM_NEWNEIGHTBL
9970a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme RTM_GETNEIGHTBL = 66,
10070a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme#define RTM_GETNEIGHTBL RTM_GETNEIGHTBL
10170a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme RTM_SETNEIGHTBL,
102124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt#define RTM_SETNEIGHTBL RTM_SETNEIGHTBL
103408abf7f1bec3253675d0225300d7ee39481d286Svet Ganov
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __RTM_MAX,
105c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
106c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele};
1079f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey
1082ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE)
1092ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2)
1102ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2)
1112ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
1122ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwallestruct rtattr
1132ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle{
1142ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned short rta_len;
1152ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned short rta_type;
1162ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle};
1172ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
1182ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTA_ALIGNTO 4
1192ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) & ~(RTA_ALIGNTO-1) )
1202ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTA_OK(rta,len) ((len) >= (int)sizeof(struct rtattr) &&   (rta)->rta_len >= sizeof(struct rtattr) &&   (rta)->rta_len <= (len))
1212ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len),   (struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)->rta_len)))
1222ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len))
1232ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len))
1242ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTA_DATA(rta) ((void*)(((char*)(rta)) + RTA_LENGTH(0)))
1252ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTA_PAYLOAD(rta) ((int)((rta)->rta_len) - RTA_LENGTH(0))
1262ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
1272ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwallestruct rtmsg
1282ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle{
1292ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char rtm_family;
1302ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char rtm_dst_len;
1312ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char rtm_src_len;
1322ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char rtm_tos;
1332ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
1342ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char rtm_table;
1352ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char rtm_protocol;
1362ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char rtm_scope;
1372ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char rtm_type;
1382ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
1392ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned rtm_flags;
1407872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan};
1417872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan
1427872f3986932b169c553f21dc79d74108c3c4eb5Randy Panenum
1437872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan{
1447872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RTN_UNSPEC,
1457872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RTN_UNICAST,
1467872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RTN_LOCAL,
1477872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RTN_BROADCAST,
1487872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RTN_ANYCAST,
1492ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTN_MULTICAST,
1502ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTN_BLACKHOLE,
1512ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTN_UNREACHABLE,
1522ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTN_PROHIBIT,
1532ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTN_THROW,
1542ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTN_NAT,
1552ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTN_XRESOLVE,
1562ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle __RTN_MAX
157d524c78d9358e2fa1e67124468cffa5284870c62vandwalle};
158d524c78d9358e2fa1e67124468cffa5284870c62vandwalle
159d524c78d9358e2fa1e67124468cffa5284870c62vandwalle#define RTN_MAX (__RTN_MAX - 1)
160d524c78d9358e2fa1e67124468cffa5284870c62vandwalle
161d524c78d9358e2fa1e67124468cffa5284870c62vandwalle#define RTPROT_UNSPEC 0
1622ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTPROT_REDIRECT 1
1632ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTPROT_KERNEL 2
1642ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTPROT_BOOT 3
16572d87d99b02c6523a4a3cb83e0d5cf6c8e01075fvandwalle#define RTPROT_STATIC 4
1662ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
1672ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTPROT_GATED 8
1682ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTPROT_RA 9
1692ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTPROT_MRT 10
170111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTPROT_ZEBRA 11
1712ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTPROT_BIRD 12
1727872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan#define RTPROT_DNROUTED 13
1732ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTPROT_XORP 14
1742ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTPROT_NTK 15
1752ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
1762ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalleenum rt_scope_t
1772ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle{
1782ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RT_SCOPE_UNIVERSE=0,
1792ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
1802ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RT_SCOPE_SITE=200,
1817872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RT_SCOPE_LINK=253,
1827872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RT_SCOPE_HOST=254,
1837872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RT_SCOPE_NOWHERE=255
184d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle};
185d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle
186d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle#define RTM_F_NOTIFY 0x100
1877872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan#define RTM_F_CLONED 0x200
1887872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan#define RTM_F_EQUALIZE 0x400
1897872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan#define RTM_F_PREFIX 0x800
1907872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan
1917872f3986932b169c553f21dc79d74108c3c4eb5Randy Panenum rt_class_t
1927872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan{
1937872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RT_TABLE_UNSPEC=0,
1947872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan
1957872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RT_TABLE_DEFAULT=253,
1967872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RT_TABLE_MAIN=254,
1977872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RT_TABLE_LOCAL=255,
1987872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan __RT_TABLE_MAX
1997872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan};
2007872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan#define RT_TABLE_MAX (__RT_TABLE_MAX - 1)
2017872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan
2027872f3986932b169c553f21dc79d74108c3c4eb5Randy Panenum rtattr_type_t
203d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle{
204d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle RTA_UNSPEC,
205d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle RTA_DST,
206d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle RTA_SRC,
207d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle RTA_IIF,
208d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle RTA_OIF,
2092ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTA_GATEWAY,
2102ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTA_PRIORITY,
2112ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTA_PREFSRC,
2122ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTA_METRICS,
2137872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RTA_MULTIPATH,
2142ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTA_PROTOINFO,
215111fa0274d1d6620f9634783585387f3b773949evandwalle RTA_FLOW,
2162ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTA_CACHEINFO,
2172ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTA_SESSION,
2182ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle RTA_MP_ALGO,
219111fa0274d1d6620f9634783585387f3b773949evandwalle __RTA_MAX
220111fa0274d1d6620f9634783585387f3b773949evandwalle};
221111fa0274d1d6620f9634783585387f3b773949evandwalle
222111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTA_MAX (__RTA_MAX - 1)
2237872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan
2242ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTM_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
2252ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct rtmsg))
2262ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
227111fa0274d1d6620f9634783585387f3b773949evandwallestruct rtnexthop
2282ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle{
229111fa0274d1d6620f9634783585387f3b773949evandwalle unsigned short rtnh_len;
230111fa0274d1d6620f9634783585387f3b773949evandwalle unsigned char rtnh_flags;
231111fa0274d1d6620f9634783585387f3b773949evandwalle unsigned char rtnh_hops;
2329f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey int rtnh_ifindex;
233111fa0274d1d6620f9634783585387f3b773949evandwalle};
234111fa0274d1d6620f9634783585387f3b773949evandwalle
235111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTNH_F_DEAD 1
236111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTNH_F_PERVASIVE 2
237111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTNH_F_ONLINK 4
238111fa0274d1d6620f9634783585387f3b773949evandwalle
239d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle#define RTNH_ALIGNTO 4
240d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle#define RTNH_ALIGN(len) ( ((len)+RTNH_ALIGNTO-1) & ~(RTNH_ALIGNTO-1) )
241d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle#define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) &&   ((int)(rtnh)->rtnh_len) <= (len))
242d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle#define RTNH_NEXT(rtnh) ((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len)))
243d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len))
244d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle#define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len))
245d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle#define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0)))
246d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwalle
247d258d7a86e3e2f8e0d2d573c27a2b3c6a7975df1Pierre Vandwallestruct rta_cacheinfo
248111fa0274d1d6620f9634783585387f3b773949evandwalle{
249111fa0274d1d6620f9634783585387f3b773949evandwalle __u32 rta_clntref;
250111fa0274d1d6620f9634783585387f3b773949evandwalle __u32 rta_lastuse;
251111fa0274d1d6620f9634783585387f3b773949evandwalle __s32 rta_expires;
252111fa0274d1d6620f9634783585387f3b773949evandwalle __u32 rta_error;
253111fa0274d1d6620f9634783585387f3b773949evandwalle __u32 rta_used;
254111fa0274d1d6620f9634783585387f3b773949evandwalle
255111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTNETLINK_HAVE_PEERINFO 1
2569f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey __u32 rta_id;
2579f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey __u32 rta_ts;
258ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde __u32 rta_tsage;
259ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde};
260b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectenum
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTAX_UNSPEC,
264111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTAX_UNSPEC RTAX_UNSPEC
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RTAX_LOCK,
26670a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme#define RTAX_LOCK RTAX_LOCK
2677872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan RTAX_MTU,
268111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTAX_MTU RTAX_MTU
269111fa0274d1d6620f9634783585387f3b773949evandwalle RTAX_WINDOW,
270111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTAX_WINDOW RTAX_WINDOW
271111fa0274d1d6620f9634783585387f3b773949evandwalle RTAX_RTT,
272111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTAX_RTT RTAX_RTT
273111fa0274d1d6620f9634783585387f3b773949evandwalle RTAX_RTTVAR,
274111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTAX_RTTVAR RTAX_RTTVAR
275111fa0274d1d6620f9634783585387f3b773949evandwalle RTAX_SSTHRESH,
276111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTAX_SSTHRESH RTAX_SSTHRESH
277111fa0274d1d6620f9634783585387f3b773949evandwalle RTAX_CWND,
278111fa0274d1d6620f9634783585387f3b773949evandwalle#define RTAX_CWND RTAX_CWND
279111fa0274d1d6620f9634783585387f3b773949evandwalle RTAX_ADVMSS,
280c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele#define RTAX_ADVMSS RTAX_ADVMSS
28172d87d99b02c6523a4a3cb83e0d5cf6c8e01075fvandwalle RTAX_REORDERING,
282f980c53f86affedc51d31c939a1435d26bc0e050vandwalle#define RTAX_REORDERING RTAX_REORDERING
283f980c53f86affedc51d31c939a1435d26bc0e050vandwalle RTAX_HOPLIMIT,
284f980c53f86affedc51d31c939a1435d26bc0e050vandwalle#define RTAX_HOPLIMIT RTAX_HOPLIMIT
285f980c53f86affedc51d31c939a1435d26bc0e050vandwalle RTAX_INITCWND,
286f980c53f86affedc51d31c939a1435d26bc0e050vandwalle#define RTAX_INITCWND RTAX_INITCWND
287f980c53f86affedc51d31c939a1435d26bc0e050vandwalle RTAX_FEATURES,
288f980c53f86affedc51d31c939a1435d26bc0e050vandwalle#define RTAX_FEATURES RTAX_FEATURES
289f980c53f86affedc51d31c939a1435d26bc0e050vandwalle __RTAX_MAX
290f980c53f86affedc51d31c939a1435d26bc0e050vandwalle};
291d524c78d9358e2fa1e67124468cffa5284870c62vandwalle
292f980c53f86affedc51d31c939a1435d26bc0e050vandwalle#define RTAX_MAX (__RTAX_MAX - 1)
2937872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTAX_FEATURE_ECN 0x00000001
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTAX_FEATURE_SACK 0x00000002
2963550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy#define RTAX_FEATURE_TIMESTAMP 0x00000004
2973550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy#define RTAX_FEATURE_ALLFRAG 0x00000008
2983550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy
2993550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levystruct rta_session
3003550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy{
3013550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy __u8 proto;
3023550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy __u8 pad1;
3033550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy __u16 pad2;
304b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff
3053550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy union {
3063550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy struct {
3073550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy __u16 sport;
30870a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u16 dport;
3093550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy } ports;
3103550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy
3119f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey struct {
312c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele __u8 type;
3132ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle __u8 code;
3142ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle __u16 ident;
3152ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle } icmpt;
3162ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
3172ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle __u32 spi;
3182ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle } u;
3192ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle};
3202ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
3217872f3986932b169c553f21dc79d74108c3c4eb5Randy Panstruct ifaddrmsg
3227872f3986932b169c553f21dc79d74108c3c4eb5Randy Pan{
3232ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char ifa_family;
3242ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char ifa_prefixlen;
3252ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char ifa_flags;
326d524c78d9358e2fa1e67124468cffa5284870c62vandwalle unsigned char ifa_scope;
3273550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy int ifa_index;
3283550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy};
3293550ac919c492f3fbaebbf868f4df0d1ea7ee784Isaac Levy
330ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapndeenum
331ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde{
332b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff IFA_UNSPEC,
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFA_ADDRESS,
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFA_LOCAL,
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFA_LABEL,
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFA_BROADCAST,
337b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff IFA_ANYCAST,
338b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff IFA_CACHEINFO,
339f92fc1ca6541ab833e2f0fc09b57fb95294411c0Jeff Davidson IFA_MULTICAST,
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __IFA_MAX
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
343b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff#define IFA_MAX (__IFA_MAX - 1)
344b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff
345b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff#define IFA_F_SECONDARY 0x01
346b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff#define IFA_F_TEMPORARY IFA_F_SECONDARY
347b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff
34891ec9298d90ea6c279decdb52fae2fa5d28813d0zhangshuxiao#define IFA_F_DEPRECATED 0x20
34991ec9298d90ea6c279decdb52fae2fa5d28813d0zhangshuxiao#define IFA_F_TENTATIVE 0x40
350b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff#define IFA_F_PERMANENT 0x80
351b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff
352b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriffstruct ifa_cacheinfo
353b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff{
354b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff __u32 ifa_prefered;
355b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff __u32 ifa_valid;
356b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff __u32 cstamp;
357b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff __u32 tstamp;
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
360ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
361ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstruct ndmsg
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned char ndm_family;
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned char ndm_pad1;
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned short ndm_pad2;
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int ndm_ifindex;
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u16 ndm_state;
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u8 ndm_flags;
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u8 ndm_type;
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectenum
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
376137ff532ebb062ea513d6ea0dd894b91f373d1a3Brian Williammee NDA_UNSPEC,
377e4ce619880e831992b005c17dfabb7800994d0c7Jeff Davidson NDA_DST,
378e4ce619880e831992b005c17dfabb7800994d0c7Jeff Davidson NDA_LLADDR,
379e4ce619880e831992b005c17dfabb7800994d0c7Jeff Davidson NDA_CACHEINFO,
380e4ce619880e831992b005c17dfabb7800994d0c7Jeff Davidson NDA_PROBES,
381e4ce619880e831992b005c17dfabb7800994d0c7Jeff Davidson __NDA_MAX
3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NDA_MAX (__NDA_MAX - 1)
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NDA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ndmsg))))
387ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde#define NDA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ndmsg))
388ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde
389111fa0274d1d6620f9634783585387f3b773949evandwalle#define NTF_PROXY 0x08
390111fa0274d1d6620f9634783585387f3b773949evandwalle#define NTF_ROUTER 0x80
391111fa0274d1d6620f9634783585387f3b773949evandwalle
392111fa0274d1d6620f9634783585387f3b773949evandwalle#define NUD_INCOMPLETE 0x01
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NUD_REACHABLE 0x02
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NUD_STALE 0x04
3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NUD_DELAY 0x08
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NUD_PROBE 0x10
3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NUD_FAILED 0x20
3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NUD_NOARP 0x40
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NUD_PERMANENT 0x80
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NUD_NONE 0x00
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstruct nda_cacheinfo
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
405ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde __u32 ndm_confirmed;
406ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde __u32 ndm_used;
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 ndm_updated;
4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 ndm_refcnt;
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41170a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Lemestruct ndt_stats
41270a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme{
41370a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_allocs;
41470a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_destroys;
41570a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_hash_grows;
41670a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_res_failed;
41770a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_lookups;
41870a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_hits;
41970a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_rcv_probes_mcast;
42070a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_rcv_probes_ucast;
42170a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_periodic_gc_runs;
42270a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme __u64 ndts_forced_gc_runs;
42370a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme};
42470a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme
4252ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalleenum {
4262ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_UNSPEC,
4272ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_IFINDEX,
4282ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_REFCNT,
4294eeecb25509f91ac7a6e2cde76dac782fbec5360vandwalle NDTPA_REACHABLE_TIME,
4302ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_BASE_REACHABLE_TIME,
4312ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_RETRANS_TIME,
4322ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_GC_STALETIME,
4332ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_DELAY_PROBE_TIME,
4342ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_QUEUE_LEN,
4352ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_APP_PROBES,
4362ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_UCAST_PROBES,
4374eeecb25509f91ac7a6e2cde76dac782fbec5360vandwalle NDTPA_MCAST_PROBES,
4382ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_ANYCAST_DELAY,
4392ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_PROXY_DELAY,
4402ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle NDTPA_PROXY_QLEN,
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NDTPA_LOCKTIME,
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __NDTPA_MAX
443ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde};
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define NDTPA_MAX (__NDTPA_MAX - 1)
445ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstruct ndtmsg
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u8 ndtm_family;
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u8 ndtm_pad1;
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u16 ndtm_pad2;
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
453a31ebbc439364a4993e79fd385cf6373408a42feMakoto Onukistruct ndt_config
454a31ebbc439364a4993e79fd385cf6373408a42feMakoto Onuki{
455a31ebbc439364a4993e79fd385cf6373408a42feMakoto Onuki __u16 ndtc_key_len;
456a31ebbc439364a4993e79fd385cf6373408a42feMakoto Onuki __u16 ndtc_entry_size;
457a31ebbc439364a4993e79fd385cf6373408a42feMakoto Onuki __u32 ndtc_entries;
458a31ebbc439364a4993e79fd385cf6373408a42feMakoto Onuki __u32 ndtc_last_flush;
459a31ebbc439364a4993e79fd385cf6373408a42feMakoto Onuki __u32 ndtc_last_rand;
460a31ebbc439364a4993e79fd385cf6373408a42feMakoto Onuki __u32 ndtc_hash_rnd;
461a31ebbc439364a4993e79fd385cf6373408a42feMakoto Onuki __u32 ndtc_hash_mask;
4629f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey __u32 ndtc_hash_chain_gc;
4639f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey __u32 ndtc_proxy_qlen;
4649f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey};
4659f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey
4669f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkeyenum {
4679f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey NDTA_UNSPEC,
4689f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey NDTA_NAME,
4699f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey NDTA_THRESH1,
4709f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey NDTA_THRESH2,
4719f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey NDTA_THRESH3,
472c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele NDTA_CONFIG,
473c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele NDTA_PARMS,
474c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele NDTA_STATS,
475c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele NDTA_GC_INTERVAL,
476c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele __NDTA_MAX
477c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele};
478c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele#define NDTA_MAX (__NDTA_MAX - 1)
479c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele
480c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele#define NDTA_RTA(r) ((struct rtattr*)(((char*)(r)) +   NLMSG_ALIGN(sizeof(struct ndtmsg))))
481c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele#define NDTA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ndtmsg))
482ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde
483ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapndestruct rtgenmsg
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned char rtgen_family;
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstruct ifinfomsg
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned char ifi_family;
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned char __ifi_pad;
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned short ifi_type;
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int ifi_index;
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned ifi_flags;
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned ifi_change;
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstruct prefixmsg
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned char prefix_family;
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned char prefix_pad1;
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned short prefix_pad2;
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int prefix_ifindex;
5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned char prefix_type;
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned char prefix_len;
506ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde unsigned char prefix_flags;
507ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde unsigned char prefix_pad3;
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectenum
511ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde{
512ffadfb9ffdced62db215319d3edc7717802088fbVinit Deshapnde PREFIX_UNSPEC,
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PREFIX_ADDRESS,
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PREFIX_CACHEINFO,
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __PREFIX_MAX
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
5174717c261b2c670d5c0925e3527a864aa52db6ac0Robert Greenwalt
5184717c261b2c670d5c0925e3527a864aa52db6ac0Robert Greenwalt#define PREFIX_MAX (__PREFIX_MAX - 1)
5194717c261b2c670d5c0925e3527a864aa52db6ac0Robert Greenwalt
5204717c261b2c670d5c0925e3527a864aa52db6ac0Robert Greenwaltstruct prefix_cacheinfo
5214717c261b2c670d5c0925e3527a864aa52db6ac0Robert Greenwalt{
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 preferred_time;
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 valid_time;
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstruct rtnl_link_stats
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_packets;
52963edd98d2eb744cc78dc3a3f8ec1ce7e6164d69dvandwalle __u32 tx_packets;
5306e86fa8a6b69dfb8c8117791dc0f100b80fb616fNarayan Kamath __u32 rx_bytes;
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tx_bytes;
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_errors;
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tx_errors;
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_dropped;
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tx_dropped;
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 multicast;
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 collisions;
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_length_errors;
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_over_errors;
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_crc_errors;
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_frame_errors;
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_fifo_errors;
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_missed_errors;
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tx_aborted_errors;
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tx_carrier_errors;
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tx_fifo_errors;
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tx_heartbeat_errors;
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tx_window_errors;
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 rx_compressed;
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tx_compressed;
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstruct rtnl_link_ifmap
557ee00b353a4070a9ddbdf67fa715dc84e7282f7c2Elliott Hughes{
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u64 mem_start;
5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u64 mem_end;
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u64 base_addr;
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u16 irq;
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u8 dma;
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u8 port;
5649f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey};
5659f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey
56600a10a1494954d124e1b11bc1ba3128e47b8ffbdIrfan Sheriffenum
5679f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey{
5689f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey IFLA_UNSPEC,
5699f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey IFLA_ADDRESS,
5709f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey IFLA_BROADCAST,
5719f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey IFLA_IFNAME,
5729f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey IFLA_MTU,
5739f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey IFLA_LINK,
5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_QDISC,
5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_STATS,
5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_COST,
5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define IFLA_COST IFLA_COST
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_PRIORITY,
579b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff#define IFLA_PRIORITY IFLA_PRIORITY
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_MASTER,
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define IFLA_MASTER IFLA_MASTER
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_WIRELESS,
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define IFLA_WIRELESS IFLA_WIRELESS
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_PROTINFO,
58570a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme#define IFLA_PROTINFO IFLA_PROTINFO
58670a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme IFLA_TXQLEN,
5879f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey#define IFLA_TXQLEN IFLA_TXQLEN
5882ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle IFLA_MAP,
5892ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define IFLA_MAP IFLA_MAP
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_WEIGHT,
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define IFLA_WEIGHT IFLA_WEIGHT
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_OPERSTATE,
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IFLA_LINKMODE,
5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __IFLA_MAX
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define IFLA_MAX (__IFLA_MAX - 1)
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectenum
60370a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme{
604124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt IFLA_INET6_UNSPEC,
605124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt IFLA_INET6_FLAGS,
606124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt IFLA_INET6_CONF,
607124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt IFLA_INET6_STATS,
608124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt IFLA_INET6_MCAST,
609124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt IFLA_INET6_CACHEINFO,
610b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff __IFLA_INET6_MAX
611b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff};
612b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff
613b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
614b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff
615b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriffstruct ifla_cacheinfo
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 max_reasm_len;
6189f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey __u32 tstamp;
619c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele __u32 reachable_time;
6202ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle __u32 retrans_time;
6212ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle};
6222ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
6232ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwallestruct tcmsg
6242ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle{
6252ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char tcm_family;
6262ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle unsigned char tcm__pad1;
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unsigned short tcm__pad2;
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int tcm_ifindex;
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tcm_handle;
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tcm_parent;
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project __u32 tcm_info;
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectenum
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TCA_UNSPEC,
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TCA_KIND,
63870a415e7fe56ecf0b2591d540913f70ed211d66dFelipe Leme TCA_OPTIONS,
639124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt TCA_STATS,
640124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt TCA_XSTATS,
641124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt TCA_RATE,
642124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt TCA_FCNT,
643124b44d89bc00b150c9478ccddfa83cac0f1df24Robert Greenwalt TCA_STATS2,
644b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff __TCA_MAX
645b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff};
646b6deeed3ceff9e0f754697987b7c724901996082Irfan Sheriff
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define TCA_MAX (__TCA_MAX - 1)
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6499f6e4ba50e7e73704c7fbd3ba65fe73bdf8ad73fJeff Sharkey#define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
650c7a38ef8405443648688a7950378ac4e4ebb3ae5Shirish Kalele#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg))
6512ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
6522ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTMGRP_LINK 1
6532ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTMGRP_NOTIFY 2
6542ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTMGRP_NEIGH 4
6552ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTMGRP_TC 8
6562ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle
6572ab9089dfa0c0526e8bf0aaade8a09dec021dc90vandwalle#define RTMGRP_IPV4_IFADDR 0x10
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTMGRP_IPV4_MROUTE 0x20
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTMGRP_IPV4_ROUTE 0x40
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTMGRP_IPV4_RULE 0x80
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTMGRP_IPV6_IFADDR 0x100
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTMGRP_IPV6_MROUTE 0x200
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTMGRP_IPV6_ROUTE 0x400
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define RTMGRP_IPV6_IFINFO 0x800
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
667#define RTMGRP_DECnet_IFADDR 0x1000
668#define RTMGRP_DECnet_ROUTE 0x4000
669
670#define RTMGRP_IPV6_PREFIX 0x20000
671
672enum rtnetlink_groups {
673 RTNLGRP_NONE,
674#define RTNLGRP_NONE RTNLGRP_NONE
675 RTNLGRP_LINK,
676#define RTNLGRP_LINK RTNLGRP_LINK
677 RTNLGRP_NOTIFY,
678#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY
679 RTNLGRP_NEIGH,
680#define RTNLGRP_NEIGH RTNLGRP_NEIGH
681 RTNLGRP_TC,
682#define RTNLGRP_TC RTNLGRP_TC
683 RTNLGRP_IPV4_IFADDR,
684#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR
685 RTNLGRP_IPV4_MROUTE,
686#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
687 RTNLGRP_IPV4_ROUTE,
688#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
689 RTNLGRP_IPV4_RULE,
690#define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE
691 RTNLGRP_IPV6_IFADDR,
692#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
693 RTNLGRP_IPV6_MROUTE,
694#define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE
695 RTNLGRP_IPV6_ROUTE,
696#define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE
697 RTNLGRP_IPV6_IFINFO,
698#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
699 RTNLGRP_DECnet_IFADDR,
700#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
701 RTNLGRP_NOP2,
702 RTNLGRP_DECnet_ROUTE,
703#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
704 RTNLGRP_NOP3,
705 RTNLGRP_NOP4,
706 RTNLGRP_IPV6_PREFIX,
707#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
708 __RTNLGRP_MAX
709};
710#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
711
712struct tcamsg
713{
714 unsigned char tca_family;
715 unsigned char tca__pad1;
716 unsigned short tca__pad2;
717};
718#define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
719#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg))
720#define TCA_ACT_TAB 1
721#define TCAA_MAX 1
722
723#endif
724