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