1*de1e4e89SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*de1e4e89SAndroid Build Coastguard Worker #ifndef _LINUX_IF_LINK_H 3*de1e4e89SAndroid Build Coastguard Worker #define _LINUX_IF_LINK_H 4*de1e4e89SAndroid Build Coastguard Worker 5*de1e4e89SAndroid Build Coastguard Worker #include <linux/types.h> 6*de1e4e89SAndroid Build Coastguard Worker #include <linux/netlink.h> 7*de1e4e89SAndroid Build Coastguard Worker 8*de1e4e89SAndroid Build Coastguard Worker /* This struct should be in sync with struct rtnl_link_stats64 */ 9*de1e4e89SAndroid Build Coastguard Worker struct rtnl_link_stats { 10*de1e4e89SAndroid Build Coastguard Worker __u32 rx_packets; /* total packets received */ 11*de1e4e89SAndroid Build Coastguard Worker __u32 tx_packets; /* total packets transmitted */ 12*de1e4e89SAndroid Build Coastguard Worker __u32 rx_bytes; /* total bytes received */ 13*de1e4e89SAndroid Build Coastguard Worker __u32 tx_bytes; /* total bytes transmitted */ 14*de1e4e89SAndroid Build Coastguard Worker __u32 rx_errors; /* bad packets received */ 15*de1e4e89SAndroid Build Coastguard Worker __u32 tx_errors; /* packet transmit problems */ 16*de1e4e89SAndroid Build Coastguard Worker __u32 rx_dropped; /* no space in linux buffers */ 17*de1e4e89SAndroid Build Coastguard Worker __u32 tx_dropped; /* no space available in linux */ 18*de1e4e89SAndroid Build Coastguard Worker __u32 multicast; /* multicast packets received */ 19*de1e4e89SAndroid Build Coastguard Worker __u32 collisions; 20*de1e4e89SAndroid Build Coastguard Worker 21*de1e4e89SAndroid Build Coastguard Worker /* detailed rx_errors: */ 22*de1e4e89SAndroid Build Coastguard Worker __u32 rx_length_errors; 23*de1e4e89SAndroid Build Coastguard Worker __u32 rx_over_errors; /* receiver ring buff overflow */ 24*de1e4e89SAndroid Build Coastguard Worker __u32 rx_crc_errors; /* recved pkt with crc error */ 25*de1e4e89SAndroid Build Coastguard Worker __u32 rx_frame_errors; /* recv'd frame alignment error */ 26*de1e4e89SAndroid Build Coastguard Worker __u32 rx_fifo_errors; /* recv'r fifo overrun */ 27*de1e4e89SAndroid Build Coastguard Worker __u32 rx_missed_errors; /* receiver missed packet */ 28*de1e4e89SAndroid Build Coastguard Worker 29*de1e4e89SAndroid Build Coastguard Worker /* detailed tx_errors */ 30*de1e4e89SAndroid Build Coastguard Worker __u32 tx_aborted_errors; 31*de1e4e89SAndroid Build Coastguard Worker __u32 tx_carrier_errors; 32*de1e4e89SAndroid Build Coastguard Worker __u32 tx_fifo_errors; 33*de1e4e89SAndroid Build Coastguard Worker __u32 tx_heartbeat_errors; 34*de1e4e89SAndroid Build Coastguard Worker __u32 tx_window_errors; 35*de1e4e89SAndroid Build Coastguard Worker 36*de1e4e89SAndroid Build Coastguard Worker /* for cslip etc */ 37*de1e4e89SAndroid Build Coastguard Worker __u32 rx_compressed; 38*de1e4e89SAndroid Build Coastguard Worker __u32 tx_compressed; 39*de1e4e89SAndroid Build Coastguard Worker 40*de1e4e89SAndroid Build Coastguard Worker __u32 rx_nohandler; /* dropped, no handler found */ 41*de1e4e89SAndroid Build Coastguard Worker }; 42*de1e4e89SAndroid Build Coastguard Worker 43*de1e4e89SAndroid Build Coastguard Worker /* The main device statistics structure */ 44*de1e4e89SAndroid Build Coastguard Worker struct rtnl_link_stats64 { 45*de1e4e89SAndroid Build Coastguard Worker __u64 rx_packets; /* total packets received */ 46*de1e4e89SAndroid Build Coastguard Worker __u64 tx_packets; /* total packets transmitted */ 47*de1e4e89SAndroid Build Coastguard Worker __u64 rx_bytes; /* total bytes received */ 48*de1e4e89SAndroid Build Coastguard Worker __u64 tx_bytes; /* total bytes transmitted */ 49*de1e4e89SAndroid Build Coastguard Worker __u64 rx_errors; /* bad packets received */ 50*de1e4e89SAndroid Build Coastguard Worker __u64 tx_errors; /* packet transmit problems */ 51*de1e4e89SAndroid Build Coastguard Worker __u64 rx_dropped; /* no space in linux buffers */ 52*de1e4e89SAndroid Build Coastguard Worker __u64 tx_dropped; /* no space available in linux */ 53*de1e4e89SAndroid Build Coastguard Worker __u64 multicast; /* multicast packets received */ 54*de1e4e89SAndroid Build Coastguard Worker __u64 collisions; 55*de1e4e89SAndroid Build Coastguard Worker 56*de1e4e89SAndroid Build Coastguard Worker /* detailed rx_errors: */ 57*de1e4e89SAndroid Build Coastguard Worker __u64 rx_length_errors; 58*de1e4e89SAndroid Build Coastguard Worker __u64 rx_over_errors; /* receiver ring buff overflow */ 59*de1e4e89SAndroid Build Coastguard Worker __u64 rx_crc_errors; /* recved pkt with crc error */ 60*de1e4e89SAndroid Build Coastguard Worker __u64 rx_frame_errors; /* recv'd frame alignment error */ 61*de1e4e89SAndroid Build Coastguard Worker __u64 rx_fifo_errors; /* recv'r fifo overrun */ 62*de1e4e89SAndroid Build Coastguard Worker __u64 rx_missed_errors; /* receiver missed packet */ 63*de1e4e89SAndroid Build Coastguard Worker 64*de1e4e89SAndroid Build Coastguard Worker /* detailed tx_errors */ 65*de1e4e89SAndroid Build Coastguard Worker __u64 tx_aborted_errors; 66*de1e4e89SAndroid Build Coastguard Worker __u64 tx_carrier_errors; 67*de1e4e89SAndroid Build Coastguard Worker __u64 tx_fifo_errors; 68*de1e4e89SAndroid Build Coastguard Worker __u64 tx_heartbeat_errors; 69*de1e4e89SAndroid Build Coastguard Worker __u64 tx_window_errors; 70*de1e4e89SAndroid Build Coastguard Worker 71*de1e4e89SAndroid Build Coastguard Worker /* for cslip etc */ 72*de1e4e89SAndroid Build Coastguard Worker __u64 rx_compressed; 73*de1e4e89SAndroid Build Coastguard Worker __u64 tx_compressed; 74*de1e4e89SAndroid Build Coastguard Worker 75*de1e4e89SAndroid Build Coastguard Worker __u64 rx_nohandler; /* dropped, no handler found */ 76*de1e4e89SAndroid Build Coastguard Worker }; 77*de1e4e89SAndroid Build Coastguard Worker 78*de1e4e89SAndroid Build Coastguard Worker /* The struct should be in sync with struct ifmap */ 79*de1e4e89SAndroid Build Coastguard Worker struct rtnl_link_ifmap { 80*de1e4e89SAndroid Build Coastguard Worker __u64 mem_start; 81*de1e4e89SAndroid Build Coastguard Worker __u64 mem_end; 82*de1e4e89SAndroid Build Coastguard Worker __u64 base_addr; 83*de1e4e89SAndroid Build Coastguard Worker __u16 irq; 84*de1e4e89SAndroid Build Coastguard Worker __u8 dma; 85*de1e4e89SAndroid Build Coastguard Worker __u8 port; 86*de1e4e89SAndroid Build Coastguard Worker }; 87*de1e4e89SAndroid Build Coastguard Worker 88*de1e4e89SAndroid Build Coastguard Worker /* 89*de1e4e89SAndroid Build Coastguard Worker * IFLA_AF_SPEC 90*de1e4e89SAndroid Build Coastguard Worker * Contains nested attributes for address family specific attributes. 91*de1e4e89SAndroid Build Coastguard Worker * Each address family may create a attribute with the address family 92*de1e4e89SAndroid Build Coastguard Worker * number as type and create its own attribute structure in it. 93*de1e4e89SAndroid Build Coastguard Worker * 94*de1e4e89SAndroid Build Coastguard Worker * Example: 95*de1e4e89SAndroid Build Coastguard Worker * [IFLA_AF_SPEC] = { 96*de1e4e89SAndroid Build Coastguard Worker * [AF_INET] = { 97*de1e4e89SAndroid Build Coastguard Worker * [IFLA_INET_CONF] = ..., 98*de1e4e89SAndroid Build Coastguard Worker * }, 99*de1e4e89SAndroid Build Coastguard Worker * [AF_INET6] = { 100*de1e4e89SAndroid Build Coastguard Worker * [IFLA_INET6_FLAGS] = ..., 101*de1e4e89SAndroid Build Coastguard Worker * [IFLA_INET6_CONF] = ..., 102*de1e4e89SAndroid Build Coastguard Worker * } 103*de1e4e89SAndroid Build Coastguard Worker * } 104*de1e4e89SAndroid Build Coastguard Worker */ 105*de1e4e89SAndroid Build Coastguard Worker 106*de1e4e89SAndroid Build Coastguard Worker enum { 107*de1e4e89SAndroid Build Coastguard Worker IFLA_UNSPEC, 108*de1e4e89SAndroid Build Coastguard Worker IFLA_ADDRESS, 109*de1e4e89SAndroid Build Coastguard Worker IFLA_BROADCAST, 110*de1e4e89SAndroid Build Coastguard Worker IFLA_IFNAME, 111*de1e4e89SAndroid Build Coastguard Worker IFLA_MTU, 112*de1e4e89SAndroid Build Coastguard Worker IFLA_LINK, 113*de1e4e89SAndroid Build Coastguard Worker IFLA_QDISC, 114*de1e4e89SAndroid Build Coastguard Worker IFLA_STATS, 115*de1e4e89SAndroid Build Coastguard Worker IFLA_COST, 116*de1e4e89SAndroid Build Coastguard Worker #define IFLA_COST IFLA_COST 117*de1e4e89SAndroid Build Coastguard Worker IFLA_PRIORITY, 118*de1e4e89SAndroid Build Coastguard Worker #define IFLA_PRIORITY IFLA_PRIORITY 119*de1e4e89SAndroid Build Coastguard Worker IFLA_MASTER, 120*de1e4e89SAndroid Build Coastguard Worker #define IFLA_MASTER IFLA_MASTER 121*de1e4e89SAndroid Build Coastguard Worker IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */ 122*de1e4e89SAndroid Build Coastguard Worker #define IFLA_WIRELESS IFLA_WIRELESS 123*de1e4e89SAndroid Build Coastguard Worker IFLA_PROTINFO, /* Protocol specific information for a link */ 124*de1e4e89SAndroid Build Coastguard Worker #define IFLA_PROTINFO IFLA_PROTINFO 125*de1e4e89SAndroid Build Coastguard Worker IFLA_TXQLEN, 126*de1e4e89SAndroid Build Coastguard Worker #define IFLA_TXQLEN IFLA_TXQLEN 127*de1e4e89SAndroid Build Coastguard Worker IFLA_MAP, 128*de1e4e89SAndroid Build Coastguard Worker #define IFLA_MAP IFLA_MAP 129*de1e4e89SAndroid Build Coastguard Worker IFLA_WEIGHT, 130*de1e4e89SAndroid Build Coastguard Worker #define IFLA_WEIGHT IFLA_WEIGHT 131*de1e4e89SAndroid Build Coastguard Worker IFLA_OPERSTATE, 132*de1e4e89SAndroid Build Coastguard Worker IFLA_LINKMODE, 133*de1e4e89SAndroid Build Coastguard Worker IFLA_LINKINFO, 134*de1e4e89SAndroid Build Coastguard Worker #define IFLA_LINKINFO IFLA_LINKINFO 135*de1e4e89SAndroid Build Coastguard Worker IFLA_NET_NS_PID, 136*de1e4e89SAndroid Build Coastguard Worker IFLA_IFALIAS, 137*de1e4e89SAndroid Build Coastguard Worker IFLA_NUM_VF, /* Number of VFs if device is SR-IOV PF */ 138*de1e4e89SAndroid Build Coastguard Worker IFLA_VFINFO_LIST, 139*de1e4e89SAndroid Build Coastguard Worker IFLA_STATS64, 140*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_PORTS, 141*de1e4e89SAndroid Build Coastguard Worker IFLA_PORT_SELF, 142*de1e4e89SAndroid Build Coastguard Worker IFLA_AF_SPEC, 143*de1e4e89SAndroid Build Coastguard Worker IFLA_GROUP, /* Group the device belongs to */ 144*de1e4e89SAndroid Build Coastguard Worker IFLA_NET_NS_FD, 145*de1e4e89SAndroid Build Coastguard Worker IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ 146*de1e4e89SAndroid Build Coastguard Worker IFLA_PROMISCUITY, /* Promiscuity count: > 0 means acts PROMISC */ 147*de1e4e89SAndroid Build Coastguard Worker #define IFLA_PROMISCUITY IFLA_PROMISCUITY 148*de1e4e89SAndroid Build Coastguard Worker IFLA_NUM_TX_QUEUES, 149*de1e4e89SAndroid Build Coastguard Worker IFLA_NUM_RX_QUEUES, 150*de1e4e89SAndroid Build Coastguard Worker IFLA_CARRIER, 151*de1e4e89SAndroid Build Coastguard Worker IFLA_PHYS_PORT_ID, 152*de1e4e89SAndroid Build Coastguard Worker IFLA_CARRIER_CHANGES, 153*de1e4e89SAndroid Build Coastguard Worker IFLA_PHYS_SWITCH_ID, 154*de1e4e89SAndroid Build Coastguard Worker IFLA_LINK_NETNSID, 155*de1e4e89SAndroid Build Coastguard Worker IFLA_PHYS_PORT_NAME, 156*de1e4e89SAndroid Build Coastguard Worker IFLA_PROTO_DOWN, 157*de1e4e89SAndroid Build Coastguard Worker IFLA_GSO_MAX_SEGS, 158*de1e4e89SAndroid Build Coastguard Worker IFLA_GSO_MAX_SIZE, 159*de1e4e89SAndroid Build Coastguard Worker IFLA_PAD, 160*de1e4e89SAndroid Build Coastguard Worker IFLA_XDP, 161*de1e4e89SAndroid Build Coastguard Worker IFLA_EVENT, 162*de1e4e89SAndroid Build Coastguard Worker __IFLA_MAX 163*de1e4e89SAndroid Build Coastguard Worker }; 164*de1e4e89SAndroid Build Coastguard Worker 165*de1e4e89SAndroid Build Coastguard Worker 166*de1e4e89SAndroid Build Coastguard Worker #define IFLA_MAX (__IFLA_MAX - 1) 167*de1e4e89SAndroid Build Coastguard Worker 168*de1e4e89SAndroid Build Coastguard Worker /* backwards compatibility for userspace */ 169*de1e4e89SAndroid Build Coastguard Worker #define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) 170*de1e4e89SAndroid Build Coastguard Worker #define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg)) 171*de1e4e89SAndroid Build Coastguard Worker 172*de1e4e89SAndroid Build Coastguard Worker enum { 173*de1e4e89SAndroid Build Coastguard Worker IFLA_INET_UNSPEC, 174*de1e4e89SAndroid Build Coastguard Worker IFLA_INET_CONF, 175*de1e4e89SAndroid Build Coastguard Worker __IFLA_INET_MAX, 176*de1e4e89SAndroid Build Coastguard Worker }; 177*de1e4e89SAndroid Build Coastguard Worker 178*de1e4e89SAndroid Build Coastguard Worker #define IFLA_INET_MAX (__IFLA_INET_MAX - 1) 179*de1e4e89SAndroid Build Coastguard Worker 180*de1e4e89SAndroid Build Coastguard Worker /* ifi_flags. 181*de1e4e89SAndroid Build Coastguard Worker 182*de1e4e89SAndroid Build Coastguard Worker IFF_* flags. 183*de1e4e89SAndroid Build Coastguard Worker 184*de1e4e89SAndroid Build Coastguard Worker The only change is: 185*de1e4e89SAndroid Build Coastguard Worker IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are 186*de1e4e89SAndroid Build Coastguard Worker more not changeable by user. They describe link media 187*de1e4e89SAndroid Build Coastguard Worker characteristics and set by device driver. 188*de1e4e89SAndroid Build Coastguard Worker 189*de1e4e89SAndroid Build Coastguard Worker Comments: 190*de1e4e89SAndroid Build Coastguard Worker - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid 191*de1e4e89SAndroid Build Coastguard Worker - If neither of these three flags are set; 192*de1e4e89SAndroid Build Coastguard Worker the interface is NBMA. 193*de1e4e89SAndroid Build Coastguard Worker 194*de1e4e89SAndroid Build Coastguard Worker - IFF_MULTICAST does not mean anything special: 195*de1e4e89SAndroid Build Coastguard Worker multicasts can be used on all not-NBMA links. 196*de1e4e89SAndroid Build Coastguard Worker IFF_MULTICAST means that this media uses special encapsulation 197*de1e4e89SAndroid Build Coastguard Worker for multicast frames. Apparently, all IFF_POINTOPOINT and 198*de1e4e89SAndroid Build Coastguard Worker IFF_BROADCAST devices are able to use multicasts too. 199*de1e4e89SAndroid Build Coastguard Worker */ 200*de1e4e89SAndroid Build Coastguard Worker 201*de1e4e89SAndroid Build Coastguard Worker /* IFLA_LINK. 202*de1e4e89SAndroid Build Coastguard Worker For usual devices it is equal ifi_index. 203*de1e4e89SAndroid Build Coastguard Worker If it is a "virtual interface" (f.e. tunnel), ifi_link 204*de1e4e89SAndroid Build Coastguard Worker can point to real physical interface (f.e. for bandwidth calculations), 205*de1e4e89SAndroid Build Coastguard Worker or maybe 0, what means, that real media is unknown (usual 206*de1e4e89SAndroid Build Coastguard Worker for IPIP tunnels, when route to endpoint is allowed to change) 207*de1e4e89SAndroid Build Coastguard Worker */ 208*de1e4e89SAndroid Build Coastguard Worker 209*de1e4e89SAndroid Build Coastguard Worker /* Subtype attributes for IFLA_PROTINFO */ 210*de1e4e89SAndroid Build Coastguard Worker enum { 211*de1e4e89SAndroid Build Coastguard Worker IFLA_INET6_UNSPEC, 212*de1e4e89SAndroid Build Coastguard Worker IFLA_INET6_FLAGS, /* link flags */ 213*de1e4e89SAndroid Build Coastguard Worker IFLA_INET6_CONF, /* sysctl parameters */ 214*de1e4e89SAndroid Build Coastguard Worker IFLA_INET6_STATS, /* statistics */ 215*de1e4e89SAndroid Build Coastguard Worker IFLA_INET6_MCAST, /* MC things. What of them? */ 216*de1e4e89SAndroid Build Coastguard Worker IFLA_INET6_CACHEINFO, /* time values and max reasm size */ 217*de1e4e89SAndroid Build Coastguard Worker IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */ 218*de1e4e89SAndroid Build Coastguard Worker IFLA_INET6_TOKEN, /* device token */ 219*de1e4e89SAndroid Build Coastguard Worker IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */ 220*de1e4e89SAndroid Build Coastguard Worker __IFLA_INET6_MAX 221*de1e4e89SAndroid Build Coastguard Worker }; 222*de1e4e89SAndroid Build Coastguard Worker 223*de1e4e89SAndroid Build Coastguard Worker #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) 224*de1e4e89SAndroid Build Coastguard Worker 225*de1e4e89SAndroid Build Coastguard Worker enum in6_addr_gen_mode { 226*de1e4e89SAndroid Build Coastguard Worker IN6_ADDR_GEN_MODE_EUI64, 227*de1e4e89SAndroid Build Coastguard Worker IN6_ADDR_GEN_MODE_NONE, 228*de1e4e89SAndroid Build Coastguard Worker IN6_ADDR_GEN_MODE_STABLE_PRIVACY, 229*de1e4e89SAndroid Build Coastguard Worker IN6_ADDR_GEN_MODE_RANDOM, 230*de1e4e89SAndroid Build Coastguard Worker }; 231*de1e4e89SAndroid Build Coastguard Worker 232*de1e4e89SAndroid Build Coastguard Worker /* Bridge section */ 233*de1e4e89SAndroid Build Coastguard Worker 234*de1e4e89SAndroid Build Coastguard Worker enum { 235*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_UNSPEC, 236*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_FORWARD_DELAY, 237*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_HELLO_TIME, 238*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MAX_AGE, 239*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_AGEING_TIME, 240*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_STP_STATE, 241*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_PRIORITY, 242*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_VLAN_FILTERING, 243*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_VLAN_PROTOCOL, 244*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_GROUP_FWD_MASK, 245*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_ROOT_ID, 246*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_BRIDGE_ID, 247*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_ROOT_PORT, 248*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_ROOT_PATH_COST, 249*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_TOPOLOGY_CHANGE, 250*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_TOPOLOGY_CHANGE_DETECTED, 251*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_HELLO_TIMER, 252*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_TCN_TIMER, 253*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_TOPOLOGY_CHANGE_TIMER, 254*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_GC_TIMER, 255*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_GROUP_ADDR, 256*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_FDB_FLUSH, 257*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_ROUTER, 258*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_SNOOPING, 259*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERY_USE_IFADDR, 260*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERIER, 261*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_HASH_ELASTICITY, 262*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_HASH_MAX, 263*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_LAST_MEMBER_CNT, 264*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_STARTUP_QUERY_CNT, 265*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_LAST_MEMBER_INTVL, 266*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_MEMBERSHIP_INTVL, 267*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERIER_INTVL, 268*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERY_INTVL, 269*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERY_RESPONSE_INTVL, 270*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_STARTUP_QUERY_INTVL, 271*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_NF_CALL_IPTABLES, 272*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_NF_CALL_IP6TABLES, 273*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_NF_CALL_ARPTABLES, 274*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_VLAN_DEFAULT_PVID, 275*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_PAD, 276*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_VLAN_STATS_ENABLED, 277*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_STATS_ENABLED, 278*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_IGMP_VERSION, 279*de1e4e89SAndroid Build Coastguard Worker IFLA_BR_MCAST_MLD_VERSION, 280*de1e4e89SAndroid Build Coastguard Worker __IFLA_BR_MAX, 281*de1e4e89SAndroid Build Coastguard Worker }; 282*de1e4e89SAndroid Build Coastguard Worker 283*de1e4e89SAndroid Build Coastguard Worker #define IFLA_BR_MAX (__IFLA_BR_MAX - 1) 284*de1e4e89SAndroid Build Coastguard Worker 285*de1e4e89SAndroid Build Coastguard Worker struct ifla_bridge_id { 286*de1e4e89SAndroid Build Coastguard Worker __u8 prio[2]; 287*de1e4e89SAndroid Build Coastguard Worker __u8 addr[6]; /* ETH_ALEN */ 288*de1e4e89SAndroid Build Coastguard Worker }; 289*de1e4e89SAndroid Build Coastguard Worker 290*de1e4e89SAndroid Build Coastguard Worker enum { 291*de1e4e89SAndroid Build Coastguard Worker BRIDGE_MODE_UNSPEC, 292*de1e4e89SAndroid Build Coastguard Worker BRIDGE_MODE_HAIRPIN, 293*de1e4e89SAndroid Build Coastguard Worker }; 294*de1e4e89SAndroid Build Coastguard Worker 295*de1e4e89SAndroid Build Coastguard Worker enum { 296*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_UNSPEC, 297*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_STATE, /* Spanning tree state */ 298*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_PRIORITY, /* " priority */ 299*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_COST, /* " cost */ 300*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_MODE, /* mode (hairpin) */ 301*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_GUARD, /* bpdu guard */ 302*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_PROTECT, /* root port protection */ 303*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */ 304*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_LEARNING, /* mac learning */ 305*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */ 306*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_PROXYARP, /* proxy ARP */ 307*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */ 308*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */ 309*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_ROOT_ID, /* designated root */ 310*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_BRIDGE_ID, /* designated bridge */ 311*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_DESIGNATED_PORT, 312*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_DESIGNATED_COST, 313*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_ID, 314*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_NO, 315*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_TOPOLOGY_CHANGE_ACK, 316*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_CONFIG_PENDING, 317*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_MESSAGE_AGE_TIMER, 318*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_FORWARD_DELAY_TIMER, 319*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_HOLD_TIMER, 320*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_FLUSH, 321*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_MULTICAST_ROUTER, 322*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_PAD, 323*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_MCAST_FLOOD, 324*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_MCAST_TO_UCAST, 325*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_VLAN_TUNNEL, 326*de1e4e89SAndroid Build Coastguard Worker IFLA_BRPORT_BCAST_FLOOD, 327*de1e4e89SAndroid Build Coastguard Worker __IFLA_BRPORT_MAX 328*de1e4e89SAndroid Build Coastguard Worker }; 329*de1e4e89SAndroid Build Coastguard Worker #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) 330*de1e4e89SAndroid Build Coastguard Worker 331*de1e4e89SAndroid Build Coastguard Worker struct ifla_cacheinfo { 332*de1e4e89SAndroid Build Coastguard Worker __u32 max_reasm_len; 333*de1e4e89SAndroid Build Coastguard Worker __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ 334*de1e4e89SAndroid Build Coastguard Worker __u32 reachable_time; 335*de1e4e89SAndroid Build Coastguard Worker __u32 retrans_time; 336*de1e4e89SAndroid Build Coastguard Worker }; 337*de1e4e89SAndroid Build Coastguard Worker 338*de1e4e89SAndroid Build Coastguard Worker enum { 339*de1e4e89SAndroid Build Coastguard Worker IFLA_INFO_UNSPEC, 340*de1e4e89SAndroid Build Coastguard Worker IFLA_INFO_KIND, 341*de1e4e89SAndroid Build Coastguard Worker IFLA_INFO_DATA, 342*de1e4e89SAndroid Build Coastguard Worker IFLA_INFO_XSTATS, 343*de1e4e89SAndroid Build Coastguard Worker IFLA_INFO_SLAVE_KIND, 344*de1e4e89SAndroid Build Coastguard Worker IFLA_INFO_SLAVE_DATA, 345*de1e4e89SAndroid Build Coastguard Worker __IFLA_INFO_MAX, 346*de1e4e89SAndroid Build Coastguard Worker }; 347*de1e4e89SAndroid Build Coastguard Worker 348*de1e4e89SAndroid Build Coastguard Worker #define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1) 349*de1e4e89SAndroid Build Coastguard Worker 350*de1e4e89SAndroid Build Coastguard Worker /* VLAN section */ 351*de1e4e89SAndroid Build Coastguard Worker 352*de1e4e89SAndroid Build Coastguard Worker enum { 353*de1e4e89SAndroid Build Coastguard Worker IFLA_VLAN_UNSPEC, 354*de1e4e89SAndroid Build Coastguard Worker IFLA_VLAN_ID, 355*de1e4e89SAndroid Build Coastguard Worker IFLA_VLAN_FLAGS, 356*de1e4e89SAndroid Build Coastguard Worker IFLA_VLAN_EGRESS_QOS, 357*de1e4e89SAndroid Build Coastguard Worker IFLA_VLAN_INGRESS_QOS, 358*de1e4e89SAndroid Build Coastguard Worker IFLA_VLAN_PROTOCOL, 359*de1e4e89SAndroid Build Coastguard Worker __IFLA_VLAN_MAX, 360*de1e4e89SAndroid Build Coastguard Worker }; 361*de1e4e89SAndroid Build Coastguard Worker 362*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1) 363*de1e4e89SAndroid Build Coastguard Worker 364*de1e4e89SAndroid Build Coastguard Worker struct ifla_vlan_flags { 365*de1e4e89SAndroid Build Coastguard Worker __u32 flags; 366*de1e4e89SAndroid Build Coastguard Worker __u32 mask; 367*de1e4e89SAndroid Build Coastguard Worker }; 368*de1e4e89SAndroid Build Coastguard Worker 369*de1e4e89SAndroid Build Coastguard Worker enum { 370*de1e4e89SAndroid Build Coastguard Worker IFLA_VLAN_QOS_UNSPEC, 371*de1e4e89SAndroid Build Coastguard Worker IFLA_VLAN_QOS_MAPPING, 372*de1e4e89SAndroid Build Coastguard Worker __IFLA_VLAN_QOS_MAX 373*de1e4e89SAndroid Build Coastguard Worker }; 374*de1e4e89SAndroid Build Coastguard Worker 375*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1) 376*de1e4e89SAndroid Build Coastguard Worker 377*de1e4e89SAndroid Build Coastguard Worker struct ifla_vlan_qos_mapping { 378*de1e4e89SAndroid Build Coastguard Worker __u32 from; 379*de1e4e89SAndroid Build Coastguard Worker __u32 to; 380*de1e4e89SAndroid Build Coastguard Worker }; 381*de1e4e89SAndroid Build Coastguard Worker 382*de1e4e89SAndroid Build Coastguard Worker /* MACVLAN section */ 383*de1e4e89SAndroid Build Coastguard Worker enum { 384*de1e4e89SAndroid Build Coastguard Worker IFLA_MACVLAN_UNSPEC, 385*de1e4e89SAndroid Build Coastguard Worker IFLA_MACVLAN_MODE, 386*de1e4e89SAndroid Build Coastguard Worker IFLA_MACVLAN_FLAGS, 387*de1e4e89SAndroid Build Coastguard Worker IFLA_MACVLAN_MACADDR_MODE, 388*de1e4e89SAndroid Build Coastguard Worker IFLA_MACVLAN_MACADDR, 389*de1e4e89SAndroid Build Coastguard Worker IFLA_MACVLAN_MACADDR_DATA, 390*de1e4e89SAndroid Build Coastguard Worker IFLA_MACVLAN_MACADDR_COUNT, 391*de1e4e89SAndroid Build Coastguard Worker __IFLA_MACVLAN_MAX, 392*de1e4e89SAndroid Build Coastguard Worker }; 393*de1e4e89SAndroid Build Coastguard Worker 394*de1e4e89SAndroid Build Coastguard Worker #define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1) 395*de1e4e89SAndroid Build Coastguard Worker 396*de1e4e89SAndroid Build Coastguard Worker enum macvlan_mode { 397*de1e4e89SAndroid Build Coastguard Worker MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */ 398*de1e4e89SAndroid Build Coastguard Worker MACVLAN_MODE_VEPA = 2, /* talk to other ports through ext bridge */ 399*de1e4e89SAndroid Build Coastguard Worker MACVLAN_MODE_BRIDGE = 4, /* talk to bridge ports directly */ 400*de1e4e89SAndroid Build Coastguard Worker MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */ 401*de1e4e89SAndroid Build Coastguard Worker MACVLAN_MODE_SOURCE = 16,/* use source MAC address list to assign */ 402*de1e4e89SAndroid Build Coastguard Worker }; 403*de1e4e89SAndroid Build Coastguard Worker 404*de1e4e89SAndroid Build Coastguard Worker enum macvlan_macaddr_mode { 405*de1e4e89SAndroid Build Coastguard Worker MACVLAN_MACADDR_ADD, 406*de1e4e89SAndroid Build Coastguard Worker MACVLAN_MACADDR_DEL, 407*de1e4e89SAndroid Build Coastguard Worker MACVLAN_MACADDR_FLUSH, 408*de1e4e89SAndroid Build Coastguard Worker MACVLAN_MACADDR_SET, 409*de1e4e89SAndroid Build Coastguard Worker }; 410*de1e4e89SAndroid Build Coastguard Worker 411*de1e4e89SAndroid Build Coastguard Worker #define MACVLAN_FLAG_NOPROMISC 1 412*de1e4e89SAndroid Build Coastguard Worker 413*de1e4e89SAndroid Build Coastguard Worker /* VRF section */ 414*de1e4e89SAndroid Build Coastguard Worker enum { 415*de1e4e89SAndroid Build Coastguard Worker IFLA_VRF_UNSPEC, 416*de1e4e89SAndroid Build Coastguard Worker IFLA_VRF_TABLE, 417*de1e4e89SAndroid Build Coastguard Worker __IFLA_VRF_MAX 418*de1e4e89SAndroid Build Coastguard Worker }; 419*de1e4e89SAndroid Build Coastguard Worker 420*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1) 421*de1e4e89SAndroid Build Coastguard Worker 422*de1e4e89SAndroid Build Coastguard Worker enum { 423*de1e4e89SAndroid Build Coastguard Worker IFLA_VRF_PORT_UNSPEC, 424*de1e4e89SAndroid Build Coastguard Worker IFLA_VRF_PORT_TABLE, 425*de1e4e89SAndroid Build Coastguard Worker __IFLA_VRF_PORT_MAX 426*de1e4e89SAndroid Build Coastguard Worker }; 427*de1e4e89SAndroid Build Coastguard Worker 428*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1) 429*de1e4e89SAndroid Build Coastguard Worker 430*de1e4e89SAndroid Build Coastguard Worker /* MACSEC section */ 431*de1e4e89SAndroid Build Coastguard Worker enum { 432*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_UNSPEC, 433*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_SCI, 434*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_PORT, 435*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_ICV_LEN, 436*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_CIPHER_SUITE, 437*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_WINDOW, 438*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_ENCODING_SA, 439*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_ENCRYPT, 440*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_PROTECT, 441*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_INC_SCI, 442*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_ES, 443*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_SCB, 444*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_REPLAY_PROTECT, 445*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_VALIDATION, 446*de1e4e89SAndroid Build Coastguard Worker IFLA_MACSEC_PAD, 447*de1e4e89SAndroid Build Coastguard Worker __IFLA_MACSEC_MAX, 448*de1e4e89SAndroid Build Coastguard Worker }; 449*de1e4e89SAndroid Build Coastguard Worker 450*de1e4e89SAndroid Build Coastguard Worker #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) 451*de1e4e89SAndroid Build Coastguard Worker 452*de1e4e89SAndroid Build Coastguard Worker enum macsec_validation_type { 453*de1e4e89SAndroid Build Coastguard Worker MACSEC_VALIDATE_DISABLED = 0, 454*de1e4e89SAndroid Build Coastguard Worker MACSEC_VALIDATE_CHECK = 1, 455*de1e4e89SAndroid Build Coastguard Worker MACSEC_VALIDATE_STRICT = 2, 456*de1e4e89SAndroid Build Coastguard Worker __MACSEC_VALIDATE_END, 457*de1e4e89SAndroid Build Coastguard Worker MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1, 458*de1e4e89SAndroid Build Coastguard Worker }; 459*de1e4e89SAndroid Build Coastguard Worker 460*de1e4e89SAndroid Build Coastguard Worker /* IPVLAN section */ 461*de1e4e89SAndroid Build Coastguard Worker enum { 462*de1e4e89SAndroid Build Coastguard Worker IFLA_IPVLAN_UNSPEC, 463*de1e4e89SAndroid Build Coastguard Worker IFLA_IPVLAN_MODE, 464*de1e4e89SAndroid Build Coastguard Worker __IFLA_IPVLAN_MAX 465*de1e4e89SAndroid Build Coastguard Worker }; 466*de1e4e89SAndroid Build Coastguard Worker 467*de1e4e89SAndroid Build Coastguard Worker #define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1) 468*de1e4e89SAndroid Build Coastguard Worker 469*de1e4e89SAndroid Build Coastguard Worker enum ipvlan_mode { 470*de1e4e89SAndroid Build Coastguard Worker IPVLAN_MODE_L2 = 0, 471*de1e4e89SAndroid Build Coastguard Worker IPVLAN_MODE_L3, 472*de1e4e89SAndroid Build Coastguard Worker IPVLAN_MODE_L3S, 473*de1e4e89SAndroid Build Coastguard Worker IPVLAN_MODE_MAX 474*de1e4e89SAndroid Build Coastguard Worker }; 475*de1e4e89SAndroid Build Coastguard Worker 476*de1e4e89SAndroid Build Coastguard Worker /* VXLAN section */ 477*de1e4e89SAndroid Build Coastguard Worker enum { 478*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_UNSPEC, 479*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_ID, 480*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_GROUP, /* group or remote address */ 481*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_LINK, 482*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_LOCAL, 483*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_TTL, 484*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_TOS, 485*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_LEARNING, 486*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_AGEING, 487*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_LIMIT, 488*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_PORT_RANGE, /* source port */ 489*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_PROXY, 490*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_RSC, 491*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_L2MISS, 492*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_L3MISS, 493*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_PORT, /* destination port */ 494*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_GROUP6, 495*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_LOCAL6, 496*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_UDP_CSUM, 497*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_UDP_ZERO_CSUM6_TX, 498*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_UDP_ZERO_CSUM6_RX, 499*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_REMCSUM_TX, 500*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_REMCSUM_RX, 501*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_GBP, 502*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_REMCSUM_NOPARTIAL, 503*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_COLLECT_METADATA, 504*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_LABEL, 505*de1e4e89SAndroid Build Coastguard Worker IFLA_VXLAN_GPE, 506*de1e4e89SAndroid Build Coastguard Worker __IFLA_VXLAN_MAX 507*de1e4e89SAndroid Build Coastguard Worker }; 508*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) 509*de1e4e89SAndroid Build Coastguard Worker 510*de1e4e89SAndroid Build Coastguard Worker struct ifla_vxlan_port_range { 511*de1e4e89SAndroid Build Coastguard Worker __be16 low; 512*de1e4e89SAndroid Build Coastguard Worker __be16 high; 513*de1e4e89SAndroid Build Coastguard Worker }; 514*de1e4e89SAndroid Build Coastguard Worker 515*de1e4e89SAndroid Build Coastguard Worker /* GENEVE section */ 516*de1e4e89SAndroid Build Coastguard Worker enum { 517*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_UNSPEC, 518*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_ID, 519*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_REMOTE, 520*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_TTL, 521*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_TOS, 522*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_PORT, /* destination port */ 523*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_COLLECT_METADATA, 524*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_REMOTE6, 525*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_UDP_CSUM, 526*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_UDP_ZERO_CSUM6_TX, 527*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_UDP_ZERO_CSUM6_RX, 528*de1e4e89SAndroid Build Coastguard Worker IFLA_GENEVE_LABEL, 529*de1e4e89SAndroid Build Coastguard Worker __IFLA_GENEVE_MAX 530*de1e4e89SAndroid Build Coastguard Worker }; 531*de1e4e89SAndroid Build Coastguard Worker #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) 532*de1e4e89SAndroid Build Coastguard Worker 533*de1e4e89SAndroid Build Coastguard Worker /* PPP section */ 534*de1e4e89SAndroid Build Coastguard Worker enum { 535*de1e4e89SAndroid Build Coastguard Worker IFLA_PPP_UNSPEC, 536*de1e4e89SAndroid Build Coastguard Worker IFLA_PPP_DEV_FD, 537*de1e4e89SAndroid Build Coastguard Worker __IFLA_PPP_MAX 538*de1e4e89SAndroid Build Coastguard Worker }; 539*de1e4e89SAndroid Build Coastguard Worker #define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1) 540*de1e4e89SAndroid Build Coastguard Worker 541*de1e4e89SAndroid Build Coastguard Worker /* GTP section */ 542*de1e4e89SAndroid Build Coastguard Worker 543*de1e4e89SAndroid Build Coastguard Worker enum ifla_gtp_role { 544*de1e4e89SAndroid Build Coastguard Worker GTP_ROLE_GGSN = 0, 545*de1e4e89SAndroid Build Coastguard Worker GTP_ROLE_SGSN, 546*de1e4e89SAndroid Build Coastguard Worker }; 547*de1e4e89SAndroid Build Coastguard Worker 548*de1e4e89SAndroid Build Coastguard Worker enum { 549*de1e4e89SAndroid Build Coastguard Worker IFLA_GTP_UNSPEC, 550*de1e4e89SAndroid Build Coastguard Worker IFLA_GTP_FD0, 551*de1e4e89SAndroid Build Coastguard Worker IFLA_GTP_FD1, 552*de1e4e89SAndroid Build Coastguard Worker IFLA_GTP_PDP_HASHSIZE, 553*de1e4e89SAndroid Build Coastguard Worker IFLA_GTP_ROLE, 554*de1e4e89SAndroid Build Coastguard Worker __IFLA_GTP_MAX, 555*de1e4e89SAndroid Build Coastguard Worker }; 556*de1e4e89SAndroid Build Coastguard Worker #define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1) 557*de1e4e89SAndroid Build Coastguard Worker 558*de1e4e89SAndroid Build Coastguard Worker /* Bonding section */ 559*de1e4e89SAndroid Build Coastguard Worker 560*de1e4e89SAndroid Build Coastguard Worker enum { 561*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_UNSPEC, 562*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_MODE, 563*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_ACTIVE_SLAVE, 564*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_MIIMON, 565*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_UPDELAY, 566*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_DOWNDELAY, 567*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_USE_CARRIER, 568*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_ARP_INTERVAL, 569*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_ARP_IP_TARGET, 570*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_ARP_VALIDATE, 571*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_ARP_ALL_TARGETS, 572*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_PRIMARY, 573*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_PRIMARY_RESELECT, 574*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_FAIL_OVER_MAC, 575*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_XMIT_HASH_POLICY, 576*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_RESEND_IGMP, 577*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_NUM_PEER_NOTIF, 578*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_ALL_SLAVES_ACTIVE, 579*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_MIN_LINKS, 580*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_LP_INTERVAL, 581*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_PACKETS_PER_SLAVE, 582*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_LACP_RATE, 583*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_SELECT, 584*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO, 585*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_ACTOR_SYS_PRIO, 586*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_USER_PORT_KEY, 587*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_ACTOR_SYSTEM, 588*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_TLB_DYNAMIC_LB, 589*de1e4e89SAndroid Build Coastguard Worker __IFLA_BOND_MAX, 590*de1e4e89SAndroid Build Coastguard Worker }; 591*de1e4e89SAndroid Build Coastguard Worker 592*de1e4e89SAndroid Build Coastguard Worker #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) 593*de1e4e89SAndroid Build Coastguard Worker 594*de1e4e89SAndroid Build Coastguard Worker enum { 595*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_UNSPEC, 596*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_AGGREGATOR, 597*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_NUM_PORTS, 598*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_ACTOR_KEY, 599*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_PARTNER_KEY, 600*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_PARTNER_MAC, 601*de1e4e89SAndroid Build Coastguard Worker __IFLA_BOND_AD_INFO_MAX, 602*de1e4e89SAndroid Build Coastguard Worker }; 603*de1e4e89SAndroid Build Coastguard Worker 604*de1e4e89SAndroid Build Coastguard Worker #define IFLA_BOND_AD_INFO_MAX (__IFLA_BOND_AD_INFO_MAX - 1) 605*de1e4e89SAndroid Build Coastguard Worker 606*de1e4e89SAndroid Build Coastguard Worker enum { 607*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_UNSPEC, 608*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_STATE, 609*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_MII_STATUS, 610*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_LINK_FAILURE_COUNT, 611*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_PERM_HWADDR, 612*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_QUEUE_ID, 613*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_AD_AGGREGATOR_ID, 614*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE, 615*de1e4e89SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE, 616*de1e4e89SAndroid Build Coastguard Worker __IFLA_BOND_SLAVE_MAX, 617*de1e4e89SAndroid Build Coastguard Worker }; 618*de1e4e89SAndroid Build Coastguard Worker 619*de1e4e89SAndroid Build Coastguard Worker #define IFLA_BOND_SLAVE_MAX (__IFLA_BOND_SLAVE_MAX - 1) 620*de1e4e89SAndroid Build Coastguard Worker 621*de1e4e89SAndroid Build Coastguard Worker /* SR-IOV virtual function management section */ 622*de1e4e89SAndroid Build Coastguard Worker 623*de1e4e89SAndroid Build Coastguard Worker enum { 624*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_INFO_UNSPEC, 625*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_INFO, 626*de1e4e89SAndroid Build Coastguard Worker __IFLA_VF_INFO_MAX, 627*de1e4e89SAndroid Build Coastguard Worker }; 628*de1e4e89SAndroid Build Coastguard Worker 629*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1) 630*de1e4e89SAndroid Build Coastguard Worker 631*de1e4e89SAndroid Build Coastguard Worker enum { 632*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_UNSPEC, 633*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_MAC, /* Hardware queue specific attributes */ 634*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_VLAN, /* VLAN ID and QoS */ 635*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_TX_RATE, /* Max TX Bandwidth Allocation */ 636*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */ 637*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */ 638*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_RATE, /* Min and Max TX Bandwidth Allocation */ 639*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_RSS_QUERY_EN, /* RSS Redirection Table and Hash Key query 640*de1e4e89SAndroid Build Coastguard Worker * on/off switch 641*de1e4e89SAndroid Build Coastguard Worker */ 642*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_STATS, /* network device statistics */ 643*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_TRUST, /* Trust VF */ 644*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */ 645*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */ 646*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_VLAN_LIST, /* nested list of vlans, option for QinQ */ 647*de1e4e89SAndroid Build Coastguard Worker __IFLA_VF_MAX, 648*de1e4e89SAndroid Build Coastguard Worker }; 649*de1e4e89SAndroid Build Coastguard Worker 650*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VF_MAX (__IFLA_VF_MAX - 1) 651*de1e4e89SAndroid Build Coastguard Worker 652*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_mac { 653*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 654*de1e4e89SAndroid Build Coastguard Worker __u8 mac[32]; /* MAX_ADDR_LEN */ 655*de1e4e89SAndroid Build Coastguard Worker }; 656*de1e4e89SAndroid Build Coastguard Worker 657*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_vlan { 658*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 659*de1e4e89SAndroid Build Coastguard Worker __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ 660*de1e4e89SAndroid Build Coastguard Worker __u32 qos; 661*de1e4e89SAndroid Build Coastguard Worker }; 662*de1e4e89SAndroid Build Coastguard Worker 663*de1e4e89SAndroid Build Coastguard Worker enum { 664*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_VLAN_INFO_UNSPEC, 665*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_VLAN_INFO, /* VLAN ID, QoS and VLAN protocol */ 666*de1e4e89SAndroid Build Coastguard Worker __IFLA_VF_VLAN_INFO_MAX, 667*de1e4e89SAndroid Build Coastguard Worker }; 668*de1e4e89SAndroid Build Coastguard Worker 669*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VF_VLAN_INFO_MAX (__IFLA_VF_VLAN_INFO_MAX - 1) 670*de1e4e89SAndroid Build Coastguard Worker #define MAX_VLAN_LIST_LEN 1 671*de1e4e89SAndroid Build Coastguard Worker 672*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_vlan_info { 673*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 674*de1e4e89SAndroid Build Coastguard Worker __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ 675*de1e4e89SAndroid Build Coastguard Worker __u32 qos; 676*de1e4e89SAndroid Build Coastguard Worker __be16 vlan_proto; /* VLAN protocol either 802.1Q or 802.1ad */ 677*de1e4e89SAndroid Build Coastguard Worker }; 678*de1e4e89SAndroid Build Coastguard Worker 679*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_tx_rate { 680*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 681*de1e4e89SAndroid Build Coastguard Worker __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ 682*de1e4e89SAndroid Build Coastguard Worker }; 683*de1e4e89SAndroid Build Coastguard Worker 684*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_rate { 685*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 686*de1e4e89SAndroid Build Coastguard Worker __u32 min_tx_rate; /* Min Bandwidth in Mbps */ 687*de1e4e89SAndroid Build Coastguard Worker __u32 max_tx_rate; /* Max Bandwidth in Mbps */ 688*de1e4e89SAndroid Build Coastguard Worker }; 689*de1e4e89SAndroid Build Coastguard Worker 690*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_spoofchk { 691*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 692*de1e4e89SAndroid Build Coastguard Worker __u32 setting; 693*de1e4e89SAndroid Build Coastguard Worker }; 694*de1e4e89SAndroid Build Coastguard Worker 695*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_guid { 696*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 697*de1e4e89SAndroid Build Coastguard Worker __u64 guid; 698*de1e4e89SAndroid Build Coastguard Worker }; 699*de1e4e89SAndroid Build Coastguard Worker 700*de1e4e89SAndroid Build Coastguard Worker enum { 701*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_LINK_STATE_AUTO, /* link state of the uplink */ 702*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_LINK_STATE_ENABLE, /* link always up */ 703*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_LINK_STATE_DISABLE, /* link always down */ 704*de1e4e89SAndroid Build Coastguard Worker __IFLA_VF_LINK_STATE_MAX, 705*de1e4e89SAndroid Build Coastguard Worker }; 706*de1e4e89SAndroid Build Coastguard Worker 707*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_link_state { 708*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 709*de1e4e89SAndroid Build Coastguard Worker __u32 link_state; 710*de1e4e89SAndroid Build Coastguard Worker }; 711*de1e4e89SAndroid Build Coastguard Worker 712*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_rss_query_en { 713*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 714*de1e4e89SAndroid Build Coastguard Worker __u32 setting; 715*de1e4e89SAndroid Build Coastguard Worker }; 716*de1e4e89SAndroid Build Coastguard Worker 717*de1e4e89SAndroid Build Coastguard Worker enum { 718*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_STATS_RX_PACKETS, 719*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_STATS_TX_PACKETS, 720*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_STATS_RX_BYTES, 721*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_STATS_TX_BYTES, 722*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_STATS_BROADCAST, 723*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_STATS_MULTICAST, 724*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_STATS_PAD, 725*de1e4e89SAndroid Build Coastguard Worker __IFLA_VF_STATS_MAX, 726*de1e4e89SAndroid Build Coastguard Worker }; 727*de1e4e89SAndroid Build Coastguard Worker 728*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1) 729*de1e4e89SAndroid Build Coastguard Worker 730*de1e4e89SAndroid Build Coastguard Worker struct ifla_vf_trust { 731*de1e4e89SAndroid Build Coastguard Worker __u32 vf; 732*de1e4e89SAndroid Build Coastguard Worker __u32 setting; 733*de1e4e89SAndroid Build Coastguard Worker }; 734*de1e4e89SAndroid Build Coastguard Worker 735*de1e4e89SAndroid Build Coastguard Worker /* VF ports management section 736*de1e4e89SAndroid Build Coastguard Worker * 737*de1e4e89SAndroid Build Coastguard Worker * Nested layout of set/get msg is: 738*de1e4e89SAndroid Build Coastguard Worker * 739*de1e4e89SAndroid Build Coastguard Worker * [IFLA_NUM_VF] 740*de1e4e89SAndroid Build Coastguard Worker * [IFLA_VF_PORTS] 741*de1e4e89SAndroid Build Coastguard Worker * [IFLA_VF_PORT] 742*de1e4e89SAndroid Build Coastguard Worker * [IFLA_PORT_*], ... 743*de1e4e89SAndroid Build Coastguard Worker * [IFLA_VF_PORT] 744*de1e4e89SAndroid Build Coastguard Worker * [IFLA_PORT_*], ... 745*de1e4e89SAndroid Build Coastguard Worker * ... 746*de1e4e89SAndroid Build Coastguard Worker * [IFLA_PORT_SELF] 747*de1e4e89SAndroid Build Coastguard Worker * [IFLA_PORT_*], ... 748*de1e4e89SAndroid Build Coastguard Worker */ 749*de1e4e89SAndroid Build Coastguard Worker 750*de1e4e89SAndroid Build Coastguard Worker enum { 751*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_PORT_UNSPEC, 752*de1e4e89SAndroid Build Coastguard Worker IFLA_VF_PORT, /* nest */ 753*de1e4e89SAndroid Build Coastguard Worker __IFLA_VF_PORT_MAX, 754*de1e4e89SAndroid Build Coastguard Worker }; 755*de1e4e89SAndroid Build Coastguard Worker 756*de1e4e89SAndroid Build Coastguard Worker #define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1) 757*de1e4e89SAndroid Build Coastguard Worker 758*de1e4e89SAndroid Build Coastguard Worker enum { 759*de1e4e89SAndroid Build Coastguard Worker IFLA_PORT_UNSPEC, 760*de1e4e89SAndroid Build Coastguard Worker IFLA_PORT_VF, /* __u32 */ 761*de1e4e89SAndroid Build Coastguard Worker IFLA_PORT_PROFILE, /* string */ 762*de1e4e89SAndroid Build Coastguard Worker IFLA_PORT_VSI_TYPE, /* 802.1Qbg (pre-)standard VDP */ 763*de1e4e89SAndroid Build Coastguard Worker IFLA_PORT_INSTANCE_UUID, /* binary UUID */ 764*de1e4e89SAndroid Build Coastguard Worker IFLA_PORT_HOST_UUID, /* binary UUID */ 765*de1e4e89SAndroid Build Coastguard Worker IFLA_PORT_REQUEST, /* __u8 */ 766*de1e4e89SAndroid Build Coastguard Worker IFLA_PORT_RESPONSE, /* __u16, output only */ 767*de1e4e89SAndroid Build Coastguard Worker __IFLA_PORT_MAX, 768*de1e4e89SAndroid Build Coastguard Worker }; 769*de1e4e89SAndroid Build Coastguard Worker 770*de1e4e89SAndroid Build Coastguard Worker #define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1) 771*de1e4e89SAndroid Build Coastguard Worker 772*de1e4e89SAndroid Build Coastguard Worker #define PORT_PROFILE_MAX 40 773*de1e4e89SAndroid Build Coastguard Worker #define PORT_UUID_MAX 16 774*de1e4e89SAndroid Build Coastguard Worker #define PORT_SELF_VF -1 775*de1e4e89SAndroid Build Coastguard Worker 776*de1e4e89SAndroid Build Coastguard Worker enum { 777*de1e4e89SAndroid Build Coastguard Worker PORT_REQUEST_PREASSOCIATE = 0, 778*de1e4e89SAndroid Build Coastguard Worker PORT_REQUEST_PREASSOCIATE_RR, 779*de1e4e89SAndroid Build Coastguard Worker PORT_REQUEST_ASSOCIATE, 780*de1e4e89SAndroid Build Coastguard Worker PORT_REQUEST_DISASSOCIATE, 781*de1e4e89SAndroid Build Coastguard Worker }; 782*de1e4e89SAndroid Build Coastguard Worker 783*de1e4e89SAndroid Build Coastguard Worker enum { 784*de1e4e89SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_SUCCESS = 0, 785*de1e4e89SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_INVALID_FORMAT, 786*de1e4e89SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES, 787*de1e4e89SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_UNUSED_VTID, 788*de1e4e89SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_VTID_VIOLATION, 789*de1e4e89SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION, 790*de1e4e89SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_OUT_OF_SYNC, 791*de1e4e89SAndroid Build Coastguard Worker /* 0x08-0xFF reserved for future VDP use */ 792*de1e4e89SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_SUCCESS = 0x100, 793*de1e4e89SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_INPROGRESS, 794*de1e4e89SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_INVALID, 795*de1e4e89SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_BADSTATE, 796*de1e4e89SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES, 797*de1e4e89SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_ERROR, 798*de1e4e89SAndroid Build Coastguard Worker }; 799*de1e4e89SAndroid Build Coastguard Worker 800*de1e4e89SAndroid Build Coastguard Worker struct ifla_port_vsi { 801*de1e4e89SAndroid Build Coastguard Worker __u8 vsi_mgr_id; 802*de1e4e89SAndroid Build Coastguard Worker __u8 vsi_type_id[3]; 803*de1e4e89SAndroid Build Coastguard Worker __u8 vsi_type_version; 804*de1e4e89SAndroid Build Coastguard Worker __u8 pad[3]; 805*de1e4e89SAndroid Build Coastguard Worker }; 806*de1e4e89SAndroid Build Coastguard Worker 807*de1e4e89SAndroid Build Coastguard Worker 808*de1e4e89SAndroid Build Coastguard Worker /* IPoIB section */ 809*de1e4e89SAndroid Build Coastguard Worker 810*de1e4e89SAndroid Build Coastguard Worker enum { 811*de1e4e89SAndroid Build Coastguard Worker IFLA_IPOIB_UNSPEC, 812*de1e4e89SAndroid Build Coastguard Worker IFLA_IPOIB_PKEY, 813*de1e4e89SAndroid Build Coastguard Worker IFLA_IPOIB_MODE, 814*de1e4e89SAndroid Build Coastguard Worker IFLA_IPOIB_UMCAST, 815*de1e4e89SAndroid Build Coastguard Worker __IFLA_IPOIB_MAX 816*de1e4e89SAndroid Build Coastguard Worker }; 817*de1e4e89SAndroid Build Coastguard Worker 818*de1e4e89SAndroid Build Coastguard Worker enum { 819*de1e4e89SAndroid Build Coastguard Worker IPOIB_MODE_DATAGRAM = 0, /* using unreliable datagram QPs */ 820*de1e4e89SAndroid Build Coastguard Worker IPOIB_MODE_CONNECTED = 1, /* using connected QPs */ 821*de1e4e89SAndroid Build Coastguard Worker }; 822*de1e4e89SAndroid Build Coastguard Worker 823*de1e4e89SAndroid Build Coastguard Worker #define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1) 824*de1e4e89SAndroid Build Coastguard Worker 825*de1e4e89SAndroid Build Coastguard Worker 826*de1e4e89SAndroid Build Coastguard Worker /* HSR section */ 827*de1e4e89SAndroid Build Coastguard Worker 828*de1e4e89SAndroid Build Coastguard Worker enum { 829*de1e4e89SAndroid Build Coastguard Worker IFLA_HSR_UNSPEC, 830*de1e4e89SAndroid Build Coastguard Worker IFLA_HSR_SLAVE1, 831*de1e4e89SAndroid Build Coastguard Worker IFLA_HSR_SLAVE2, 832*de1e4e89SAndroid Build Coastguard Worker IFLA_HSR_MULTICAST_SPEC, /* Last byte of supervision addr */ 833*de1e4e89SAndroid Build Coastguard Worker IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */ 834*de1e4e89SAndroid Build Coastguard Worker IFLA_HSR_SEQ_NR, 835*de1e4e89SAndroid Build Coastguard Worker IFLA_HSR_VERSION, /* HSR version */ 836*de1e4e89SAndroid Build Coastguard Worker __IFLA_HSR_MAX, 837*de1e4e89SAndroid Build Coastguard Worker }; 838*de1e4e89SAndroid Build Coastguard Worker 839*de1e4e89SAndroid Build Coastguard Worker #define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1) 840*de1e4e89SAndroid Build Coastguard Worker 841*de1e4e89SAndroid Build Coastguard Worker /* STATS section */ 842*de1e4e89SAndroid Build Coastguard Worker 843*de1e4e89SAndroid Build Coastguard Worker struct if_stats_msg { 844*de1e4e89SAndroid Build Coastguard Worker __u8 family; 845*de1e4e89SAndroid Build Coastguard Worker __u8 pad1; 846*de1e4e89SAndroid Build Coastguard Worker __u16 pad2; 847*de1e4e89SAndroid Build Coastguard Worker __u32 ifindex; 848*de1e4e89SAndroid Build Coastguard Worker __u32 filter_mask; 849*de1e4e89SAndroid Build Coastguard Worker }; 850*de1e4e89SAndroid Build Coastguard Worker 851*de1e4e89SAndroid Build Coastguard Worker /* A stats attribute can be netdev specific or a global stat. 852*de1e4e89SAndroid Build Coastguard Worker * For netdev stats, lets use the prefix IFLA_STATS_LINK_* 853*de1e4e89SAndroid Build Coastguard Worker */ 854*de1e4e89SAndroid Build Coastguard Worker enum { 855*de1e4e89SAndroid Build Coastguard Worker IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */ 856*de1e4e89SAndroid Build Coastguard Worker IFLA_STATS_LINK_64, 857*de1e4e89SAndroid Build Coastguard Worker IFLA_STATS_LINK_XSTATS, 858*de1e4e89SAndroid Build Coastguard Worker IFLA_STATS_LINK_XSTATS_SLAVE, 859*de1e4e89SAndroid Build Coastguard Worker IFLA_STATS_LINK_OFFLOAD_XSTATS, 860*de1e4e89SAndroid Build Coastguard Worker IFLA_STATS_AF_SPEC, 861*de1e4e89SAndroid Build Coastguard Worker __IFLA_STATS_MAX, 862*de1e4e89SAndroid Build Coastguard Worker }; 863*de1e4e89SAndroid Build Coastguard Worker 864*de1e4e89SAndroid Build Coastguard Worker #define IFLA_STATS_MAX (__IFLA_STATS_MAX - 1) 865*de1e4e89SAndroid Build Coastguard Worker 866*de1e4e89SAndroid Build Coastguard Worker #define IFLA_STATS_FILTER_BIT(ATTR) (1 << (ATTR - 1)) 867*de1e4e89SAndroid Build Coastguard Worker 868*de1e4e89SAndroid Build Coastguard Worker /* These are embedded into IFLA_STATS_LINK_XSTATS: 869*de1e4e89SAndroid Build Coastguard Worker * [IFLA_STATS_LINK_XSTATS] 870*de1e4e89SAndroid Build Coastguard Worker * -> [LINK_XSTATS_TYPE_xxx] 871*de1e4e89SAndroid Build Coastguard Worker * -> [rtnl link type specific attributes] 872*de1e4e89SAndroid Build Coastguard Worker */ 873*de1e4e89SAndroid Build Coastguard Worker enum { 874*de1e4e89SAndroid Build Coastguard Worker LINK_XSTATS_TYPE_UNSPEC, 875*de1e4e89SAndroid Build Coastguard Worker LINK_XSTATS_TYPE_BRIDGE, 876*de1e4e89SAndroid Build Coastguard Worker __LINK_XSTATS_TYPE_MAX 877*de1e4e89SAndroid Build Coastguard Worker }; 878*de1e4e89SAndroid Build Coastguard Worker #define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1) 879*de1e4e89SAndroid Build Coastguard Worker 880*de1e4e89SAndroid Build Coastguard Worker /* These are stats embedded into IFLA_STATS_LINK_OFFLOAD_XSTATS */ 881*de1e4e89SAndroid Build Coastguard Worker enum { 882*de1e4e89SAndroid Build Coastguard Worker IFLA_OFFLOAD_XSTATS_UNSPEC, 883*de1e4e89SAndroid Build Coastguard Worker IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */ 884*de1e4e89SAndroid Build Coastguard Worker __IFLA_OFFLOAD_XSTATS_MAX 885*de1e4e89SAndroid Build Coastguard Worker }; 886*de1e4e89SAndroid Build Coastguard Worker #define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1) 887*de1e4e89SAndroid Build Coastguard Worker 888*de1e4e89SAndroid Build Coastguard Worker /* XDP section */ 889*de1e4e89SAndroid Build Coastguard Worker 890*de1e4e89SAndroid Build Coastguard Worker #define XDP_FLAGS_UPDATE_IF_NOEXIST (1U << 0) 891*de1e4e89SAndroid Build Coastguard Worker #define XDP_FLAGS_SKB_MODE (1U << 1) 892*de1e4e89SAndroid Build Coastguard Worker #define XDP_FLAGS_DRV_MODE (1U << 2) 893*de1e4e89SAndroid Build Coastguard Worker #define XDP_FLAGS_HW_MODE (1U << 3) 894*de1e4e89SAndroid Build Coastguard Worker #define XDP_FLAGS_MODES (XDP_FLAGS_SKB_MODE | \ 895*de1e4e89SAndroid Build Coastguard Worker XDP_FLAGS_DRV_MODE | \ 896*de1e4e89SAndroid Build Coastguard Worker XDP_FLAGS_HW_MODE) 897*de1e4e89SAndroid Build Coastguard Worker #define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST | \ 898*de1e4e89SAndroid Build Coastguard Worker XDP_FLAGS_MODES) 899*de1e4e89SAndroid Build Coastguard Worker 900*de1e4e89SAndroid Build Coastguard Worker /* These are stored into IFLA_XDP_ATTACHED on dump. */ 901*de1e4e89SAndroid Build Coastguard Worker enum { 902*de1e4e89SAndroid Build Coastguard Worker XDP_ATTACHED_NONE = 0, 903*de1e4e89SAndroid Build Coastguard Worker XDP_ATTACHED_DRV, 904*de1e4e89SAndroid Build Coastguard Worker XDP_ATTACHED_SKB, 905*de1e4e89SAndroid Build Coastguard Worker XDP_ATTACHED_HW, 906*de1e4e89SAndroid Build Coastguard Worker }; 907*de1e4e89SAndroid Build Coastguard Worker 908*de1e4e89SAndroid Build Coastguard Worker enum { 909*de1e4e89SAndroid Build Coastguard Worker IFLA_XDP_UNSPEC, 910*de1e4e89SAndroid Build Coastguard Worker IFLA_XDP_FD, 911*de1e4e89SAndroid Build Coastguard Worker IFLA_XDP_ATTACHED, 912*de1e4e89SAndroid Build Coastguard Worker IFLA_XDP_FLAGS, 913*de1e4e89SAndroid Build Coastguard Worker IFLA_XDP_PROG_ID, 914*de1e4e89SAndroid Build Coastguard Worker __IFLA_XDP_MAX, 915*de1e4e89SAndroid Build Coastguard Worker }; 916*de1e4e89SAndroid Build Coastguard Worker 917*de1e4e89SAndroid Build Coastguard Worker #define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1) 918*de1e4e89SAndroid Build Coastguard Worker 919*de1e4e89SAndroid Build Coastguard Worker enum { 920*de1e4e89SAndroid Build Coastguard Worker IFLA_EVENT_NONE, 921*de1e4e89SAndroid Build Coastguard Worker IFLA_EVENT_REBOOT, /* internal reset / reboot */ 922*de1e4e89SAndroid Build Coastguard Worker IFLA_EVENT_FEATURES, /* change in offload features */ 923*de1e4e89SAndroid Build Coastguard Worker IFLA_EVENT_BONDING_FAILOVER, /* change in active slave */ 924*de1e4e89SAndroid Build Coastguard Worker IFLA_EVENT_NOTIFY_PEERS, /* re-sent grat. arp/ndisc */ 925*de1e4e89SAndroid Build Coastguard Worker IFLA_EVENT_IGMP_RESEND, /* re-sent IGMP JOIN */ 926*de1e4e89SAndroid Build Coastguard Worker IFLA_EVENT_BONDING_OPTIONS, /* change in bonding options */ 927*de1e4e89SAndroid Build Coastguard Worker }; 928*de1e4e89SAndroid Build Coastguard Worker 929*de1e4e89SAndroid Build Coastguard Worker #endif /* _LINUX_IF_LINK_H */ 930