122851890Sopenharmony_ci/**************************************************************************** 222851890Sopenharmony_ci **************************************************************************** 322851890Sopenharmony_ci *** 422851890Sopenharmony_ci *** This header was automatically generated from a Linux kernel header 522851890Sopenharmony_ci *** of the same name, to make information necessary for userspace to 622851890Sopenharmony_ci *** call into the kernel available to libc. It contains only constants, 722851890Sopenharmony_ci *** structures, and macros generated from the original header, and thus, 822851890Sopenharmony_ci *** contains no copyrightable information. 922851890Sopenharmony_ci *** 1022851890Sopenharmony_ci *** To edit the content of this header, modify the corresponding 1122851890Sopenharmony_ci *** source file (e.g. under external/kernel-headers/original/) then 1222851890Sopenharmony_ci *** run bionic/libc/kernel/tools/update_all.py 1322851890Sopenharmony_ci *** 1422851890Sopenharmony_ci *** Any manual change here will be lost the next time this script will 1522851890Sopenharmony_ci *** be run. You've been warned! 1622851890Sopenharmony_ci *** 1722851890Sopenharmony_ci **************************************************************************** 1822851890Sopenharmony_ci ****************************************************************************/ 1922851890Sopenharmony_ci#ifndef _UAPI__LINUX_RTNETLINK_H 2022851890Sopenharmony_ci#define _UAPI__LINUX_RTNETLINK_H 2122851890Sopenharmony_ci#include <linux/types.h> 2222851890Sopenharmony_ci#include <linux/netlink.h> 2322851890Sopenharmony_ci#include <linux/if_link.h> 2422851890Sopenharmony_ci#include <linux/if_addr.h> 2522851890Sopenharmony_ci#include <linux/neighbour.h> 2622851890Sopenharmony_ci#define RTNL_FAMILY_IPMR 128 2722851890Sopenharmony_ci#define RTNL_FAMILY_IP6MR 129 2822851890Sopenharmony_ci#define RTNL_FAMILY_MAX 129 2922851890Sopenharmony_cienum { 3022851890Sopenharmony_ci RTM_BASE = 16, 3122851890Sopenharmony_ci#define RTM_BASE RTM_BASE 3222851890Sopenharmony_ci RTM_NEWLINK = 16, 3322851890Sopenharmony_ci#define RTM_NEWLINK RTM_NEWLINK 3422851890Sopenharmony_ci RTM_DELLINK, 3522851890Sopenharmony_ci#define RTM_DELLINK RTM_DELLINK 3622851890Sopenharmony_ci RTM_GETLINK, 3722851890Sopenharmony_ci#define RTM_GETLINK RTM_GETLINK 3822851890Sopenharmony_ci RTM_SETLINK, 3922851890Sopenharmony_ci#define RTM_SETLINK RTM_SETLINK 4022851890Sopenharmony_ci RTM_NEWADDR = 20, 4122851890Sopenharmony_ci#define RTM_NEWADDR RTM_NEWADDR 4222851890Sopenharmony_ci RTM_DELADDR, 4322851890Sopenharmony_ci#define RTM_DELADDR RTM_DELADDR 4422851890Sopenharmony_ci RTM_GETADDR, 4522851890Sopenharmony_ci#define RTM_GETADDR RTM_GETADDR 4622851890Sopenharmony_ci RTM_NEWROUTE = 24, 4722851890Sopenharmony_ci#define RTM_NEWROUTE RTM_NEWROUTE 4822851890Sopenharmony_ci RTM_DELROUTE, 4922851890Sopenharmony_ci#define RTM_DELROUTE RTM_DELROUTE 5022851890Sopenharmony_ci RTM_GETROUTE, 5122851890Sopenharmony_ci#define RTM_GETROUTE RTM_GETROUTE 5222851890Sopenharmony_ci RTM_NEWNEIGH = 28, 5322851890Sopenharmony_ci#define RTM_NEWNEIGH RTM_NEWNEIGH 5422851890Sopenharmony_ci RTM_DELNEIGH, 5522851890Sopenharmony_ci#define RTM_DELNEIGH RTM_DELNEIGH 5622851890Sopenharmony_ci RTM_GETNEIGH, 5722851890Sopenharmony_ci#define RTM_GETNEIGH RTM_GETNEIGH 5822851890Sopenharmony_ci RTM_NEWRULE = 32, 5922851890Sopenharmony_ci#define RTM_NEWRULE RTM_NEWRULE 6022851890Sopenharmony_ci RTM_DELRULE, 6122851890Sopenharmony_ci#define RTM_DELRULE RTM_DELRULE 6222851890Sopenharmony_ci RTM_GETRULE, 6322851890Sopenharmony_ci#define RTM_GETRULE RTM_GETRULE 6422851890Sopenharmony_ci RTM_NEWQDISC = 36, 6522851890Sopenharmony_ci#define RTM_NEWQDISC RTM_NEWQDISC 6622851890Sopenharmony_ci RTM_DELQDISC, 6722851890Sopenharmony_ci#define RTM_DELQDISC RTM_DELQDISC 6822851890Sopenharmony_ci RTM_GETQDISC, 6922851890Sopenharmony_ci#define RTM_GETQDISC RTM_GETQDISC 7022851890Sopenharmony_ci RTM_NEWTCLASS = 40, 7122851890Sopenharmony_ci#define RTM_NEWTCLASS RTM_NEWTCLASS 7222851890Sopenharmony_ci RTM_DELTCLASS, 7322851890Sopenharmony_ci#define RTM_DELTCLASS RTM_DELTCLASS 7422851890Sopenharmony_ci RTM_GETTCLASS, 7522851890Sopenharmony_ci#define RTM_GETTCLASS RTM_GETTCLASS 7622851890Sopenharmony_ci RTM_NEWTFILTER = 44, 7722851890Sopenharmony_ci#define RTM_NEWTFILTER RTM_NEWTFILTER 7822851890Sopenharmony_ci RTM_DELTFILTER, 7922851890Sopenharmony_ci#define RTM_DELTFILTER RTM_DELTFILTER 8022851890Sopenharmony_ci RTM_GETTFILTER, 8122851890Sopenharmony_ci#define RTM_GETTFILTER RTM_GETTFILTER 8222851890Sopenharmony_ci RTM_NEWACTION = 48, 8322851890Sopenharmony_ci#define RTM_NEWACTION RTM_NEWACTION 8422851890Sopenharmony_ci RTM_DELACTION, 8522851890Sopenharmony_ci#define RTM_DELACTION RTM_DELACTION 8622851890Sopenharmony_ci RTM_GETACTION, 8722851890Sopenharmony_ci#define RTM_GETACTION RTM_GETACTION 8822851890Sopenharmony_ci RTM_NEWPREFIX = 52, 8922851890Sopenharmony_ci#define RTM_NEWPREFIX RTM_NEWPREFIX 9022851890Sopenharmony_ci RTM_GETMULTICAST = 58, 9122851890Sopenharmony_ci#define RTM_GETMULTICAST RTM_GETMULTICAST 9222851890Sopenharmony_ci RTM_GETANYCAST = 62, 9322851890Sopenharmony_ci#define RTM_GETANYCAST RTM_GETANYCAST 9422851890Sopenharmony_ci RTM_NEWNEIGHTBL = 64, 9522851890Sopenharmony_ci#define RTM_NEWNEIGHTBL RTM_NEWNEIGHTBL 9622851890Sopenharmony_ci RTM_GETNEIGHTBL = 66, 9722851890Sopenharmony_ci#define RTM_GETNEIGHTBL RTM_GETNEIGHTBL 9822851890Sopenharmony_ci RTM_SETNEIGHTBL, 9922851890Sopenharmony_ci#define RTM_SETNEIGHTBL RTM_SETNEIGHTBL 10022851890Sopenharmony_ci RTM_NEWNDUSEROPT = 68, 10122851890Sopenharmony_ci#define RTM_NEWNDUSEROPT RTM_NEWNDUSEROPT 10222851890Sopenharmony_ci RTM_NEWADDRLABEL = 72, 10322851890Sopenharmony_ci#define RTM_NEWADDRLABEL RTM_NEWADDRLABEL 10422851890Sopenharmony_ci RTM_DELADDRLABEL, 10522851890Sopenharmony_ci#define RTM_DELADDRLABEL RTM_DELADDRLABEL 10622851890Sopenharmony_ci RTM_GETADDRLABEL, 10722851890Sopenharmony_ci#define RTM_GETADDRLABEL RTM_GETADDRLABEL 10822851890Sopenharmony_ci RTM_GETDCB = 78, 10922851890Sopenharmony_ci#define RTM_GETDCB RTM_GETDCB 11022851890Sopenharmony_ci RTM_SETDCB, 11122851890Sopenharmony_ci#define RTM_SETDCB RTM_SETDCB 11222851890Sopenharmony_ci RTM_NEWNETCONF = 80, 11322851890Sopenharmony_ci#define RTM_NEWNETCONF RTM_NEWNETCONF 11422851890Sopenharmony_ci RTM_DELNETCONF, 11522851890Sopenharmony_ci#define RTM_DELNETCONF RTM_DELNETCONF 11622851890Sopenharmony_ci RTM_GETNETCONF = 82, 11722851890Sopenharmony_ci#define RTM_GETNETCONF RTM_GETNETCONF 11822851890Sopenharmony_ci RTM_NEWMDB = 84, 11922851890Sopenharmony_ci#define RTM_NEWMDB RTM_NEWMDB 12022851890Sopenharmony_ci RTM_DELMDB = 85, 12122851890Sopenharmony_ci#define RTM_DELMDB RTM_DELMDB 12222851890Sopenharmony_ci RTM_GETMDB = 86, 12322851890Sopenharmony_ci#define RTM_GETMDB RTM_GETMDB 12422851890Sopenharmony_ci RTM_NEWNSID = 88, 12522851890Sopenharmony_ci#define RTM_NEWNSID RTM_NEWNSID 12622851890Sopenharmony_ci RTM_DELNSID = 89, 12722851890Sopenharmony_ci#define RTM_DELNSID RTM_DELNSID 12822851890Sopenharmony_ci RTM_GETNSID = 90, 12922851890Sopenharmony_ci#define RTM_GETNSID RTM_GETNSID 13022851890Sopenharmony_ci RTM_NEWSTATS = 92, 13122851890Sopenharmony_ci#define RTM_NEWSTATS RTM_NEWSTATS 13222851890Sopenharmony_ci RTM_GETSTATS = 94, 13322851890Sopenharmony_ci#define RTM_GETSTATS RTM_GETSTATS 13422851890Sopenharmony_ci RTM_NEWCACHEREPORT = 96, 13522851890Sopenharmony_ci#define RTM_NEWCACHEREPORT RTM_NEWCACHEREPORT 13622851890Sopenharmony_ci RTM_NEWCHAIN = 100, 13722851890Sopenharmony_ci#define RTM_NEWCHAIN RTM_NEWCHAIN 13822851890Sopenharmony_ci RTM_DELCHAIN, 13922851890Sopenharmony_ci#define RTM_DELCHAIN RTM_DELCHAIN 14022851890Sopenharmony_ci RTM_GETCHAIN, 14122851890Sopenharmony_ci#define RTM_GETCHAIN RTM_GETCHAIN 14222851890Sopenharmony_ci RTM_NEWNEXTHOP = 104, 14322851890Sopenharmony_ci#define RTM_NEWNEXTHOP RTM_NEWNEXTHOP 14422851890Sopenharmony_ci RTM_DELNEXTHOP, 14522851890Sopenharmony_ci#define RTM_DELNEXTHOP RTM_DELNEXTHOP 14622851890Sopenharmony_ci RTM_GETNEXTHOP, 14722851890Sopenharmony_ci#define RTM_GETNEXTHOP RTM_GETNEXTHOP 14822851890Sopenharmony_ci RTM_NEWLINKPROP = 108, 14922851890Sopenharmony_ci#define RTM_NEWLINKPROP RTM_NEWLINKPROP 15022851890Sopenharmony_ci RTM_DELLINKPROP, 15122851890Sopenharmony_ci#define RTM_DELLINKPROP RTM_DELLINKPROP 15222851890Sopenharmony_ci RTM_GETLINKPROP, 15322851890Sopenharmony_ci#define RTM_GETLINKPROP RTM_GETLINKPROP 15422851890Sopenharmony_ci RTM_NEWVLAN = 112, 15522851890Sopenharmony_ci#define RTM_NEWNVLAN RTM_NEWVLAN 15622851890Sopenharmony_ci RTM_DELVLAN, 15722851890Sopenharmony_ci#define RTM_DELVLAN RTM_DELVLAN 15822851890Sopenharmony_ci RTM_GETVLAN, 15922851890Sopenharmony_ci#define RTM_GETVLAN RTM_GETVLAN 16022851890Sopenharmony_ci __RTM_MAX, 16122851890Sopenharmony_ci#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) 16222851890Sopenharmony_ci}; 16322851890Sopenharmony_ci#define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE) 16422851890Sopenharmony_ci#define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2) 16522851890Sopenharmony_ci#define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2) 16622851890Sopenharmony_cistruct rtattr { 16722851890Sopenharmony_ci unsigned short rta_len; 16822851890Sopenharmony_ci unsigned short rta_type; 16922851890Sopenharmony_ci}; 17022851890Sopenharmony_ci#define RTA_ALIGNTO 4U 17122851890Sopenharmony_ci#define RTA_ALIGN(len) (((len) + RTA_ALIGNTO - 1) & ~(RTA_ALIGNTO - 1)) 17222851890Sopenharmony_ci#define RTA_OK(rta,len) ((len) >= (int) sizeof(struct rtattr) && (rta)->rta_len >= sizeof(struct rtattr) && (rta)->rta_len <= (len)) 17322851890Sopenharmony_ci#define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len), (struct rtattr *) (((char *) (rta)) + RTA_ALIGN((rta)->rta_len))) 17422851890Sopenharmony_ci#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len)) 17522851890Sopenharmony_ci#define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len)) 17622851890Sopenharmony_ci#define RTA_DATA(rta) ((void *) (((char *) (rta)) + RTA_LENGTH(0))) 17722851890Sopenharmony_ci#define RTA_PAYLOAD(rta) ((int) ((rta)->rta_len) - RTA_LENGTH(0)) 17822851890Sopenharmony_cistruct rtmsg { 17922851890Sopenharmony_ci unsigned char rtm_family; 18022851890Sopenharmony_ci unsigned char rtm_dst_len; 18122851890Sopenharmony_ci unsigned char rtm_src_len; 18222851890Sopenharmony_ci unsigned char rtm_tos; 18322851890Sopenharmony_ci unsigned char rtm_table; 18422851890Sopenharmony_ci unsigned char rtm_protocol; 18522851890Sopenharmony_ci unsigned char rtm_scope; 18622851890Sopenharmony_ci unsigned char rtm_type; 18722851890Sopenharmony_ci unsigned rtm_flags; 18822851890Sopenharmony_ci}; 18922851890Sopenharmony_cienum { 19022851890Sopenharmony_ci RTN_UNSPEC, 19122851890Sopenharmony_ci RTN_UNICAST, 19222851890Sopenharmony_ci RTN_LOCAL, 19322851890Sopenharmony_ci RTN_BROADCAST, 19422851890Sopenharmony_ci RTN_ANYCAST, 19522851890Sopenharmony_ci RTN_MULTICAST, 19622851890Sopenharmony_ci RTN_BLACKHOLE, 19722851890Sopenharmony_ci RTN_UNREACHABLE, 19822851890Sopenharmony_ci RTN_PROHIBIT, 19922851890Sopenharmony_ci RTN_THROW, 20022851890Sopenharmony_ci RTN_NAT, 20122851890Sopenharmony_ci RTN_XRESOLVE, 20222851890Sopenharmony_ci __RTN_MAX 20322851890Sopenharmony_ci}; 20422851890Sopenharmony_ci#define RTN_MAX (__RTN_MAX - 1) 20522851890Sopenharmony_ci#define RTPROT_UNSPEC 0 20622851890Sopenharmony_ci#define RTPROT_REDIRECT 1 20722851890Sopenharmony_ci#define RTPROT_KERNEL 2 20822851890Sopenharmony_ci#define RTPROT_BOOT 3 20922851890Sopenharmony_ci#define RTPROT_STATIC 4 21022851890Sopenharmony_ci#define RTPROT_GATED 8 21122851890Sopenharmony_ci#define RTPROT_RA 9 21222851890Sopenharmony_ci#define RTPROT_MRT 10 21322851890Sopenharmony_ci#define RTPROT_ZEBRA 11 21422851890Sopenharmony_ci#define RTPROT_BIRD 12 21522851890Sopenharmony_ci#define RTPROT_DNROUTED 13 21622851890Sopenharmony_ci#define RTPROT_XORP 14 21722851890Sopenharmony_ci#define RTPROT_NTK 15 21822851890Sopenharmony_ci#define RTPROT_DHCP 16 21922851890Sopenharmony_ci#define RTPROT_MROUTED 17 22022851890Sopenharmony_ci#define RTPROT_KEEPALIVED 18 22122851890Sopenharmony_ci#define RTPROT_BABEL 42 22222851890Sopenharmony_ci#define RTPROT_BGP 186 22322851890Sopenharmony_ci#define RTPROT_ISIS 187 22422851890Sopenharmony_ci#define RTPROT_OSPF 188 22522851890Sopenharmony_ci#define RTPROT_RIP 189 22622851890Sopenharmony_ci#define RTPROT_EIGRP 192 22722851890Sopenharmony_cienum rt_scope_t { 22822851890Sopenharmony_ci RT_SCOPE_UNIVERSE = 0, 22922851890Sopenharmony_ci RT_SCOPE_SITE = 200, 23022851890Sopenharmony_ci RT_SCOPE_LINK = 253, 23122851890Sopenharmony_ci RT_SCOPE_HOST = 254, 23222851890Sopenharmony_ci RT_SCOPE_NOWHERE = 255 23322851890Sopenharmony_ci}; 23422851890Sopenharmony_ci#define RTM_F_NOTIFY 0x100 23522851890Sopenharmony_ci#define RTM_F_CLONED 0x200 23622851890Sopenharmony_ci#define RTM_F_EQUALIZE 0x400 23722851890Sopenharmony_ci#define RTM_F_PREFIX 0x800 23822851890Sopenharmony_ci#define RTM_F_LOOKUP_TABLE 0x1000 23922851890Sopenharmony_ci#define RTM_F_FIB_MATCH 0x2000 24022851890Sopenharmony_ci#define RTM_F_OFFLOAD 0x4000 24122851890Sopenharmony_ci#define RTM_F_TRAP 0x8000 24222851890Sopenharmony_cienum rt_class_t { 24322851890Sopenharmony_ci RT_TABLE_UNSPEC = 0, 24422851890Sopenharmony_ci RT_TABLE_COMPAT = 252, 24522851890Sopenharmony_ci RT_TABLE_DEFAULT = 253, 24622851890Sopenharmony_ci RT_TABLE_MAIN = 254, 24722851890Sopenharmony_ci RT_TABLE_LOCAL = 255, 24822851890Sopenharmony_ci RT_TABLE_MAX = 0xFFFFFFFF 24922851890Sopenharmony_ci}; 25022851890Sopenharmony_cienum rtattr_type_t { 25122851890Sopenharmony_ci RTA_UNSPEC, 25222851890Sopenharmony_ci RTA_DST, 25322851890Sopenharmony_ci RTA_SRC, 25422851890Sopenharmony_ci RTA_IIF, 25522851890Sopenharmony_ci RTA_OIF, 25622851890Sopenharmony_ci RTA_GATEWAY, 25722851890Sopenharmony_ci RTA_PRIORITY, 25822851890Sopenharmony_ci RTA_PREFSRC, 25922851890Sopenharmony_ci RTA_METRICS, 26022851890Sopenharmony_ci RTA_MULTIPATH, 26122851890Sopenharmony_ci RTA_PROTOINFO, 26222851890Sopenharmony_ci RTA_FLOW, 26322851890Sopenharmony_ci RTA_CACHEINFO, 26422851890Sopenharmony_ci RTA_SESSION, 26522851890Sopenharmony_ci RTA_MP_ALGO, 26622851890Sopenharmony_ci RTA_TABLE, 26722851890Sopenharmony_ci RTA_MARK, 26822851890Sopenharmony_ci RTA_MFC_STATS, 26922851890Sopenharmony_ci RTA_VIA, 27022851890Sopenharmony_ci RTA_NEWDST, 27122851890Sopenharmony_ci RTA_PREF, 27222851890Sopenharmony_ci RTA_ENCAP_TYPE, 27322851890Sopenharmony_ci RTA_ENCAP, 27422851890Sopenharmony_ci RTA_EXPIRES, 27522851890Sopenharmony_ci RTA_PAD, 27622851890Sopenharmony_ci RTA_UID, 27722851890Sopenharmony_ci RTA_TTL_PROPAGATE, 27822851890Sopenharmony_ci RTA_IP_PROTO, 27922851890Sopenharmony_ci RTA_SPORT, 28022851890Sopenharmony_ci RTA_DPORT, 28122851890Sopenharmony_ci RTA_NH_ID, 28222851890Sopenharmony_ci __RTA_MAX 28322851890Sopenharmony_ci}; 28422851890Sopenharmony_ci#define RTA_MAX (__RTA_MAX - 1) 28522851890Sopenharmony_ci#define RTM_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct rtmsg)))) 28622851890Sopenharmony_ci#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct rtmsg)) 28722851890Sopenharmony_cistruct rtnexthop { 28822851890Sopenharmony_ci unsigned short rtnh_len; 28922851890Sopenharmony_ci unsigned char rtnh_flags; 29022851890Sopenharmony_ci unsigned char rtnh_hops; 29122851890Sopenharmony_ci int rtnh_ifindex; 29222851890Sopenharmony_ci}; 29322851890Sopenharmony_ci#define RTNH_F_DEAD 1 29422851890Sopenharmony_ci#define RTNH_F_PERVASIVE 2 29522851890Sopenharmony_ci#define RTNH_F_ONLINK 4 29622851890Sopenharmony_ci#define RTNH_F_OFFLOAD 8 29722851890Sopenharmony_ci#define RTNH_F_LINKDOWN 16 29822851890Sopenharmony_ci#define RTNH_F_UNRESOLVED 32 29922851890Sopenharmony_ci#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD) 30022851890Sopenharmony_ci#define RTNH_ALIGNTO 4 30122851890Sopenharmony_ci#define RTNH_ALIGN(len) (((len) + RTNH_ALIGNTO - 1) & ~(RTNH_ALIGNTO - 1)) 30222851890Sopenharmony_ci#define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && ((int) (rtnh)->rtnh_len) <= (len)) 30322851890Sopenharmony_ci#define RTNH_NEXT(rtnh) ((struct rtnexthop *) (((char *) (rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len))) 30422851890Sopenharmony_ci#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len)) 30522851890Sopenharmony_ci#define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len)) 30622851890Sopenharmony_ci#define RTNH_DATA(rtnh) ((struct rtattr *) (((char *) (rtnh)) + RTNH_LENGTH(0))) 30722851890Sopenharmony_cistruct rtvia { 30822851890Sopenharmony_ci __kernel_sa_family_t rtvia_family; 30922851890Sopenharmony_ci __u8 rtvia_addr[0]; 31022851890Sopenharmony_ci}; 31122851890Sopenharmony_cistruct rta_cacheinfo { 31222851890Sopenharmony_ci __u32 rta_clntref; 31322851890Sopenharmony_ci __u32 rta_lastuse; 31422851890Sopenharmony_ci __s32 rta_expires; 31522851890Sopenharmony_ci __u32 rta_error; 31622851890Sopenharmony_ci __u32 rta_used; 31722851890Sopenharmony_ci#define RTNETLINK_HAVE_PEERINFO 1 31822851890Sopenharmony_ci __u32 rta_id; 31922851890Sopenharmony_ci __u32 rta_ts; 32022851890Sopenharmony_ci __u32 rta_tsage; 32122851890Sopenharmony_ci}; 32222851890Sopenharmony_cienum { 32322851890Sopenharmony_ci RTAX_UNSPEC, 32422851890Sopenharmony_ci#define RTAX_UNSPEC RTAX_UNSPEC 32522851890Sopenharmony_ci RTAX_LOCK, 32622851890Sopenharmony_ci#define RTAX_LOCK RTAX_LOCK 32722851890Sopenharmony_ci RTAX_MTU, 32822851890Sopenharmony_ci#define RTAX_MTU RTAX_MTU 32922851890Sopenharmony_ci RTAX_WINDOW, 33022851890Sopenharmony_ci#define RTAX_WINDOW RTAX_WINDOW 33122851890Sopenharmony_ci RTAX_RTT, 33222851890Sopenharmony_ci#define RTAX_RTT RTAX_RTT 33322851890Sopenharmony_ci RTAX_RTTVAR, 33422851890Sopenharmony_ci#define RTAX_RTTVAR RTAX_RTTVAR 33522851890Sopenharmony_ci RTAX_SSTHRESH, 33622851890Sopenharmony_ci#define RTAX_SSTHRESH RTAX_SSTHRESH 33722851890Sopenharmony_ci RTAX_CWND, 33822851890Sopenharmony_ci#define RTAX_CWND RTAX_CWND 33922851890Sopenharmony_ci RTAX_ADVMSS, 34022851890Sopenharmony_ci#define RTAX_ADVMSS RTAX_ADVMSS 34122851890Sopenharmony_ci RTAX_REORDERING, 34222851890Sopenharmony_ci#define RTAX_REORDERING RTAX_REORDERING 34322851890Sopenharmony_ci RTAX_HOPLIMIT, 34422851890Sopenharmony_ci#define RTAX_HOPLIMIT RTAX_HOPLIMIT 34522851890Sopenharmony_ci RTAX_INITCWND, 34622851890Sopenharmony_ci#define RTAX_INITCWND RTAX_INITCWND 34722851890Sopenharmony_ci RTAX_FEATURES, 34822851890Sopenharmony_ci#define RTAX_FEATURES RTAX_FEATURES 34922851890Sopenharmony_ci RTAX_RTO_MIN, 35022851890Sopenharmony_ci#define RTAX_RTO_MIN RTAX_RTO_MIN 35122851890Sopenharmony_ci RTAX_INITRWND, 35222851890Sopenharmony_ci#define RTAX_INITRWND RTAX_INITRWND 35322851890Sopenharmony_ci RTAX_QUICKACK, 35422851890Sopenharmony_ci#define RTAX_QUICKACK RTAX_QUICKACK 35522851890Sopenharmony_ci RTAX_CC_ALGO, 35622851890Sopenharmony_ci#define RTAX_CC_ALGO RTAX_CC_ALGO 35722851890Sopenharmony_ci RTAX_FASTOPEN_NO_COOKIE, 35822851890Sopenharmony_ci#define RTAX_FASTOPEN_NO_COOKIE RTAX_FASTOPEN_NO_COOKIE 35922851890Sopenharmony_ci __RTAX_MAX 36022851890Sopenharmony_ci}; 36122851890Sopenharmony_ci#define RTAX_MAX (__RTAX_MAX - 1) 36222851890Sopenharmony_ci#define RTAX_FEATURE_ECN (1 << 0) 36322851890Sopenharmony_ci#define RTAX_FEATURE_SACK (1 << 1) 36422851890Sopenharmony_ci#define RTAX_FEATURE_TIMESTAMP (1 << 2) 36522851890Sopenharmony_ci#define RTAX_FEATURE_ALLFRAG (1 << 3) 36622851890Sopenharmony_ci#define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG) 36722851890Sopenharmony_cistruct rta_session { 36822851890Sopenharmony_ci __u8 proto; 36922851890Sopenharmony_ci __u8 pad1; 37022851890Sopenharmony_ci __u16 pad2; 37122851890Sopenharmony_ci union { 37222851890Sopenharmony_ci struct { 37322851890Sopenharmony_ci __u16 sport; 37422851890Sopenharmony_ci __u16 dport; 37522851890Sopenharmony_ci } ports; 37622851890Sopenharmony_ci struct { 37722851890Sopenharmony_ci __u8 type; 37822851890Sopenharmony_ci __u8 code; 37922851890Sopenharmony_ci __u16 ident; 38022851890Sopenharmony_ci } icmpt; 38122851890Sopenharmony_ci __u32 spi; 38222851890Sopenharmony_ci } u; 38322851890Sopenharmony_ci}; 38422851890Sopenharmony_cistruct rta_mfc_stats { 38522851890Sopenharmony_ci __u64 mfcs_packets; 38622851890Sopenharmony_ci __u64 mfcs_bytes; 38722851890Sopenharmony_ci __u64 mfcs_wrong_if; 38822851890Sopenharmony_ci}; 38922851890Sopenharmony_cistruct rtgenmsg { 39022851890Sopenharmony_ci unsigned char rtgen_family; 39122851890Sopenharmony_ci}; 39222851890Sopenharmony_cistruct ifinfomsg { 39322851890Sopenharmony_ci unsigned char ifi_family; 39422851890Sopenharmony_ci unsigned char __ifi_pad; 39522851890Sopenharmony_ci unsigned short ifi_type; 39622851890Sopenharmony_ci int ifi_index; 39722851890Sopenharmony_ci unsigned ifi_flags; 39822851890Sopenharmony_ci unsigned ifi_change; 39922851890Sopenharmony_ci}; 40022851890Sopenharmony_cistruct prefixmsg { 40122851890Sopenharmony_ci unsigned char prefix_family; 40222851890Sopenharmony_ci unsigned char prefix_pad1; 40322851890Sopenharmony_ci unsigned short prefix_pad2; 40422851890Sopenharmony_ci int prefix_ifindex; 40522851890Sopenharmony_ci unsigned char prefix_type; 40622851890Sopenharmony_ci unsigned char prefix_len; 40722851890Sopenharmony_ci unsigned char prefix_flags; 40822851890Sopenharmony_ci unsigned char prefix_pad3; 40922851890Sopenharmony_ci}; 41022851890Sopenharmony_cienum { 41122851890Sopenharmony_ci PREFIX_UNSPEC, 41222851890Sopenharmony_ci PREFIX_ADDRESS, 41322851890Sopenharmony_ci PREFIX_CACHEINFO, 41422851890Sopenharmony_ci __PREFIX_MAX 41522851890Sopenharmony_ci}; 41622851890Sopenharmony_ci#define PREFIX_MAX (__PREFIX_MAX - 1) 41722851890Sopenharmony_cistruct prefix_cacheinfo { 41822851890Sopenharmony_ci __u32 preferred_time; 41922851890Sopenharmony_ci __u32 valid_time; 42022851890Sopenharmony_ci}; 42122851890Sopenharmony_cistruct tcmsg { 42222851890Sopenharmony_ci unsigned char tcm_family; 42322851890Sopenharmony_ci unsigned char tcm__pad1; 42422851890Sopenharmony_ci unsigned short tcm__pad2; 42522851890Sopenharmony_ci int tcm_ifindex; 42622851890Sopenharmony_ci __u32 tcm_handle; 42722851890Sopenharmony_ci __u32 tcm_parent; 42822851890Sopenharmony_ci#define tcm_block_index tcm_parent 42922851890Sopenharmony_ci __u32 tcm_info; 43022851890Sopenharmony_ci}; 43122851890Sopenharmony_ci#define TCM_IFINDEX_MAGIC_BLOCK (0xFFFFFFFFU) 43222851890Sopenharmony_cienum { 43322851890Sopenharmony_ci TCA_UNSPEC, 43422851890Sopenharmony_ci TCA_KIND, 43522851890Sopenharmony_ci TCA_OPTIONS, 43622851890Sopenharmony_ci TCA_STATS, 43722851890Sopenharmony_ci TCA_XSTATS, 43822851890Sopenharmony_ci TCA_RATE, 43922851890Sopenharmony_ci TCA_FCNT, 44022851890Sopenharmony_ci TCA_STATS2, 44122851890Sopenharmony_ci TCA_STAB, 44222851890Sopenharmony_ci TCA_PAD, 44322851890Sopenharmony_ci TCA_DUMP_INVISIBLE, 44422851890Sopenharmony_ci TCA_CHAIN, 44522851890Sopenharmony_ci TCA_HW_OFFLOAD, 44622851890Sopenharmony_ci TCA_INGRESS_BLOCK, 44722851890Sopenharmony_ci TCA_EGRESS_BLOCK, 44822851890Sopenharmony_ci TCA_DUMP_FLAGS, 44922851890Sopenharmony_ci __TCA_MAX 45022851890Sopenharmony_ci}; 45122851890Sopenharmony_ci#define TCA_MAX (__TCA_MAX - 1) 45222851890Sopenharmony_ci#define TCA_DUMP_FLAGS_TERSE (1 << 0) 45322851890Sopenharmony_ci#define TCA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcmsg)))) 45422851890Sopenharmony_ci#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcmsg)) 45522851890Sopenharmony_cistruct nduseroptmsg { 45622851890Sopenharmony_ci unsigned char nduseropt_family; 45722851890Sopenharmony_ci unsigned char nduseropt_pad1; 45822851890Sopenharmony_ci unsigned short nduseropt_opts_len; 45922851890Sopenharmony_ci int nduseropt_ifindex; 46022851890Sopenharmony_ci __u8 nduseropt_icmp_type; 46122851890Sopenharmony_ci __u8 nduseropt_icmp_code; 46222851890Sopenharmony_ci unsigned short nduseropt_pad2; 46322851890Sopenharmony_ci unsigned int nduseropt_pad3; 46422851890Sopenharmony_ci}; 46522851890Sopenharmony_cienum { 46622851890Sopenharmony_ci NDUSEROPT_UNSPEC, 46722851890Sopenharmony_ci NDUSEROPT_SRCADDR, 46822851890Sopenharmony_ci __NDUSEROPT_MAX 46922851890Sopenharmony_ci}; 47022851890Sopenharmony_ci#define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1) 47122851890Sopenharmony_ci#define RTMGRP_LINK 1 47222851890Sopenharmony_ci#define RTMGRP_NOTIFY 2 47322851890Sopenharmony_ci#define RTMGRP_NEIGH 4 47422851890Sopenharmony_ci#define RTMGRP_TC 8 47522851890Sopenharmony_ci#define RTMGRP_IPV4_IFADDR 0x10 47622851890Sopenharmony_ci#define RTMGRP_IPV4_MROUTE 0x20 47722851890Sopenharmony_ci#define RTMGRP_IPV4_ROUTE 0x40 47822851890Sopenharmony_ci#define RTMGRP_IPV4_RULE 0x80 47922851890Sopenharmony_ci#define RTMGRP_IPV6_IFADDR 0x100 48022851890Sopenharmony_ci#define RTMGRP_IPV6_MROUTE 0x200 48122851890Sopenharmony_ci#define RTMGRP_IPV6_ROUTE 0x400 48222851890Sopenharmony_ci#define RTMGRP_IPV6_IFINFO 0x800 48322851890Sopenharmony_ci#define RTMGRP_DECnet_IFADDR 0x1000 48422851890Sopenharmony_ci#define RTMGRP_DECnet_ROUTE 0x4000 48522851890Sopenharmony_ci#define RTMGRP_IPV6_PREFIX 0x20000 48622851890Sopenharmony_cienum rtnetlink_groups { 48722851890Sopenharmony_ci RTNLGRP_NONE, 48822851890Sopenharmony_ci#define RTNLGRP_NONE RTNLGRP_NONE 48922851890Sopenharmony_ci RTNLGRP_LINK, 49022851890Sopenharmony_ci#define RTNLGRP_LINK RTNLGRP_LINK 49122851890Sopenharmony_ci RTNLGRP_NOTIFY, 49222851890Sopenharmony_ci#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY 49322851890Sopenharmony_ci RTNLGRP_NEIGH, 49422851890Sopenharmony_ci#define RTNLGRP_NEIGH RTNLGRP_NEIGH 49522851890Sopenharmony_ci RTNLGRP_TC, 49622851890Sopenharmony_ci#define RTNLGRP_TC RTNLGRP_TC 49722851890Sopenharmony_ci RTNLGRP_IPV4_IFADDR, 49822851890Sopenharmony_ci#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR 49922851890Sopenharmony_ci RTNLGRP_IPV4_MROUTE, 50022851890Sopenharmony_ci#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE 50122851890Sopenharmony_ci RTNLGRP_IPV4_ROUTE, 50222851890Sopenharmony_ci#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE 50322851890Sopenharmony_ci RTNLGRP_IPV4_RULE, 50422851890Sopenharmony_ci#define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE 50522851890Sopenharmony_ci RTNLGRP_IPV6_IFADDR, 50622851890Sopenharmony_ci#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR 50722851890Sopenharmony_ci RTNLGRP_IPV6_MROUTE, 50822851890Sopenharmony_ci#define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE 50922851890Sopenharmony_ci RTNLGRP_IPV6_ROUTE, 51022851890Sopenharmony_ci#define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE 51122851890Sopenharmony_ci RTNLGRP_IPV6_IFINFO, 51222851890Sopenharmony_ci#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO 51322851890Sopenharmony_ci RTNLGRP_DECnet_IFADDR, 51422851890Sopenharmony_ci#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR 51522851890Sopenharmony_ci RTNLGRP_NOP2, 51622851890Sopenharmony_ci RTNLGRP_DECnet_ROUTE, 51722851890Sopenharmony_ci#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE 51822851890Sopenharmony_ci RTNLGRP_DECnet_RULE, 51922851890Sopenharmony_ci#define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE 52022851890Sopenharmony_ci RTNLGRP_NOP4, 52122851890Sopenharmony_ci RTNLGRP_IPV6_PREFIX, 52222851890Sopenharmony_ci#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX 52322851890Sopenharmony_ci RTNLGRP_IPV6_RULE, 52422851890Sopenharmony_ci#define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE 52522851890Sopenharmony_ci RTNLGRP_ND_USEROPT, 52622851890Sopenharmony_ci#define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT 52722851890Sopenharmony_ci RTNLGRP_PHONET_IFADDR, 52822851890Sopenharmony_ci#define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR 52922851890Sopenharmony_ci RTNLGRP_PHONET_ROUTE, 53022851890Sopenharmony_ci#define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE 53122851890Sopenharmony_ci RTNLGRP_DCB, 53222851890Sopenharmony_ci#define RTNLGRP_DCB RTNLGRP_DCB 53322851890Sopenharmony_ci RTNLGRP_IPV4_NETCONF, 53422851890Sopenharmony_ci#define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF 53522851890Sopenharmony_ci RTNLGRP_IPV6_NETCONF, 53622851890Sopenharmony_ci#define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF 53722851890Sopenharmony_ci RTNLGRP_MDB, 53822851890Sopenharmony_ci#define RTNLGRP_MDB RTNLGRP_MDB 53922851890Sopenharmony_ci RTNLGRP_MPLS_ROUTE, 54022851890Sopenharmony_ci#define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE 54122851890Sopenharmony_ci RTNLGRP_NSID, 54222851890Sopenharmony_ci#define RTNLGRP_NSID RTNLGRP_NSID 54322851890Sopenharmony_ci RTNLGRP_MPLS_NETCONF, 54422851890Sopenharmony_ci#define RTNLGRP_MPLS_NETCONF RTNLGRP_MPLS_NETCONF 54522851890Sopenharmony_ci RTNLGRP_IPV4_MROUTE_R, 54622851890Sopenharmony_ci#define RTNLGRP_IPV4_MROUTE_R RTNLGRP_IPV4_MROUTE_R 54722851890Sopenharmony_ci RTNLGRP_IPV6_MROUTE_R, 54822851890Sopenharmony_ci#define RTNLGRP_IPV6_MROUTE_R RTNLGRP_IPV6_MROUTE_R 54922851890Sopenharmony_ci RTNLGRP_NEXTHOP, 55022851890Sopenharmony_ci#define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP 55122851890Sopenharmony_ci RTNLGRP_BRVLAN, 55222851890Sopenharmony_ci#define RTNLGRP_BRVLAN RTNLGRP_BRVLAN 55322851890Sopenharmony_ci __RTNLGRP_MAX 55422851890Sopenharmony_ci}; 55522851890Sopenharmony_ci#define RTNLGRP_MAX (__RTNLGRP_MAX - 1) 55622851890Sopenharmony_cistruct tcamsg { 55722851890Sopenharmony_ci unsigned char tca_family; 55822851890Sopenharmony_ci unsigned char tca__pad1; 55922851890Sopenharmony_ci unsigned short tca__pad2; 56022851890Sopenharmony_ci}; 56122851890Sopenharmony_cienum { 56222851890Sopenharmony_ci TCA_ROOT_UNSPEC, 56322851890Sopenharmony_ci TCA_ROOT_TAB, 56422851890Sopenharmony_ci#define TCA_ACT_TAB TCA_ROOT_TAB 56522851890Sopenharmony_ci#define TCAA_MAX TCA_ROOT_TAB 56622851890Sopenharmony_ci TCA_ROOT_FLAGS, 56722851890Sopenharmony_ci TCA_ROOT_COUNT, 56822851890Sopenharmony_ci TCA_ROOT_TIME_DELTA, 56922851890Sopenharmony_ci __TCA_ROOT_MAX, 57022851890Sopenharmony_ci#define TCA_ROOT_MAX (__TCA_ROOT_MAX - 1) 57122851890Sopenharmony_ci}; 57222851890Sopenharmony_ci#define TA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcamsg)))) 57322851890Sopenharmony_ci#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcamsg)) 57422851890Sopenharmony_ci#define TCA_FLAG_LARGE_DUMP_ON (1 << 0) 57522851890Sopenharmony_ci#define RTEXT_FILTER_VF (1 << 0) 57622851890Sopenharmony_ci#define RTEXT_FILTER_BRVLAN (1 << 1) 57722851890Sopenharmony_ci#define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2) 57822851890Sopenharmony_ci#define RTEXT_FILTER_SKIP_STATS (1 << 3) 57922851890Sopenharmony_ci#define RTEXT_FILTER_MRP (1 << 4) 58022851890Sopenharmony_ci#endif 581