111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LINUX_RTNETLINK_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __LINUX_RTNETLINK_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/netlink.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum { 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_BASE = 16, 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_BASE RTM_BASE 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWLINK = 16, 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWLINK RTM_NEWLINK 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_DELLINK, 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_DELLINK RTM_DELLINK 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETLINK, 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETLINK RTM_GETLINK 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_SETLINK, 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_SETLINK RTM_SETLINK 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWADDR = 20, 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWADDR RTM_NEWADDR 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_DELADDR, 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_DELADDR RTM_DELADDR 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETADDR, 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETADDR RTM_GETADDR 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWROUTE = 24, 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWROUTE RTM_NEWROUTE 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_DELROUTE, 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_DELROUTE RTM_DELROUTE 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETROUTE, 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETROUTE RTM_GETROUTE 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWNEIGH = 28, 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWNEIGH RTM_NEWNEIGH 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_DELNEIGH, 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_DELNEIGH RTM_DELNEIGH 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETNEIGH, 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETNEIGH RTM_GETNEIGH 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWRULE = 32, 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWRULE RTM_NEWRULE 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_DELRULE, 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_DELRULE RTM_DELRULE 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETRULE, 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETRULE RTM_GETRULE 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWQDISC = 36, 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWQDISC RTM_NEWQDISC 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_DELQDISC, 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_DELQDISC RTM_DELQDISC 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETQDISC, 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETQDISC RTM_GETQDISC 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWTCLASS = 40, 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWTCLASS RTM_NEWTCLASS 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_DELTCLASS, 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_DELTCLASS RTM_DELTCLASS 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETTCLASS, 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETTCLASS RTM_GETTCLASS 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWTFILTER = 44, 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWTFILTER RTM_NEWTFILTER 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_DELTFILTER, 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_DELTFILTER RTM_DELTFILTER 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETTFILTER, 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETTFILTER RTM_GETTFILTER 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWACTION = 48, 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWACTION RTM_NEWACTION 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_DELACTION, 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_DELACTION RTM_DELACTION 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETACTION, 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETACTION RTM_GETACTION 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWPREFIX = 52, 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWPREFIX RTM_NEWPREFIX 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETPREFIX = 54, 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETPREFIX RTM_GETPREFIX 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETMULTICAST = 58, 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETMULTICAST RTM_GETMULTICAST 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETANYCAST = 62, 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETANYCAST RTM_GETANYCAST 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_NEWNEIGHTBL = 64, 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NEWNEIGHTBL RTM_NEWNEIGHTBL 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_GETNEIGHTBL = 66, 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_GETNEIGHTBL RTM_GETNEIGHTBL 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTM_SETNEIGHTBL, 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_SETNEIGHTBL RTM_SETNEIGHTBL 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __RTM_MAX, 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE) 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2) 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2) 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct rtattr 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short rta_len; 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short rta_type; 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTA_ALIGNTO 4 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) & ~(RTA_ALIGNTO-1) ) 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTA_OK(rta,len) ((len) >= (int)sizeof(struct rtattr) && (rta)->rta_len >= sizeof(struct rtattr) && (rta)->rta_len <= (len)) 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len), (struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)->rta_len))) 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len)) 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len)) 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTA_DATA(rta) ((void*)(((char*)(rta)) + RTA_LENGTH(0))) 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTA_PAYLOAD(rta) ((int)((rta)->rta_len) - RTA_LENGTH(0)) 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct rtmsg 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtm_family; 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtm_dst_len; 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtm_src_len; 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtm_tos; 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtm_table; 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtm_protocol; 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtm_scope; 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtm_type; 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned rtm_flags; 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_UNSPEC, 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_UNICAST, 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_LOCAL, 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_BROADCAST, 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_ANYCAST, 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_MULTICAST, 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_BLACKHOLE, 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_UNREACHABLE, 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_PROHIBIT, 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_THROW, 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_NAT, 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTN_XRESOLVE, 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __RTN_MAX 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTN_MAX (__RTN_MAX - 1) 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_UNSPEC 0 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_REDIRECT 1 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_KERNEL 2 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_BOOT 3 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_STATIC 4 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_GATED 8 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_RA 9 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_MRT 10 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_ZEBRA 11 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_BIRD 12 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_DNROUTED 13 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_XORP 14 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTPROT_NTK 15 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum rt_scope_t 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RT_SCOPE_UNIVERSE=0, 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RT_SCOPE_SITE=200, 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RT_SCOPE_LINK=253, 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RT_SCOPE_HOST=254, 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RT_SCOPE_NOWHERE=255 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_F_NOTIFY 0x100 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_F_CLONED 0x200 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_F_EQUALIZE 0x400 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_F_PREFIX 0x800 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum rt_class_t 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RT_TABLE_UNSPEC=0, 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RT_TABLE_DEFAULT=253, 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RT_TABLE_MAIN=254, 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RT_TABLE_LOCAL=255, 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __RT_TABLE_MAX 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RT_TABLE_MAX (__RT_TABLE_MAX - 1) 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum rtattr_type_t 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_UNSPEC, 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_DST, 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_SRC, 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_IIF, 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_OIF, 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_GATEWAY, 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_PRIORITY, 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_PREFSRC, 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_METRICS, 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_MULTIPATH, 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_PROTOINFO, 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_FLOW, 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_CACHEINFO, 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_SESSION, 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTA_MP_ALGO, 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __RTA_MAX 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTA_MAX (__RTA_MAX - 1) 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg)))) 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct rtmsg)) 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct rtnexthop 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short rtnh_len; 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtnh_flags; 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtnh_hops; 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int rtnh_ifindex; 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_F_DEAD 1 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_F_PERVASIVE 2 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_F_ONLINK 4 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_ALIGNTO 4 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_ALIGN(len) ( ((len)+RTNH_ALIGNTO-1) & ~(RTNH_ALIGNTO-1) ) 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && ((int)(rtnh)->rtnh_len) <= (len)) 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_NEXT(rtnh) ((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len))) 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len)) 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len)) 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0))) 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct rta_cacheinfo 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rta_clntref; 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rta_lastuse; 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 rta_expires; 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rta_error; 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rta_used; 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNETLINK_HAVE_PEERINFO 1 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rta_id; 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rta_ts; 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rta_tsage; 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_UNSPEC, 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_UNSPEC RTAX_UNSPEC 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_LOCK, 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_LOCK RTAX_LOCK 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_MTU, 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_MTU RTAX_MTU 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_WINDOW, 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_WINDOW RTAX_WINDOW 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_RTT, 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_RTT RTAX_RTT 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_RTTVAR, 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_RTTVAR RTAX_RTTVAR 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_SSTHRESH, 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_SSTHRESH RTAX_SSTHRESH 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_CWND, 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_CWND RTAX_CWND 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_ADVMSS, 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_ADVMSS RTAX_ADVMSS 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_REORDERING, 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_REORDERING RTAX_REORDERING 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_HOPLIMIT, 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_HOPLIMIT RTAX_HOPLIMIT 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_INITCWND, 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_INITCWND RTAX_INITCWND 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTAX_FEATURES, 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_FEATURES RTAX_FEATURES 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __RTAX_MAX 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_MAX (__RTAX_MAX - 1) 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_FEATURE_ECN 0x00000001 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_FEATURE_SACK 0x00000002 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_FEATURE_TIMESTAMP 0x00000004 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTAX_FEATURE_ALLFRAG 0x00000008 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct rta_session 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 proto; 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 pad1; 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 pad2; 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 sport; 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 dport; 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } ports; 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 code; 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 ident; 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } icmpt; 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 spi; 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } u; 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ifaddrmsg 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ifa_family; 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ifa_prefixlen; 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ifa_flags; 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ifa_scope; 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ifa_index; 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFA_UNSPEC, 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFA_ADDRESS, 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFA_LOCAL, 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFA_LABEL, 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFA_BROADCAST, 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFA_ANYCAST, 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFA_CACHEINFO, 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFA_MULTICAST, 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __IFA_MAX 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFA_MAX (__IFA_MAX - 1) 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFA_F_SECONDARY 0x01 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFA_F_TEMPORARY IFA_F_SECONDARY 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFA_F_DEPRECATED 0x20 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFA_F_TENTATIVE 0x40 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFA_F_PERMANENT 0x80 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ifa_cacheinfo 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ifa_prefered; 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ifa_valid; 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 cstamp; 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tstamp; 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg)))) 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg)) 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ndmsg 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ndm_family; 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ndm_pad1; 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short ndm_pad2; 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ndm_ifindex; 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 ndm_state; 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 ndm_flags; 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 ndm_type; 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDA_UNSPEC, 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDA_DST, 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDA_LLADDR, 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDA_CACHEINFO, 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDA_PROBES, 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __NDA_MAX 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NDA_MAX (__NDA_MAX - 1) 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NDA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ndmsg)))) 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NDA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ndmsg)) 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NTF_PROXY 0x08 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NTF_ROUTER 0x80 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUD_INCOMPLETE 0x01 39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUD_REACHABLE 0x02 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUD_STALE 0x04 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUD_DELAY 0x08 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUD_PROBE 0x10 39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUD_FAILED 0x20 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUD_NOARP 0x40 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUD_PERMANENT 0x80 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NUD_NONE 0x00 40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct nda_cacheinfo 40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndm_confirmed; 40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndm_used; 40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndm_updated; 40811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndm_refcnt; 40911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ndt_stats 41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 41311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_allocs; 41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_destroys; 41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_hash_grows; 41611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_res_failed; 41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_lookups; 41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_hits; 41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_rcv_probes_mcast; 42011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_rcv_probes_ucast; 42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_periodic_gc_runs; 42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 ndts_forced_gc_runs; 42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 42511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum { 42611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_UNSPEC, 42711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_IFINDEX, 42811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_REFCNT, 42911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_REACHABLE_TIME, 43011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_BASE_REACHABLE_TIME, 43111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_RETRANS_TIME, 43211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_GC_STALETIME, 43311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_DELAY_PROBE_TIME, 43411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_QUEUE_LEN, 43511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_APP_PROBES, 43611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_UCAST_PROBES, 43711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_MCAST_PROBES, 43811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_ANYCAST_DELAY, 43911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_PROXY_DELAY, 44011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_PROXY_QLEN, 44111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTPA_LOCKTIME, 44211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __NDTPA_MAX 44311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 44411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NDTPA_MAX (__NDTPA_MAX - 1) 44511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 44611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ndtmsg 44711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 44811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 ndtm_family; 44911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 ndtm_pad1; 45011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 ndtm_pad2; 45111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 45211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 45311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ndt_config 45411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 45511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 ndtc_key_len; 45611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 ndtc_entry_size; 45711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndtc_entries; 45811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndtc_last_flush; 45911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndtc_last_rand; 46011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndtc_hash_rnd; 46111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndtc_hash_mask; 46211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndtc_hash_chain_gc; 46311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ndtc_proxy_qlen; 46411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 46511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum { 46711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTA_UNSPEC, 46811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTA_NAME, 46911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTA_THRESH1, 47011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTA_THRESH2, 47111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTA_THRESH3, 47211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTA_CONFIG, 47311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTA_PARMS, 47411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTA_STATS, 47511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert NDTA_GC_INTERVAL, 47611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __NDTA_MAX 47711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 47811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NDTA_MAX (__NDTA_MAX - 1) 47911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 48011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NDTA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ndtmsg)))) 48111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NDTA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ndtmsg)) 48211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 48311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct rtgenmsg 48411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 48511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rtgen_family; 48611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 48711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 48811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ifinfomsg 48911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 49011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char ifi_family; 49111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char __ifi_pad; 49211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short ifi_type; 49311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ifi_index; 49411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned ifi_flags; 49511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned ifi_change; 49611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 49711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 49811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct prefixmsg 49911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 50011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char prefix_family; 50111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char prefix_pad1; 50211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short prefix_pad2; 50311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int prefix_ifindex; 50411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char prefix_type; 50511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char prefix_len; 50611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char prefix_flags; 50711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char prefix_pad3; 50811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 50911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 51111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 51211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert PREFIX_UNSPEC, 51311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert PREFIX_ADDRESS, 51411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert PREFIX_CACHEINFO, 51511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __PREFIX_MAX 51611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 51711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PREFIX_MAX (__PREFIX_MAX - 1) 51911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 52011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct prefix_cacheinfo 52111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 52211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 preferred_time; 52311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 valid_time; 52411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 52511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 52611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct rtnl_link_stats 52711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 52811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_packets; 52911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_packets; 53011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_bytes; 53111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_bytes; 53211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_errors; 53311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_errors; 53411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_dropped; 53511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_dropped; 53611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 multicast; 53711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 collisions; 53811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 53911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_length_errors; 54011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_over_errors; 54111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_crc_errors; 54211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_frame_errors; 54311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_fifo_errors; 54411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_missed_errors; 54511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 54611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_aborted_errors; 54711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_carrier_errors; 54811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_fifo_errors; 54911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_heartbeat_errors; 55011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_window_errors; 55111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 55211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 rx_compressed; 55311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tx_compressed; 55411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 55511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 55611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct rtnl_link_ifmap 55711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 55811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 mem_start; 55911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 mem_end; 56011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 base_addr; 56111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 irq; 56211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dma; 56311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 port; 56411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 56511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 56611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 56711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 56811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_UNSPEC, 56911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_ADDRESS, 57011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_BROADCAST, 57111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_IFNAME, 57211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_MTU, 57311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_LINK, 57411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_QDISC, 57511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_STATS, 57611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_COST, 57711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_COST IFLA_COST 57811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_PRIORITY, 57911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_PRIORITY IFLA_PRIORITY 58011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_MASTER, 58111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_MASTER IFLA_MASTER 58211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_WIRELESS, 58311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_WIRELESS IFLA_WIRELESS 58411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_PROTINFO, 58511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_PROTINFO IFLA_PROTINFO 58611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_TXQLEN, 58711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_TXQLEN IFLA_TXQLEN 58811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_MAP, 58911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_MAP IFLA_MAP 59011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_WEIGHT, 59111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_WEIGHT IFLA_WEIGHT 59211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_OPERSTATE, 59311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_LINKMODE, 59411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __IFLA_MAX 59511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 59611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 59711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_MAX (__IFLA_MAX - 1) 59811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 59911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) 60011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg)) 60111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 60211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 60311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 60411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_INET6_UNSPEC, 60511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_INET6_FLAGS, 60611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_INET6_CONF, 60711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_INET6_STATS, 60811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_INET6_MCAST, 60911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IFLA_INET6_CACHEINFO, 61011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __IFLA_INET6_MAX 61111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 61211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 61311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) 61411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 61511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ifla_cacheinfo 61611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 61711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 max_reasm_len; 61811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tstamp; 61911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 reachable_time; 62011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 retrans_time; 62111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 62211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 62311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tcmsg 62411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 62511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char tcm_family; 62611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char tcm__pad1; 62711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short tcm__pad2; 62811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int tcm_ifindex; 62911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tcm_handle; 63011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tcm_parent; 63111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tcm_info; 63211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 63311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 63411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 63511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 63611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_UNSPEC, 63711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_KIND, 63811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_OPTIONS, 63911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_STATS, 64011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_XSTATS, 64111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RATE, 64211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_FCNT, 64311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_STATS2, 64411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_MAX 64511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 64611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 64711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_MAX (__TCA_MAX - 1) 64811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 64911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg)))) 65011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg)) 65111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 65211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_LINK 1 65311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_NOTIFY 2 65411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_NEIGH 4 65511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_TC 8 65611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 65711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_IPV4_IFADDR 0x10 65811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_IPV4_MROUTE 0x20 65911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_IPV4_ROUTE 0x40 66011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_IPV4_RULE 0x80 66111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 66211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_IPV6_IFADDR 0x100 66311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_IPV6_MROUTE 0x200 66411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_IPV6_ROUTE 0x400 66511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_IPV6_IFINFO 0x800 66611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 66711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_DECnet_IFADDR 0x1000 66811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_DECnet_ROUTE 0x4000 66911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTMGRP_IPV6_PREFIX 0x20000 67111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum rtnetlink_groups { 67311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_NONE, 67411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_NONE RTNLGRP_NONE 67511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_LINK, 67611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_LINK RTNLGRP_LINK 67711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_NOTIFY, 67811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY 67911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_NEIGH, 68011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_NEIGH RTNLGRP_NEIGH 68111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_TC, 68211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_TC RTNLGRP_TC 68311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_IPV4_IFADDR, 68411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR 68511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_IPV4_MROUTE, 68611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE 68711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_IPV4_ROUTE, 68811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE 68911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_IPV4_RULE, 69011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE 69111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_IPV6_IFADDR, 69211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR 69311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_IPV6_MROUTE, 69411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE 69511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_IPV6_ROUTE, 69611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE 69711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_IPV6_IFINFO, 69811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO 69911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_DECnet_IFADDR, 70011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR 70111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_NOP2, 70211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_DECnet_ROUTE, 70311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE 70411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_NOP3, 70511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_NOP4, 70611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert RTNLGRP_IPV6_PREFIX, 70711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX 70811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __RTNLGRP_MAX 70911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 71011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RTNLGRP_MAX (__RTNLGRP_MAX - 1) 71111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 71211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tcamsg 71311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 71411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char tca_family; 71511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char tca__pad1; 71611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short tca__pad2; 71711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 71811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg)))) 71911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg)) 72011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ACT_TAB 1 72111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCAA_MAX 1 72211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 72311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 724