rtnetlink.h revision 9163872132a3e92f986b1d684badb1dd4482ad8e
11dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/**************************************************************************** 21dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project **************************************************************************** 31dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *** 41dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *** This header was automatically generated from a Linux kernel header 51dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *** of the same name, to make information necessary for userspace to 61dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *** call into the kernel available to libc. It contains only constants, 71dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *** structures, and macros generated from the original header, and thus, 81dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *** contains no copyrightable information. 91dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *** 101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project **************************************************************************** 111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************/ 121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifndef __LINUX_RTNETLINK_H 131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define __LINUX_RTNETLINK_H 141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 159163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#include <linux/types.h> 161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <linux/netlink.h> 179163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#include <linux/if_link.h> 189163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#include <linux/if_addr.h> 199163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#include <linux/neighbour.h> 201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum { 221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_BASE = 16, 231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_BASE RTM_BASE 241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWLINK = 16, 261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWLINK RTM_NEWLINK 271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_DELLINK, 281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_DELLINK RTM_DELLINK 291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETLINK, 301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETLINK RTM_GETLINK 311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_SETLINK, 321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_SETLINK RTM_SETLINK 331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWADDR = 20, 351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWADDR RTM_NEWADDR 361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_DELADDR, 371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_DELADDR RTM_DELADDR 381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETADDR, 391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETADDR RTM_GETADDR 401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWROUTE = 24, 421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWROUTE RTM_NEWROUTE 431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_DELROUTE, 441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_DELROUTE RTM_DELROUTE 451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETROUTE, 461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETROUTE RTM_GETROUTE 471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWNEIGH = 28, 491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWNEIGH RTM_NEWNEIGH 501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_DELNEIGH, 511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_DELNEIGH RTM_DELNEIGH 521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETNEIGH, 531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETNEIGH RTM_GETNEIGH 541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWRULE = 32, 561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWRULE RTM_NEWRULE 571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_DELRULE, 581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_DELRULE RTM_DELRULE 591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETRULE, 601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETRULE RTM_GETRULE 611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWQDISC = 36, 631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWQDISC RTM_NEWQDISC 641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_DELQDISC, 651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_DELQDISC RTM_DELQDISC 661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETQDISC, 671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETQDISC RTM_GETQDISC 681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWTCLASS = 40, 701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWTCLASS RTM_NEWTCLASS 711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_DELTCLASS, 721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_DELTCLASS RTM_DELTCLASS 731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETTCLASS, 741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETTCLASS RTM_GETTCLASS 751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWTFILTER = 44, 771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWTFILTER RTM_NEWTFILTER 781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_DELTFILTER, 791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_DELTFILTER RTM_DELTFILTER 801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETTFILTER, 811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETTFILTER RTM_GETTFILTER 821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWACTION = 48, 841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWACTION RTM_NEWACTION 851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_DELACTION, 861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_DELACTION RTM_DELACTION 871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETACTION, 881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETACTION RTM_GETACTION 891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWPREFIX = 52, 911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWPREFIX RTM_NEWPREFIX 921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETMULTICAST = 58, 941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETMULTICAST RTM_GETMULTICAST 951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETANYCAST = 62, 971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETANYCAST RTM_GETANYCAST 981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_NEWNEIGHTBL = 64, 1001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NEWNEIGHTBL RTM_NEWNEIGHTBL 1011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_GETNEIGHTBL = 66, 1021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_GETNEIGHTBL RTM_GETNEIGHTBL 1031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTM_SETNEIGHTBL, 1041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_SETNEIGHTBL RTM_SETNEIGHTBL 1051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1069163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTM_NEWNDUSEROPT = 68, 1079163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTM_NEWNDUSEROPT RTM_NEWNDUSEROPT 1089163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat 1099163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTM_NEWADDRLABEL = 72, 1109163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTM_NEWADDRLABEL RTM_NEWADDRLABEL 1119163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTM_DELADDRLABEL, 1129163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTM_DELADDRLABEL RTM_DELADDRLABEL 1139163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTM_GETADDRLABEL, 1149163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTM_GETADDRLABEL RTM_GETADDRLABEL 1159163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat 1169163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTM_GETDCB = 78, 1179163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTM_GETDCB RTM_GETDCB 1189163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTM_SETDCB, 1199163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTM_SETDCB RTM_SETDCB 1209163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat 1211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __RTM_MAX, 1221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) 1231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 1241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE) 1261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2) 1271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2) 1281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct rtattr 1301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 1311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short rta_len; 1321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short rta_type; 1331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 1341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTA_ALIGNTO 4 1361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) & ~(RTA_ALIGNTO-1) ) 1371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTA_OK(rta,len) ((len) >= (int)sizeof(struct rtattr) && (rta)->rta_len >= sizeof(struct rtattr) && (rta)->rta_len <= (len)) 1381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len), (struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)->rta_len))) 1391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len)) 1401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len)) 1411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTA_DATA(rta) ((void*)(((char*)(rta)) + RTA_LENGTH(0))) 1421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTA_PAYLOAD(rta) ((int)((rta)->rta_len) - RTA_LENGTH(0)) 1431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct rtmsg 1451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 1461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtm_family; 1471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtm_dst_len; 1481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtm_src_len; 1491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtm_tos; 1501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtm_table; 1521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtm_protocol; 1531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtm_scope; 1541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtm_type; 1551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned rtm_flags; 1571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 1581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum 1601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 1611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_UNSPEC, 1621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_UNICAST, 1631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_LOCAL, 1641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_BROADCAST, 1651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_ANYCAST, 1661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_MULTICAST, 1671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_BLACKHOLE, 1681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_UNREACHABLE, 1691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_PROHIBIT, 1701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_THROW, 1711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_NAT, 1721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTN_XRESOLVE, 1731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __RTN_MAX 1741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 1751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTN_MAX (__RTN_MAX - 1) 1771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_UNSPEC 0 1791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_REDIRECT 1 1801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_KERNEL 2 1811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_BOOT 3 1821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_STATIC 4 1831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_GATED 8 1851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_RA 9 1861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_MRT 10 1871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_ZEBRA 11 1881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_BIRD 12 1891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_DNROUTED 13 1901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_XORP 14 1911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTPROT_NTK 15 1929163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTPROT_DHCP 16 1931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum rt_scope_t 1951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 1961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RT_SCOPE_UNIVERSE=0, 1971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 1981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RT_SCOPE_SITE=200, 1991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RT_SCOPE_LINK=253, 2001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RT_SCOPE_HOST=254, 2011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RT_SCOPE_NOWHERE=255 2021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 2031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_F_NOTIFY 0x100 2051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_F_CLONED 0x200 2061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_F_EQUALIZE 0x400 2071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_F_PREFIX 0x800 2081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum rt_class_t 2101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 2111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RT_TABLE_UNSPEC=0, 2121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2139163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RT_TABLE_COMPAT=252, 2141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RT_TABLE_DEFAULT=253, 2151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RT_TABLE_MAIN=254, 2161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RT_TABLE_LOCAL=255, 2179163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RT_TABLE_MAX=0xFFFFFFFF 2181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 2191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum rtattr_type_t 2211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 2221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_UNSPEC, 2231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_DST, 2241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_SRC, 2251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_IIF, 2261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_OIF, 2271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_GATEWAY, 2281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_PRIORITY, 2291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_PREFSRC, 2301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_METRICS, 2311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_MULTIPATH, 2321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_PROTOINFO, 2331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_FLOW, 2341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_CACHEINFO, 2351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_SESSION, 2361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTA_MP_ALGO, 2379163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTA_TABLE, 2381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __RTA_MAX 2391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 2401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTA_MAX (__RTA_MAX - 1) 2421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg)))) 2441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct rtmsg)) 2451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct rtnexthop 2471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 2481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short rtnh_len; 2491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtnh_flags; 2501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtnh_hops; 2511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int rtnh_ifindex; 2521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 2531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_F_DEAD 1 2551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_F_PERVASIVE 2 2561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_F_ONLINK 4 2571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_ALIGNTO 4 2591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_ALIGN(len) ( ((len)+RTNH_ALIGNTO-1) & ~(RTNH_ALIGNTO-1) ) 2601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && ((int)(rtnh)->rtnh_len) <= (len)) 2611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_NEXT(rtnh) ((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len))) 2621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len)) 2631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len)) 2641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0))) 2651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct rta_cacheinfo 2671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 2681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 rta_clntref; 2691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 rta_lastuse; 2701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __s32 rta_expires; 2711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 rta_error; 2721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 rta_used; 2731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNETLINK_HAVE_PEERINFO 1 2751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 rta_id; 2761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 rta_ts; 2771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 rta_tsage; 2781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 2791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 2801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum 2811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 2821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_UNSPEC, 2831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_UNSPEC RTAX_UNSPEC 2841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_LOCK, 2851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_LOCK RTAX_LOCK 2861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_MTU, 2871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_MTU RTAX_MTU 2881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_WINDOW, 2891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_WINDOW RTAX_WINDOW 2901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_RTT, 2911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_RTT RTAX_RTT 2921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_RTTVAR, 2931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_RTTVAR RTAX_RTTVAR 2941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_SSTHRESH, 2951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_SSTHRESH RTAX_SSTHRESH 2961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_CWND, 2971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_CWND RTAX_CWND 2981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_ADVMSS, 2991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_ADVMSS RTAX_ADVMSS 3001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_REORDERING, 3011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_REORDERING RTAX_REORDERING 3021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_HOPLIMIT, 3031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_HOPLIMIT RTAX_HOPLIMIT 3041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_INITCWND, 3051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_INITCWND RTAX_INITCWND 3061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTAX_FEATURES, 3071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_FEATURES RTAX_FEATURES 3089163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTAX_RTO_MIN, 3099163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTAX_RTO_MIN RTAX_RTO_MIN 3101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __RTAX_MAX 3111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 3121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_MAX (__RTAX_MAX - 1) 3141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_FEATURE_ECN 0x00000001 3161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_FEATURE_SACK 0x00000002 3171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_FEATURE_TIMESTAMP 0x00000004 3181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTAX_FEATURE_ALLFRAG 0x00000008 3191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct rta_session 3211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 3221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u8 proto; 3231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u8 pad1; 3241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u16 pad2; 3251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project union { 3271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct { 3281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u16 sport; 3291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u16 dport; 3301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project } ports; 3311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct { 3331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u8 type; 3341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u8 code; 3351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u16 ident; 3361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project } icmpt; 3371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 spi; 3391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project } u; 3401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 3411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct rtgenmsg 3431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 3441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char rtgen_family; 3451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 3461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct ifinfomsg 3481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 3491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char ifi_family; 3501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char __ifi_pad; 3511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short ifi_type; 3521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int ifi_index; 3531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned ifi_flags; 3541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned ifi_change; 3551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 3561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct prefixmsg 3581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 3591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char prefix_family; 3601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char prefix_pad1; 3611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short prefix_pad2; 3621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int prefix_ifindex; 3631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char prefix_type; 3641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char prefix_len; 3651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char prefix_flags; 3661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char prefix_pad3; 3671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 3681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum 3701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 3711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project PREFIX_UNSPEC, 3721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project PREFIX_ADDRESS, 3731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project PREFIX_CACHEINFO, 3741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __PREFIX_MAX 3751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 3761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define PREFIX_MAX (__PREFIX_MAX - 1) 3781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct prefix_cacheinfo 3801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 3811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 preferred_time; 3821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 valid_time; 3831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 3841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct tcmsg 3861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 3871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char tcm_family; 3881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char tcm__pad1; 3891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short tcm__pad2; 3901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int tcm_ifindex; 3911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 tcm_handle; 3921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 tcm_parent; 3931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u32 tcm_info; 3941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 3951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 3961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum 3971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 3981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project TCA_UNSPEC, 3991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project TCA_KIND, 4001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project TCA_OPTIONS, 4011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project TCA_STATS, 4021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project TCA_XSTATS, 4031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project TCA_RATE, 4041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project TCA_FCNT, 4051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project TCA_STATS2, 4069163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat TCA_STAB, 4071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __TCA_MAX 4081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 4091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define TCA_MAX (__TCA_MAX - 1) 4111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg)))) 4131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg)) 4141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4159163872132a3e92f986b1d684badb1dd4482ad8eSan Mehatstruct nduseroptmsg 4169163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat{ 4179163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat unsigned char nduseropt_family; 4189163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat unsigned char nduseropt_pad1; 4199163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat unsigned short nduseropt_opts_len; 4209163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat int nduseropt_ifindex; 4219163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat __u8 nduseropt_icmp_type; 4229163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat __u8 nduseropt_icmp_code; 4239163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat unsigned short nduseropt_pad2; 4249163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat unsigned int nduseropt_pad3; 4259163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat 4269163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat}; 4279163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat 4289163872132a3e92f986b1d684badb1dd4482ad8eSan Mehatenum 4299163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat{ 4309163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat NDUSEROPT_UNSPEC, 4319163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat NDUSEROPT_SRCADDR, 4329163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat __NDUSEROPT_MAX 4339163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat}; 4349163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat 4359163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1) 4369163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat 4371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_LINK 1 4381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_NOTIFY 2 4391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_NEIGH 4 4401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_TC 8 4411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_IPV4_IFADDR 0x10 4431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_IPV4_MROUTE 0x20 4441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_IPV4_ROUTE 0x40 4451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_IPV4_RULE 0x80 4461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_IPV6_IFADDR 0x100 4481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_IPV6_MROUTE 0x200 4491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_IPV6_ROUTE 0x400 4501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_IPV6_IFINFO 0x800 4511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_DECnet_IFADDR 0x1000 4531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_DECnet_ROUTE 0x4000 4541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTMGRP_IPV6_PREFIX 0x20000 4561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 4571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum rtnetlink_groups { 4581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_NONE, 4591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_NONE RTNLGRP_NONE 4601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_LINK, 4611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_LINK RTNLGRP_LINK 4621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_NOTIFY, 4631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY 4641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_NEIGH, 4651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_NEIGH RTNLGRP_NEIGH 4661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_TC, 4671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_TC RTNLGRP_TC 4681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_IPV4_IFADDR, 4691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR 4701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_IPV4_MROUTE, 4711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE 4721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_IPV4_ROUTE, 4731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE 4741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_IPV4_RULE, 4751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE 4761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_IPV6_IFADDR, 4771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR 4781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_IPV6_MROUTE, 4791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE 4801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_IPV6_ROUTE, 4811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE 4821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_IPV6_IFINFO, 4831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO 4841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_DECnet_IFADDR, 4851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR 4861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_NOP2, 4871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_DECnet_ROUTE, 4881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE 4899163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTNLGRP_DECnet_RULE, 4909163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE 4911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_NOP4, 4921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project RTNLGRP_IPV6_PREFIX, 4931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX 4949163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTNLGRP_IPV6_RULE, 4959163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE 4969163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTNLGRP_ND_USEROPT, 4979163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT 4989163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTNLGRP_PHONET_IFADDR, 4999163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR 5009163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat RTNLGRP_PHONET_ROUTE, 5019163872132a3e92f986b1d684badb1dd4482ad8eSan Mehat#define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE 5021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __RTNLGRP_MAX 5031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 5041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RTNLGRP_MAX (__RTNLGRP_MAX - 1) 5051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 5061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct tcamsg 5071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{ 5081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char tca_family; 5091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char tca__pad1; 5101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short tca__pad2; 5111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project}; 5121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg)))) 5131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg)) 5141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define TCA_ACT_TAB 1 5151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define TCAA_MAX 1 5161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project 5171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif 518