1*858ea5e5SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*858ea5e5SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_IF_LINK_H 3*858ea5e5SAndroid Build Coastguard Worker #define _UAPI_LINUX_IF_LINK_H 4*858ea5e5SAndroid Build Coastguard Worker 5*858ea5e5SAndroid Build Coastguard Worker #include <linux/types.h> 6*858ea5e5SAndroid Build Coastguard Worker #include <linux/netlink.h> 7*858ea5e5SAndroid Build Coastguard Worker 8*858ea5e5SAndroid Build Coastguard Worker /* This struct should be in sync with struct rtnl_link_stats64 */ 9*858ea5e5SAndroid Build Coastguard Worker struct rtnl_link_stats { 10*858ea5e5SAndroid Build Coastguard Worker __u32 rx_packets; 11*858ea5e5SAndroid Build Coastguard Worker __u32 tx_packets; 12*858ea5e5SAndroid Build Coastguard Worker __u32 rx_bytes; 13*858ea5e5SAndroid Build Coastguard Worker __u32 tx_bytes; 14*858ea5e5SAndroid Build Coastguard Worker __u32 rx_errors; 15*858ea5e5SAndroid Build Coastguard Worker __u32 tx_errors; 16*858ea5e5SAndroid Build Coastguard Worker __u32 rx_dropped; 17*858ea5e5SAndroid Build Coastguard Worker __u32 tx_dropped; 18*858ea5e5SAndroid Build Coastguard Worker __u32 multicast; 19*858ea5e5SAndroid Build Coastguard Worker __u32 collisions; 20*858ea5e5SAndroid Build Coastguard Worker /* detailed rx_errors: */ 21*858ea5e5SAndroid Build Coastguard Worker __u32 rx_length_errors; 22*858ea5e5SAndroid Build Coastguard Worker __u32 rx_over_errors; 23*858ea5e5SAndroid Build Coastguard Worker __u32 rx_crc_errors; 24*858ea5e5SAndroid Build Coastguard Worker __u32 rx_frame_errors; 25*858ea5e5SAndroid Build Coastguard Worker __u32 rx_fifo_errors; 26*858ea5e5SAndroid Build Coastguard Worker __u32 rx_missed_errors; 27*858ea5e5SAndroid Build Coastguard Worker 28*858ea5e5SAndroid Build Coastguard Worker /* detailed tx_errors */ 29*858ea5e5SAndroid Build Coastguard Worker __u32 tx_aborted_errors; 30*858ea5e5SAndroid Build Coastguard Worker __u32 tx_carrier_errors; 31*858ea5e5SAndroid Build Coastguard Worker __u32 tx_fifo_errors; 32*858ea5e5SAndroid Build Coastguard Worker __u32 tx_heartbeat_errors; 33*858ea5e5SAndroid Build Coastguard Worker __u32 tx_window_errors; 34*858ea5e5SAndroid Build Coastguard Worker 35*858ea5e5SAndroid Build Coastguard Worker /* for cslip etc */ 36*858ea5e5SAndroid Build Coastguard Worker __u32 rx_compressed; 37*858ea5e5SAndroid Build Coastguard Worker __u32 tx_compressed; 38*858ea5e5SAndroid Build Coastguard Worker 39*858ea5e5SAndroid Build Coastguard Worker __u32 rx_nohandler; 40*858ea5e5SAndroid Build Coastguard Worker }; 41*858ea5e5SAndroid Build Coastguard Worker 42*858ea5e5SAndroid Build Coastguard Worker /** 43*858ea5e5SAndroid Build Coastguard Worker * struct rtnl_link_stats64 - The main device statistics structure. 44*858ea5e5SAndroid Build Coastguard Worker * 45*858ea5e5SAndroid Build Coastguard Worker * @rx_packets: Number of good packets received by the interface. 46*858ea5e5SAndroid Build Coastguard Worker * For hardware interfaces counts all good packets received from the device 47*858ea5e5SAndroid Build Coastguard Worker * by the host, including packets which host had to drop at various stages 48*858ea5e5SAndroid Build Coastguard Worker * of processing (even in the driver). 49*858ea5e5SAndroid Build Coastguard Worker * 50*858ea5e5SAndroid Build Coastguard Worker * @tx_packets: Number of packets successfully transmitted. 51*858ea5e5SAndroid Build Coastguard Worker * For hardware interfaces counts packets which host was able to successfully 52*858ea5e5SAndroid Build Coastguard Worker * hand over to the device, which does not necessarily mean that packets 53*858ea5e5SAndroid Build Coastguard Worker * had been successfully transmitted out of the device, only that device 54*858ea5e5SAndroid Build Coastguard Worker * acknowledged it copied them out of host memory. 55*858ea5e5SAndroid Build Coastguard Worker * 56*858ea5e5SAndroid Build Coastguard Worker * @rx_bytes: Number of good received bytes, corresponding to @rx_packets. 57*858ea5e5SAndroid Build Coastguard Worker * 58*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices should count the length of Ethernet Frames 59*858ea5e5SAndroid Build Coastguard Worker * excluding the FCS. 60*858ea5e5SAndroid Build Coastguard Worker * 61*858ea5e5SAndroid Build Coastguard Worker * @tx_bytes: Number of good transmitted bytes, corresponding to @tx_packets. 62*858ea5e5SAndroid Build Coastguard Worker * 63*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices should count the length of Ethernet Frames 64*858ea5e5SAndroid Build Coastguard Worker * excluding the FCS. 65*858ea5e5SAndroid Build Coastguard Worker * 66*858ea5e5SAndroid Build Coastguard Worker * @rx_errors: Total number of bad packets received on this network device. 67*858ea5e5SAndroid Build Coastguard Worker * This counter must include events counted by @rx_length_errors, 68*858ea5e5SAndroid Build Coastguard Worker * @rx_crc_errors, @rx_frame_errors and other errors not otherwise 69*858ea5e5SAndroid Build Coastguard Worker * counted. 70*858ea5e5SAndroid Build Coastguard Worker * 71*858ea5e5SAndroid Build Coastguard Worker * @tx_errors: Total number of transmit problems. 72*858ea5e5SAndroid Build Coastguard Worker * This counter must include events counter by @tx_aborted_errors, 73*858ea5e5SAndroid Build Coastguard Worker * @tx_carrier_errors, @tx_fifo_errors, @tx_heartbeat_errors, 74*858ea5e5SAndroid Build Coastguard Worker * @tx_window_errors and other errors not otherwise counted. 75*858ea5e5SAndroid Build Coastguard Worker * 76*858ea5e5SAndroid Build Coastguard Worker * @rx_dropped: Number of packets received but not processed, 77*858ea5e5SAndroid Build Coastguard Worker * e.g. due to lack of resources or unsupported protocol. 78*858ea5e5SAndroid Build Coastguard Worker * For hardware interfaces this counter may include packets discarded 79*858ea5e5SAndroid Build Coastguard Worker * due to L2 address filtering but should not include packets dropped 80*858ea5e5SAndroid Build Coastguard Worker * by the device due to buffer exhaustion which are counted separately in 81*858ea5e5SAndroid Build Coastguard Worker * @rx_missed_errors (since procfs folds those two counters together). 82*858ea5e5SAndroid Build Coastguard Worker * 83*858ea5e5SAndroid Build Coastguard Worker * @tx_dropped: Number of packets dropped on their way to transmission, 84*858ea5e5SAndroid Build Coastguard Worker * e.g. due to lack of resources. 85*858ea5e5SAndroid Build Coastguard Worker * 86*858ea5e5SAndroid Build Coastguard Worker * @multicast: Multicast packets received. 87*858ea5e5SAndroid Build Coastguard Worker * For hardware interfaces this statistic is commonly calculated 88*858ea5e5SAndroid Build Coastguard Worker * at the device level (unlike @rx_packets) and therefore may include 89*858ea5e5SAndroid Build Coastguard Worker * packets which did not reach the host. 90*858ea5e5SAndroid Build Coastguard Worker * 91*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices this counter may be equivalent to: 92*858ea5e5SAndroid Build Coastguard Worker * 93*858ea5e5SAndroid Build Coastguard Worker * - 30.3.1.1.21 aMulticastFramesReceivedOK 94*858ea5e5SAndroid Build Coastguard Worker * 95*858ea5e5SAndroid Build Coastguard Worker * @collisions: Number of collisions during packet transmissions. 96*858ea5e5SAndroid Build Coastguard Worker * 97*858ea5e5SAndroid Build Coastguard Worker * @rx_length_errors: Number of packets dropped due to invalid length. 98*858ea5e5SAndroid Build Coastguard Worker * Part of aggregate "frame" errors in `/proc/net/dev`. 99*858ea5e5SAndroid Build Coastguard Worker * 100*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices this counter should be equivalent to a sum 101*858ea5e5SAndroid Build Coastguard Worker * of the following attributes: 102*858ea5e5SAndroid Build Coastguard Worker * 103*858ea5e5SAndroid Build Coastguard Worker * - 30.3.1.1.23 aInRangeLengthErrors 104*858ea5e5SAndroid Build Coastguard Worker * - 30.3.1.1.24 aOutOfRangeLengthField 105*858ea5e5SAndroid Build Coastguard Worker * - 30.3.1.1.25 aFrameTooLongErrors 106*858ea5e5SAndroid Build Coastguard Worker * 107*858ea5e5SAndroid Build Coastguard Worker * @rx_over_errors: Receiver FIFO overflow event counter. 108*858ea5e5SAndroid Build Coastguard Worker * 109*858ea5e5SAndroid Build Coastguard Worker * Historically the count of overflow events. Such events may be 110*858ea5e5SAndroid Build Coastguard Worker * reported in the receive descriptors or via interrupts, and may 111*858ea5e5SAndroid Build Coastguard Worker * not correspond one-to-one with dropped packets. 112*858ea5e5SAndroid Build Coastguard Worker * 113*858ea5e5SAndroid Build Coastguard Worker * The recommended interpretation for high speed interfaces is - 114*858ea5e5SAndroid Build Coastguard Worker * number of packets dropped because they did not fit into buffers 115*858ea5e5SAndroid Build Coastguard Worker * provided by the host, e.g. packets larger than MTU or next buffer 116*858ea5e5SAndroid Build Coastguard Worker * in the ring was not available for a scatter transfer. 117*858ea5e5SAndroid Build Coastguard Worker * 118*858ea5e5SAndroid Build Coastguard Worker * Part of aggregate "frame" errors in `/proc/net/dev`. 119*858ea5e5SAndroid Build Coastguard Worker * 120*858ea5e5SAndroid Build Coastguard Worker * This statistics was historically used interchangeably with 121*858ea5e5SAndroid Build Coastguard Worker * @rx_fifo_errors. 122*858ea5e5SAndroid Build Coastguard Worker * 123*858ea5e5SAndroid Build Coastguard Worker * This statistic corresponds to hardware events and is not commonly used 124*858ea5e5SAndroid Build Coastguard Worker * on software devices. 125*858ea5e5SAndroid Build Coastguard Worker * 126*858ea5e5SAndroid Build Coastguard Worker * @rx_crc_errors: Number of packets received with a CRC error. 127*858ea5e5SAndroid Build Coastguard Worker * Part of aggregate "frame" errors in `/proc/net/dev`. 128*858ea5e5SAndroid Build Coastguard Worker * 129*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices this counter must be equivalent to: 130*858ea5e5SAndroid Build Coastguard Worker * 131*858ea5e5SAndroid Build Coastguard Worker * - 30.3.1.1.6 aFrameCheckSequenceErrors 132*858ea5e5SAndroid Build Coastguard Worker * 133*858ea5e5SAndroid Build Coastguard Worker * @rx_frame_errors: Receiver frame alignment errors. 134*858ea5e5SAndroid Build Coastguard Worker * Part of aggregate "frame" errors in `/proc/net/dev`. 135*858ea5e5SAndroid Build Coastguard Worker * 136*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices this counter should be equivalent to: 137*858ea5e5SAndroid Build Coastguard Worker * 138*858ea5e5SAndroid Build Coastguard Worker * - 30.3.1.1.7 aAlignmentErrors 139*858ea5e5SAndroid Build Coastguard Worker * 140*858ea5e5SAndroid Build Coastguard Worker * @rx_fifo_errors: Receiver FIFO error counter. 141*858ea5e5SAndroid Build Coastguard Worker * 142*858ea5e5SAndroid Build Coastguard Worker * Historically the count of overflow events. Those events may be 143*858ea5e5SAndroid Build Coastguard Worker * reported in the receive descriptors or via interrupts, and may 144*858ea5e5SAndroid Build Coastguard Worker * not correspond one-to-one with dropped packets. 145*858ea5e5SAndroid Build Coastguard Worker * 146*858ea5e5SAndroid Build Coastguard Worker * This statistics was used interchangeably with @rx_over_errors. 147*858ea5e5SAndroid Build Coastguard Worker * Not recommended for use in drivers for high speed interfaces. 148*858ea5e5SAndroid Build Coastguard Worker * 149*858ea5e5SAndroid Build Coastguard Worker * This statistic is used on software devices, e.g. to count software 150*858ea5e5SAndroid Build Coastguard Worker * packet queue overflow (can) or sequencing errors (GRE). 151*858ea5e5SAndroid Build Coastguard Worker * 152*858ea5e5SAndroid Build Coastguard Worker * @rx_missed_errors: Count of packets missed by the host. 153*858ea5e5SAndroid Build Coastguard Worker * Folded into the "drop" counter in `/proc/net/dev`. 154*858ea5e5SAndroid Build Coastguard Worker * 155*858ea5e5SAndroid Build Coastguard Worker * Counts number of packets dropped by the device due to lack 156*858ea5e5SAndroid Build Coastguard Worker * of buffer space. This usually indicates that the host interface 157*858ea5e5SAndroid Build Coastguard Worker * is slower than the network interface, or host is not keeping up 158*858ea5e5SAndroid Build Coastguard Worker * with the receive packet rate. 159*858ea5e5SAndroid Build Coastguard Worker * 160*858ea5e5SAndroid Build Coastguard Worker * This statistic corresponds to hardware events and is not used 161*858ea5e5SAndroid Build Coastguard Worker * on software devices. 162*858ea5e5SAndroid Build Coastguard Worker * 163*858ea5e5SAndroid Build Coastguard Worker * @tx_aborted_errors: 164*858ea5e5SAndroid Build Coastguard Worker * Part of aggregate "carrier" errors in `/proc/net/dev`. 165*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices capable of half-duplex operation this counter 166*858ea5e5SAndroid Build Coastguard Worker * must be equivalent to: 167*858ea5e5SAndroid Build Coastguard Worker * 168*858ea5e5SAndroid Build Coastguard Worker * - 30.3.1.1.11 aFramesAbortedDueToXSColls 169*858ea5e5SAndroid Build Coastguard Worker * 170*858ea5e5SAndroid Build Coastguard Worker * High speed interfaces may use this counter as a general device 171*858ea5e5SAndroid Build Coastguard Worker * discard counter. 172*858ea5e5SAndroid Build Coastguard Worker * 173*858ea5e5SAndroid Build Coastguard Worker * @tx_carrier_errors: Number of frame transmission errors due to loss 174*858ea5e5SAndroid Build Coastguard Worker * of carrier during transmission. 175*858ea5e5SAndroid Build Coastguard Worker * Part of aggregate "carrier" errors in `/proc/net/dev`. 176*858ea5e5SAndroid Build Coastguard Worker * 177*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices this counter must be equivalent to: 178*858ea5e5SAndroid Build Coastguard Worker * 179*858ea5e5SAndroid Build Coastguard Worker * - 30.3.1.1.13 aCarrierSenseErrors 180*858ea5e5SAndroid Build Coastguard Worker * 181*858ea5e5SAndroid Build Coastguard Worker * @tx_fifo_errors: Number of frame transmission errors due to device 182*858ea5e5SAndroid Build Coastguard Worker * FIFO underrun / underflow. This condition occurs when the device 183*858ea5e5SAndroid Build Coastguard Worker * begins transmission of a frame but is unable to deliver the 184*858ea5e5SAndroid Build Coastguard Worker * entire frame to the transmitter in time for transmission. 185*858ea5e5SAndroid Build Coastguard Worker * Part of aggregate "carrier" errors in `/proc/net/dev`. 186*858ea5e5SAndroid Build Coastguard Worker * 187*858ea5e5SAndroid Build Coastguard Worker * @tx_heartbeat_errors: Number of Heartbeat / SQE Test errors for 188*858ea5e5SAndroid Build Coastguard Worker * old half-duplex Ethernet. 189*858ea5e5SAndroid Build Coastguard Worker * Part of aggregate "carrier" errors in `/proc/net/dev`. 190*858ea5e5SAndroid Build Coastguard Worker * 191*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices possibly equivalent to: 192*858ea5e5SAndroid Build Coastguard Worker * 193*858ea5e5SAndroid Build Coastguard Worker * - 30.3.2.1.4 aSQETestErrors 194*858ea5e5SAndroid Build Coastguard Worker * 195*858ea5e5SAndroid Build Coastguard Worker * @tx_window_errors: Number of frame transmission errors due 196*858ea5e5SAndroid Build Coastguard Worker * to late collisions (for Ethernet - after the first 64B of transmission). 197*858ea5e5SAndroid Build Coastguard Worker * Part of aggregate "carrier" errors in `/proc/net/dev`. 198*858ea5e5SAndroid Build Coastguard Worker * 199*858ea5e5SAndroid Build Coastguard Worker * For IEEE 802.3 devices this counter must be equivalent to: 200*858ea5e5SAndroid Build Coastguard Worker * 201*858ea5e5SAndroid Build Coastguard Worker * - 30.3.1.1.10 aLateCollisions 202*858ea5e5SAndroid Build Coastguard Worker * 203*858ea5e5SAndroid Build Coastguard Worker * @rx_compressed: Number of correctly received compressed packets. 204*858ea5e5SAndroid Build Coastguard Worker * This counters is only meaningful for interfaces which support 205*858ea5e5SAndroid Build Coastguard Worker * packet compression (e.g. CSLIP, PPP). 206*858ea5e5SAndroid Build Coastguard Worker * 207*858ea5e5SAndroid Build Coastguard Worker * @tx_compressed: Number of transmitted compressed packets. 208*858ea5e5SAndroid Build Coastguard Worker * This counters is only meaningful for interfaces which support 209*858ea5e5SAndroid Build Coastguard Worker * packet compression (e.g. CSLIP, PPP). 210*858ea5e5SAndroid Build Coastguard Worker * 211*858ea5e5SAndroid Build Coastguard Worker * @rx_nohandler: Number of packets received on the interface 212*858ea5e5SAndroid Build Coastguard Worker * but dropped by the networking stack because the device is 213*858ea5e5SAndroid Build Coastguard Worker * not designated to receive packets (e.g. backup link in a bond). 214*858ea5e5SAndroid Build Coastguard Worker * 215*858ea5e5SAndroid Build Coastguard Worker * @rx_otherhost_dropped: Number of packets dropped due to mismatch 216*858ea5e5SAndroid Build Coastguard Worker * in destination MAC address. 217*858ea5e5SAndroid Build Coastguard Worker */ 218*858ea5e5SAndroid Build Coastguard Worker struct rtnl_link_stats64 { 219*858ea5e5SAndroid Build Coastguard Worker __u64 rx_packets; 220*858ea5e5SAndroid Build Coastguard Worker __u64 tx_packets; 221*858ea5e5SAndroid Build Coastguard Worker __u64 rx_bytes; 222*858ea5e5SAndroid Build Coastguard Worker __u64 tx_bytes; 223*858ea5e5SAndroid Build Coastguard Worker __u64 rx_errors; 224*858ea5e5SAndroid Build Coastguard Worker __u64 tx_errors; 225*858ea5e5SAndroid Build Coastguard Worker __u64 rx_dropped; 226*858ea5e5SAndroid Build Coastguard Worker __u64 tx_dropped; 227*858ea5e5SAndroid Build Coastguard Worker __u64 multicast; 228*858ea5e5SAndroid Build Coastguard Worker __u64 collisions; 229*858ea5e5SAndroid Build Coastguard Worker 230*858ea5e5SAndroid Build Coastguard Worker /* detailed rx_errors: */ 231*858ea5e5SAndroid Build Coastguard Worker __u64 rx_length_errors; 232*858ea5e5SAndroid Build Coastguard Worker __u64 rx_over_errors; 233*858ea5e5SAndroid Build Coastguard Worker __u64 rx_crc_errors; 234*858ea5e5SAndroid Build Coastguard Worker __u64 rx_frame_errors; 235*858ea5e5SAndroid Build Coastguard Worker __u64 rx_fifo_errors; 236*858ea5e5SAndroid Build Coastguard Worker __u64 rx_missed_errors; 237*858ea5e5SAndroid Build Coastguard Worker 238*858ea5e5SAndroid Build Coastguard Worker /* detailed tx_errors */ 239*858ea5e5SAndroid Build Coastguard Worker __u64 tx_aborted_errors; 240*858ea5e5SAndroid Build Coastguard Worker __u64 tx_carrier_errors; 241*858ea5e5SAndroid Build Coastguard Worker __u64 tx_fifo_errors; 242*858ea5e5SAndroid Build Coastguard Worker __u64 tx_heartbeat_errors; 243*858ea5e5SAndroid Build Coastguard Worker __u64 tx_window_errors; 244*858ea5e5SAndroid Build Coastguard Worker 245*858ea5e5SAndroid Build Coastguard Worker /* for cslip etc */ 246*858ea5e5SAndroid Build Coastguard Worker __u64 rx_compressed; 247*858ea5e5SAndroid Build Coastguard Worker __u64 tx_compressed; 248*858ea5e5SAndroid Build Coastguard Worker __u64 rx_nohandler; 249*858ea5e5SAndroid Build Coastguard Worker 250*858ea5e5SAndroid Build Coastguard Worker __u64 rx_otherhost_dropped; 251*858ea5e5SAndroid Build Coastguard Worker }; 252*858ea5e5SAndroid Build Coastguard Worker 253*858ea5e5SAndroid Build Coastguard Worker /* Subset of link stats useful for in-HW collection. Meaning of the fields is as 254*858ea5e5SAndroid Build Coastguard Worker * for struct rtnl_link_stats64. 255*858ea5e5SAndroid Build Coastguard Worker */ 256*858ea5e5SAndroid Build Coastguard Worker struct rtnl_hw_stats64 { 257*858ea5e5SAndroid Build Coastguard Worker __u64 rx_packets; 258*858ea5e5SAndroid Build Coastguard Worker __u64 tx_packets; 259*858ea5e5SAndroid Build Coastguard Worker __u64 rx_bytes; 260*858ea5e5SAndroid Build Coastguard Worker __u64 tx_bytes; 261*858ea5e5SAndroid Build Coastguard Worker __u64 rx_errors; 262*858ea5e5SAndroid Build Coastguard Worker __u64 tx_errors; 263*858ea5e5SAndroid Build Coastguard Worker __u64 rx_dropped; 264*858ea5e5SAndroid Build Coastguard Worker __u64 tx_dropped; 265*858ea5e5SAndroid Build Coastguard Worker __u64 multicast; 266*858ea5e5SAndroid Build Coastguard Worker }; 267*858ea5e5SAndroid Build Coastguard Worker 268*858ea5e5SAndroid Build Coastguard Worker /* The struct should be in sync with struct ifmap */ 269*858ea5e5SAndroid Build Coastguard Worker struct rtnl_link_ifmap { 270*858ea5e5SAndroid Build Coastguard Worker __u64 mem_start; 271*858ea5e5SAndroid Build Coastguard Worker __u64 mem_end; 272*858ea5e5SAndroid Build Coastguard Worker __u64 base_addr; 273*858ea5e5SAndroid Build Coastguard Worker __u16 irq; 274*858ea5e5SAndroid Build Coastguard Worker __u8 dma; 275*858ea5e5SAndroid Build Coastguard Worker __u8 port; 276*858ea5e5SAndroid Build Coastguard Worker }; 277*858ea5e5SAndroid Build Coastguard Worker 278*858ea5e5SAndroid Build Coastguard Worker /* 279*858ea5e5SAndroid Build Coastguard Worker * IFLA_AF_SPEC 280*858ea5e5SAndroid Build Coastguard Worker * Contains nested attributes for address family specific attributes. 281*858ea5e5SAndroid Build Coastguard Worker * Each address family may create a attribute with the address family 282*858ea5e5SAndroid Build Coastguard Worker * number as type and create its own attribute structure in it. 283*858ea5e5SAndroid Build Coastguard Worker * 284*858ea5e5SAndroid Build Coastguard Worker * Example: 285*858ea5e5SAndroid Build Coastguard Worker * [IFLA_AF_SPEC] = { 286*858ea5e5SAndroid Build Coastguard Worker * [AF_INET] = { 287*858ea5e5SAndroid Build Coastguard Worker * [IFLA_INET_CONF] = ..., 288*858ea5e5SAndroid Build Coastguard Worker * }, 289*858ea5e5SAndroid Build Coastguard Worker * [AF_INET6] = { 290*858ea5e5SAndroid Build Coastguard Worker * [IFLA_INET6_FLAGS] = ..., 291*858ea5e5SAndroid Build Coastguard Worker * [IFLA_INET6_CONF] = ..., 292*858ea5e5SAndroid Build Coastguard Worker * } 293*858ea5e5SAndroid Build Coastguard Worker * } 294*858ea5e5SAndroid Build Coastguard Worker */ 295*858ea5e5SAndroid Build Coastguard Worker 296*858ea5e5SAndroid Build Coastguard Worker enum { 297*858ea5e5SAndroid Build Coastguard Worker IFLA_UNSPEC, 298*858ea5e5SAndroid Build Coastguard Worker IFLA_ADDRESS, 299*858ea5e5SAndroid Build Coastguard Worker IFLA_BROADCAST, 300*858ea5e5SAndroid Build Coastguard Worker IFLA_IFNAME, 301*858ea5e5SAndroid Build Coastguard Worker IFLA_MTU, 302*858ea5e5SAndroid Build Coastguard Worker IFLA_LINK, 303*858ea5e5SAndroid Build Coastguard Worker IFLA_QDISC, 304*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS, 305*858ea5e5SAndroid Build Coastguard Worker IFLA_COST, 306*858ea5e5SAndroid Build Coastguard Worker #define IFLA_COST IFLA_COST 307*858ea5e5SAndroid Build Coastguard Worker IFLA_PRIORITY, 308*858ea5e5SAndroid Build Coastguard Worker #define IFLA_PRIORITY IFLA_PRIORITY 309*858ea5e5SAndroid Build Coastguard Worker IFLA_MASTER, 310*858ea5e5SAndroid Build Coastguard Worker #define IFLA_MASTER IFLA_MASTER 311*858ea5e5SAndroid Build Coastguard Worker IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */ 312*858ea5e5SAndroid Build Coastguard Worker #define IFLA_WIRELESS IFLA_WIRELESS 313*858ea5e5SAndroid Build Coastguard Worker IFLA_PROTINFO, /* Protocol specific information for a link */ 314*858ea5e5SAndroid Build Coastguard Worker #define IFLA_PROTINFO IFLA_PROTINFO 315*858ea5e5SAndroid Build Coastguard Worker IFLA_TXQLEN, 316*858ea5e5SAndroid Build Coastguard Worker #define IFLA_TXQLEN IFLA_TXQLEN 317*858ea5e5SAndroid Build Coastguard Worker IFLA_MAP, 318*858ea5e5SAndroid Build Coastguard Worker #define IFLA_MAP IFLA_MAP 319*858ea5e5SAndroid Build Coastguard Worker IFLA_WEIGHT, 320*858ea5e5SAndroid Build Coastguard Worker #define IFLA_WEIGHT IFLA_WEIGHT 321*858ea5e5SAndroid Build Coastguard Worker IFLA_OPERSTATE, 322*858ea5e5SAndroid Build Coastguard Worker IFLA_LINKMODE, 323*858ea5e5SAndroid Build Coastguard Worker IFLA_LINKINFO, 324*858ea5e5SAndroid Build Coastguard Worker #define IFLA_LINKINFO IFLA_LINKINFO 325*858ea5e5SAndroid Build Coastguard Worker IFLA_NET_NS_PID, 326*858ea5e5SAndroid Build Coastguard Worker IFLA_IFALIAS, 327*858ea5e5SAndroid Build Coastguard Worker IFLA_NUM_VF, /* Number of VFs if device is SR-IOV PF */ 328*858ea5e5SAndroid Build Coastguard Worker IFLA_VFINFO_LIST, 329*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS64, 330*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_PORTS, 331*858ea5e5SAndroid Build Coastguard Worker IFLA_PORT_SELF, 332*858ea5e5SAndroid Build Coastguard Worker IFLA_AF_SPEC, 333*858ea5e5SAndroid Build Coastguard Worker IFLA_GROUP, /* Group the device belongs to */ 334*858ea5e5SAndroid Build Coastguard Worker IFLA_NET_NS_FD, 335*858ea5e5SAndroid Build Coastguard Worker IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ 336*858ea5e5SAndroid Build Coastguard Worker IFLA_PROMISCUITY, /* Promiscuity count: > 0 means acts PROMISC */ 337*858ea5e5SAndroid Build Coastguard Worker #define IFLA_PROMISCUITY IFLA_PROMISCUITY 338*858ea5e5SAndroid Build Coastguard Worker IFLA_NUM_TX_QUEUES, 339*858ea5e5SAndroid Build Coastguard Worker IFLA_NUM_RX_QUEUES, 340*858ea5e5SAndroid Build Coastguard Worker IFLA_CARRIER, 341*858ea5e5SAndroid Build Coastguard Worker IFLA_PHYS_PORT_ID, 342*858ea5e5SAndroid Build Coastguard Worker IFLA_CARRIER_CHANGES, 343*858ea5e5SAndroid Build Coastguard Worker IFLA_PHYS_SWITCH_ID, 344*858ea5e5SAndroid Build Coastguard Worker IFLA_LINK_NETNSID, 345*858ea5e5SAndroid Build Coastguard Worker IFLA_PHYS_PORT_NAME, 346*858ea5e5SAndroid Build Coastguard Worker IFLA_PROTO_DOWN, 347*858ea5e5SAndroid Build Coastguard Worker IFLA_GSO_MAX_SEGS, 348*858ea5e5SAndroid Build Coastguard Worker IFLA_GSO_MAX_SIZE, 349*858ea5e5SAndroid Build Coastguard Worker IFLA_PAD, 350*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP, 351*858ea5e5SAndroid Build Coastguard Worker IFLA_EVENT, 352*858ea5e5SAndroid Build Coastguard Worker IFLA_NEW_NETNSID, 353*858ea5e5SAndroid Build Coastguard Worker IFLA_IF_NETNSID, 354*858ea5e5SAndroid Build Coastguard Worker IFLA_TARGET_NETNSID = IFLA_IF_NETNSID, /* new alias */ 355*858ea5e5SAndroid Build Coastguard Worker IFLA_CARRIER_UP_COUNT, 356*858ea5e5SAndroid Build Coastguard Worker IFLA_CARRIER_DOWN_COUNT, 357*858ea5e5SAndroid Build Coastguard Worker IFLA_NEW_IFINDEX, 358*858ea5e5SAndroid Build Coastguard Worker IFLA_MIN_MTU, 359*858ea5e5SAndroid Build Coastguard Worker IFLA_MAX_MTU, 360*858ea5e5SAndroid Build Coastguard Worker IFLA_PROP_LIST, 361*858ea5e5SAndroid Build Coastguard Worker IFLA_ALT_IFNAME, /* Alternative ifname */ 362*858ea5e5SAndroid Build Coastguard Worker IFLA_PERM_ADDRESS, 363*858ea5e5SAndroid Build Coastguard Worker IFLA_PROTO_DOWN_REASON, 364*858ea5e5SAndroid Build Coastguard Worker 365*858ea5e5SAndroid Build Coastguard Worker /* device (sysfs) name as parent, used instead 366*858ea5e5SAndroid Build Coastguard Worker * of IFLA_LINK where there's no parent netdev 367*858ea5e5SAndroid Build Coastguard Worker */ 368*858ea5e5SAndroid Build Coastguard Worker IFLA_PARENT_DEV_NAME, 369*858ea5e5SAndroid Build Coastguard Worker IFLA_PARENT_DEV_BUS_NAME, 370*858ea5e5SAndroid Build Coastguard Worker IFLA_GRO_MAX_SIZE, 371*858ea5e5SAndroid Build Coastguard Worker IFLA_TSO_MAX_SIZE, 372*858ea5e5SAndroid Build Coastguard Worker IFLA_TSO_MAX_SEGS, 373*858ea5e5SAndroid Build Coastguard Worker IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */ 374*858ea5e5SAndroid Build Coastguard Worker 375*858ea5e5SAndroid Build Coastguard Worker IFLA_DEVLINK_PORT, 376*858ea5e5SAndroid Build Coastguard Worker 377*858ea5e5SAndroid Build Coastguard Worker IFLA_GSO_IPV4_MAX_SIZE, 378*858ea5e5SAndroid Build Coastguard Worker IFLA_GRO_IPV4_MAX_SIZE, 379*858ea5e5SAndroid Build Coastguard Worker IFLA_DPLL_PIN, 380*858ea5e5SAndroid Build Coastguard Worker __IFLA_MAX 381*858ea5e5SAndroid Build Coastguard Worker }; 382*858ea5e5SAndroid Build Coastguard Worker 383*858ea5e5SAndroid Build Coastguard Worker 384*858ea5e5SAndroid Build Coastguard Worker #define IFLA_MAX (__IFLA_MAX - 1) 385*858ea5e5SAndroid Build Coastguard Worker 386*858ea5e5SAndroid Build Coastguard Worker enum { 387*858ea5e5SAndroid Build Coastguard Worker IFLA_PROTO_DOWN_REASON_UNSPEC, 388*858ea5e5SAndroid Build Coastguard Worker IFLA_PROTO_DOWN_REASON_MASK, /* u32, mask for reason bits */ 389*858ea5e5SAndroid Build Coastguard Worker IFLA_PROTO_DOWN_REASON_VALUE, /* u32, reason bit value */ 390*858ea5e5SAndroid Build Coastguard Worker 391*858ea5e5SAndroid Build Coastguard Worker __IFLA_PROTO_DOWN_REASON_CNT, 392*858ea5e5SAndroid Build Coastguard Worker IFLA_PROTO_DOWN_REASON_MAX = __IFLA_PROTO_DOWN_REASON_CNT - 1 393*858ea5e5SAndroid Build Coastguard Worker }; 394*858ea5e5SAndroid Build Coastguard Worker 395*858ea5e5SAndroid Build Coastguard Worker /* backwards compatibility for userspace */ 396*858ea5e5SAndroid Build Coastguard Worker #ifndef __KERNEL__ 397*858ea5e5SAndroid Build Coastguard Worker #define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) 398*858ea5e5SAndroid Build Coastguard Worker #define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg)) 399*858ea5e5SAndroid Build Coastguard Worker #endif 400*858ea5e5SAndroid Build Coastguard Worker 401*858ea5e5SAndroid Build Coastguard Worker enum { 402*858ea5e5SAndroid Build Coastguard Worker IFLA_INET_UNSPEC, 403*858ea5e5SAndroid Build Coastguard Worker IFLA_INET_CONF, 404*858ea5e5SAndroid Build Coastguard Worker __IFLA_INET_MAX, 405*858ea5e5SAndroid Build Coastguard Worker }; 406*858ea5e5SAndroid Build Coastguard Worker 407*858ea5e5SAndroid Build Coastguard Worker #define IFLA_INET_MAX (__IFLA_INET_MAX - 1) 408*858ea5e5SAndroid Build Coastguard Worker 409*858ea5e5SAndroid Build Coastguard Worker /* ifi_flags. 410*858ea5e5SAndroid Build Coastguard Worker 411*858ea5e5SAndroid Build Coastguard Worker IFF_* flags. 412*858ea5e5SAndroid Build Coastguard Worker 413*858ea5e5SAndroid Build Coastguard Worker The only change is: 414*858ea5e5SAndroid Build Coastguard Worker IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are 415*858ea5e5SAndroid Build Coastguard Worker more not changeable by user. They describe link media 416*858ea5e5SAndroid Build Coastguard Worker characteristics and set by device driver. 417*858ea5e5SAndroid Build Coastguard Worker 418*858ea5e5SAndroid Build Coastguard Worker Comments: 419*858ea5e5SAndroid Build Coastguard Worker - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid 420*858ea5e5SAndroid Build Coastguard Worker - If neither of these three flags are set; 421*858ea5e5SAndroid Build Coastguard Worker the interface is NBMA. 422*858ea5e5SAndroid Build Coastguard Worker 423*858ea5e5SAndroid Build Coastguard Worker - IFF_MULTICAST does not mean anything special: 424*858ea5e5SAndroid Build Coastguard Worker multicasts can be used on all not-NBMA links. 425*858ea5e5SAndroid Build Coastguard Worker IFF_MULTICAST means that this media uses special encapsulation 426*858ea5e5SAndroid Build Coastguard Worker for multicast frames. Apparently, all IFF_POINTOPOINT and 427*858ea5e5SAndroid Build Coastguard Worker IFF_BROADCAST devices are able to use multicasts too. 428*858ea5e5SAndroid Build Coastguard Worker */ 429*858ea5e5SAndroid Build Coastguard Worker 430*858ea5e5SAndroid Build Coastguard Worker /* IFLA_LINK. 431*858ea5e5SAndroid Build Coastguard Worker For usual devices it is equal ifi_index. 432*858ea5e5SAndroid Build Coastguard Worker If it is a "virtual interface" (f.e. tunnel), ifi_link 433*858ea5e5SAndroid Build Coastguard Worker can point to real physical interface (f.e. for bandwidth calculations), 434*858ea5e5SAndroid Build Coastguard Worker or maybe 0, what means, that real media is unknown (usual 435*858ea5e5SAndroid Build Coastguard Worker for IPIP tunnels, when route to endpoint is allowed to change) 436*858ea5e5SAndroid Build Coastguard Worker */ 437*858ea5e5SAndroid Build Coastguard Worker 438*858ea5e5SAndroid Build Coastguard Worker /* Subtype attributes for IFLA_PROTINFO */ 439*858ea5e5SAndroid Build Coastguard Worker enum { 440*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_UNSPEC, 441*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_FLAGS, /* link flags */ 442*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_CONF, /* sysctl parameters */ 443*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_STATS, /* statistics */ 444*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_MCAST, /* MC things. What of them? */ 445*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_CACHEINFO, /* time values and max reasm size */ 446*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */ 447*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_TOKEN, /* device token */ 448*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */ 449*858ea5e5SAndroid Build Coastguard Worker IFLA_INET6_RA_MTU, /* mtu carried in the RA message */ 450*858ea5e5SAndroid Build Coastguard Worker __IFLA_INET6_MAX 451*858ea5e5SAndroid Build Coastguard Worker }; 452*858ea5e5SAndroid Build Coastguard Worker 453*858ea5e5SAndroid Build Coastguard Worker #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) 454*858ea5e5SAndroid Build Coastguard Worker 455*858ea5e5SAndroid Build Coastguard Worker enum in6_addr_gen_mode { 456*858ea5e5SAndroid Build Coastguard Worker IN6_ADDR_GEN_MODE_EUI64, 457*858ea5e5SAndroid Build Coastguard Worker IN6_ADDR_GEN_MODE_NONE, 458*858ea5e5SAndroid Build Coastguard Worker IN6_ADDR_GEN_MODE_STABLE_PRIVACY, 459*858ea5e5SAndroid Build Coastguard Worker IN6_ADDR_GEN_MODE_RANDOM, 460*858ea5e5SAndroid Build Coastguard Worker }; 461*858ea5e5SAndroid Build Coastguard Worker 462*858ea5e5SAndroid Build Coastguard Worker /* Bridge section */ 463*858ea5e5SAndroid Build Coastguard Worker 464*858ea5e5SAndroid Build Coastguard Worker enum { 465*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_UNSPEC, 466*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_FORWARD_DELAY, 467*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_HELLO_TIME, 468*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MAX_AGE, 469*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_AGEING_TIME, 470*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_STP_STATE, 471*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_PRIORITY, 472*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_VLAN_FILTERING, 473*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_VLAN_PROTOCOL, 474*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_GROUP_FWD_MASK, 475*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_ROOT_ID, 476*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_BRIDGE_ID, 477*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_ROOT_PORT, 478*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_ROOT_PATH_COST, 479*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_TOPOLOGY_CHANGE, 480*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_TOPOLOGY_CHANGE_DETECTED, 481*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_HELLO_TIMER, 482*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_TCN_TIMER, 483*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_TOPOLOGY_CHANGE_TIMER, 484*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_GC_TIMER, 485*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_GROUP_ADDR, 486*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_FDB_FLUSH, 487*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_ROUTER, 488*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_SNOOPING, 489*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERY_USE_IFADDR, 490*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERIER, 491*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_HASH_ELASTICITY, 492*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_HASH_MAX, 493*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_LAST_MEMBER_CNT, 494*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_STARTUP_QUERY_CNT, 495*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_LAST_MEMBER_INTVL, 496*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_MEMBERSHIP_INTVL, 497*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERIER_INTVL, 498*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERY_INTVL, 499*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERY_RESPONSE_INTVL, 500*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_STARTUP_QUERY_INTVL, 501*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_NF_CALL_IPTABLES, 502*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_NF_CALL_IP6TABLES, 503*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_NF_CALL_ARPTABLES, 504*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_VLAN_DEFAULT_PVID, 505*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_PAD, 506*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_VLAN_STATS_ENABLED, 507*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_STATS_ENABLED, 508*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_IGMP_VERSION, 509*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_MLD_VERSION, 510*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_VLAN_STATS_PER_PORT, 511*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MULTI_BOOLOPT, 512*858ea5e5SAndroid Build Coastguard Worker IFLA_BR_MCAST_QUERIER_STATE, 513*858ea5e5SAndroid Build Coastguard Worker __IFLA_BR_MAX, 514*858ea5e5SAndroid Build Coastguard Worker }; 515*858ea5e5SAndroid Build Coastguard Worker 516*858ea5e5SAndroid Build Coastguard Worker #define IFLA_BR_MAX (__IFLA_BR_MAX - 1) 517*858ea5e5SAndroid Build Coastguard Worker 518*858ea5e5SAndroid Build Coastguard Worker struct ifla_bridge_id { 519*858ea5e5SAndroid Build Coastguard Worker __u8 prio[2]; 520*858ea5e5SAndroid Build Coastguard Worker __u8 addr[6]; /* ETH_ALEN */ 521*858ea5e5SAndroid Build Coastguard Worker }; 522*858ea5e5SAndroid Build Coastguard Worker 523*858ea5e5SAndroid Build Coastguard Worker enum { 524*858ea5e5SAndroid Build Coastguard Worker BRIDGE_MODE_UNSPEC, 525*858ea5e5SAndroid Build Coastguard Worker BRIDGE_MODE_HAIRPIN, 526*858ea5e5SAndroid Build Coastguard Worker }; 527*858ea5e5SAndroid Build Coastguard Worker 528*858ea5e5SAndroid Build Coastguard Worker enum { 529*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_UNSPEC, 530*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_STATE, /* Spanning tree state */ 531*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_PRIORITY, /* " priority */ 532*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_COST, /* " cost */ 533*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MODE, /* mode (hairpin) */ 534*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_GUARD, /* bpdu guard */ 535*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_PROTECT, /* root port protection */ 536*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */ 537*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_LEARNING, /* mac learning */ 538*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */ 539*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_PROXYARP, /* proxy ARP */ 540*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */ 541*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */ 542*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_ROOT_ID, /* designated root */ 543*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_BRIDGE_ID, /* designated bridge */ 544*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_DESIGNATED_PORT, 545*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_DESIGNATED_COST, 546*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_ID, 547*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_NO, 548*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_TOPOLOGY_CHANGE_ACK, 549*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_CONFIG_PENDING, 550*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MESSAGE_AGE_TIMER, 551*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_FORWARD_DELAY_TIMER, 552*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_HOLD_TIMER, 553*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_FLUSH, 554*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MULTICAST_ROUTER, 555*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_PAD, 556*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MCAST_FLOOD, 557*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MCAST_TO_UCAST, 558*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_VLAN_TUNNEL, 559*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_BCAST_FLOOD, 560*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_GROUP_FWD_MASK, 561*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_NEIGH_SUPPRESS, 562*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_ISOLATED, 563*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_BACKUP_PORT, 564*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MRP_RING_OPEN, 565*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MRP_IN_OPEN, 566*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, 567*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, 568*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_LOCKED, 569*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MAB, 570*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MCAST_N_GROUPS, 571*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_MCAST_MAX_GROUPS, 572*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, 573*858ea5e5SAndroid Build Coastguard Worker IFLA_BRPORT_BACKUP_NHID, 574*858ea5e5SAndroid Build Coastguard Worker __IFLA_BRPORT_MAX 575*858ea5e5SAndroid Build Coastguard Worker }; 576*858ea5e5SAndroid Build Coastguard Worker #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) 577*858ea5e5SAndroid Build Coastguard Worker 578*858ea5e5SAndroid Build Coastguard Worker struct ifla_cacheinfo { 579*858ea5e5SAndroid Build Coastguard Worker __u32 max_reasm_len; 580*858ea5e5SAndroid Build Coastguard Worker __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ 581*858ea5e5SAndroid Build Coastguard Worker __u32 reachable_time; 582*858ea5e5SAndroid Build Coastguard Worker __u32 retrans_time; 583*858ea5e5SAndroid Build Coastguard Worker }; 584*858ea5e5SAndroid Build Coastguard Worker 585*858ea5e5SAndroid Build Coastguard Worker enum { 586*858ea5e5SAndroid Build Coastguard Worker IFLA_INFO_UNSPEC, 587*858ea5e5SAndroid Build Coastguard Worker IFLA_INFO_KIND, 588*858ea5e5SAndroid Build Coastguard Worker IFLA_INFO_DATA, 589*858ea5e5SAndroid Build Coastguard Worker IFLA_INFO_XSTATS, 590*858ea5e5SAndroid Build Coastguard Worker IFLA_INFO_SLAVE_KIND, 591*858ea5e5SAndroid Build Coastguard Worker IFLA_INFO_SLAVE_DATA, 592*858ea5e5SAndroid Build Coastguard Worker __IFLA_INFO_MAX, 593*858ea5e5SAndroid Build Coastguard Worker }; 594*858ea5e5SAndroid Build Coastguard Worker 595*858ea5e5SAndroid Build Coastguard Worker #define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1) 596*858ea5e5SAndroid Build Coastguard Worker 597*858ea5e5SAndroid Build Coastguard Worker /* VLAN section */ 598*858ea5e5SAndroid Build Coastguard Worker 599*858ea5e5SAndroid Build Coastguard Worker enum { 600*858ea5e5SAndroid Build Coastguard Worker IFLA_VLAN_UNSPEC, 601*858ea5e5SAndroid Build Coastguard Worker IFLA_VLAN_ID, 602*858ea5e5SAndroid Build Coastguard Worker IFLA_VLAN_FLAGS, 603*858ea5e5SAndroid Build Coastguard Worker IFLA_VLAN_EGRESS_QOS, 604*858ea5e5SAndroid Build Coastguard Worker IFLA_VLAN_INGRESS_QOS, 605*858ea5e5SAndroid Build Coastguard Worker IFLA_VLAN_PROTOCOL, 606*858ea5e5SAndroid Build Coastguard Worker __IFLA_VLAN_MAX, 607*858ea5e5SAndroid Build Coastguard Worker }; 608*858ea5e5SAndroid Build Coastguard Worker 609*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1) 610*858ea5e5SAndroid Build Coastguard Worker 611*858ea5e5SAndroid Build Coastguard Worker struct ifla_vlan_flags { 612*858ea5e5SAndroid Build Coastguard Worker __u32 flags; 613*858ea5e5SAndroid Build Coastguard Worker __u32 mask; 614*858ea5e5SAndroid Build Coastguard Worker }; 615*858ea5e5SAndroid Build Coastguard Worker 616*858ea5e5SAndroid Build Coastguard Worker enum { 617*858ea5e5SAndroid Build Coastguard Worker IFLA_VLAN_QOS_UNSPEC, 618*858ea5e5SAndroid Build Coastguard Worker IFLA_VLAN_QOS_MAPPING, 619*858ea5e5SAndroid Build Coastguard Worker __IFLA_VLAN_QOS_MAX 620*858ea5e5SAndroid Build Coastguard Worker }; 621*858ea5e5SAndroid Build Coastguard Worker 622*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1) 623*858ea5e5SAndroid Build Coastguard Worker 624*858ea5e5SAndroid Build Coastguard Worker struct ifla_vlan_qos_mapping { 625*858ea5e5SAndroid Build Coastguard Worker __u32 from; 626*858ea5e5SAndroid Build Coastguard Worker __u32 to; 627*858ea5e5SAndroid Build Coastguard Worker }; 628*858ea5e5SAndroid Build Coastguard Worker 629*858ea5e5SAndroid Build Coastguard Worker /* MACVLAN section */ 630*858ea5e5SAndroid Build Coastguard Worker enum { 631*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_UNSPEC, 632*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_MODE, 633*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_FLAGS, 634*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_MACADDR_MODE, 635*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_MACADDR, 636*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_MACADDR_DATA, 637*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_MACADDR_COUNT, 638*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_BC_QUEUE_LEN, 639*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_BC_QUEUE_LEN_USED, 640*858ea5e5SAndroid Build Coastguard Worker IFLA_MACVLAN_BC_CUTOFF, 641*858ea5e5SAndroid Build Coastguard Worker __IFLA_MACVLAN_MAX, 642*858ea5e5SAndroid Build Coastguard Worker }; 643*858ea5e5SAndroid Build Coastguard Worker 644*858ea5e5SAndroid Build Coastguard Worker #define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1) 645*858ea5e5SAndroid Build Coastguard Worker 646*858ea5e5SAndroid Build Coastguard Worker enum macvlan_mode { 647*858ea5e5SAndroid Build Coastguard Worker MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */ 648*858ea5e5SAndroid Build Coastguard Worker MACVLAN_MODE_VEPA = 2, /* talk to other ports through ext bridge */ 649*858ea5e5SAndroid Build Coastguard Worker MACVLAN_MODE_BRIDGE = 4, /* talk to bridge ports directly */ 650*858ea5e5SAndroid Build Coastguard Worker MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */ 651*858ea5e5SAndroid Build Coastguard Worker MACVLAN_MODE_SOURCE = 16,/* use source MAC address list to assign */ 652*858ea5e5SAndroid Build Coastguard Worker }; 653*858ea5e5SAndroid Build Coastguard Worker 654*858ea5e5SAndroid Build Coastguard Worker enum macvlan_macaddr_mode { 655*858ea5e5SAndroid Build Coastguard Worker MACVLAN_MACADDR_ADD, 656*858ea5e5SAndroid Build Coastguard Worker MACVLAN_MACADDR_DEL, 657*858ea5e5SAndroid Build Coastguard Worker MACVLAN_MACADDR_FLUSH, 658*858ea5e5SAndroid Build Coastguard Worker MACVLAN_MACADDR_SET, 659*858ea5e5SAndroid Build Coastguard Worker }; 660*858ea5e5SAndroid Build Coastguard Worker 661*858ea5e5SAndroid Build Coastguard Worker #define MACVLAN_FLAG_NOPROMISC 1 662*858ea5e5SAndroid Build Coastguard Worker #define MACVLAN_FLAG_NODST 2 /* skip dst macvlan if matching src macvlan */ 663*858ea5e5SAndroid Build Coastguard Worker 664*858ea5e5SAndroid Build Coastguard Worker /* VRF section */ 665*858ea5e5SAndroid Build Coastguard Worker enum { 666*858ea5e5SAndroid Build Coastguard Worker IFLA_VRF_UNSPEC, 667*858ea5e5SAndroid Build Coastguard Worker IFLA_VRF_TABLE, 668*858ea5e5SAndroid Build Coastguard Worker __IFLA_VRF_MAX 669*858ea5e5SAndroid Build Coastguard Worker }; 670*858ea5e5SAndroid Build Coastguard Worker 671*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1) 672*858ea5e5SAndroid Build Coastguard Worker 673*858ea5e5SAndroid Build Coastguard Worker enum { 674*858ea5e5SAndroid Build Coastguard Worker IFLA_VRF_PORT_UNSPEC, 675*858ea5e5SAndroid Build Coastguard Worker IFLA_VRF_PORT_TABLE, 676*858ea5e5SAndroid Build Coastguard Worker __IFLA_VRF_PORT_MAX 677*858ea5e5SAndroid Build Coastguard Worker }; 678*858ea5e5SAndroid Build Coastguard Worker 679*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1) 680*858ea5e5SAndroid Build Coastguard Worker 681*858ea5e5SAndroid Build Coastguard Worker /* MACSEC section */ 682*858ea5e5SAndroid Build Coastguard Worker enum { 683*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_UNSPEC, 684*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_SCI, 685*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_PORT, 686*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_ICV_LEN, 687*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_CIPHER_SUITE, 688*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_WINDOW, 689*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_ENCODING_SA, 690*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_ENCRYPT, 691*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_PROTECT, 692*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_INC_SCI, 693*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_ES, 694*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_SCB, 695*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_REPLAY_PROTECT, 696*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_VALIDATION, 697*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_PAD, 698*858ea5e5SAndroid Build Coastguard Worker IFLA_MACSEC_OFFLOAD, 699*858ea5e5SAndroid Build Coastguard Worker __IFLA_MACSEC_MAX, 700*858ea5e5SAndroid Build Coastguard Worker }; 701*858ea5e5SAndroid Build Coastguard Worker 702*858ea5e5SAndroid Build Coastguard Worker #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) 703*858ea5e5SAndroid Build Coastguard Worker 704*858ea5e5SAndroid Build Coastguard Worker /* XFRM section */ 705*858ea5e5SAndroid Build Coastguard Worker enum { 706*858ea5e5SAndroid Build Coastguard Worker IFLA_XFRM_UNSPEC, 707*858ea5e5SAndroid Build Coastguard Worker IFLA_XFRM_LINK, 708*858ea5e5SAndroid Build Coastguard Worker IFLA_XFRM_IF_ID, 709*858ea5e5SAndroid Build Coastguard Worker IFLA_XFRM_COLLECT_METADATA, 710*858ea5e5SAndroid Build Coastguard Worker __IFLA_XFRM_MAX 711*858ea5e5SAndroid Build Coastguard Worker }; 712*858ea5e5SAndroid Build Coastguard Worker 713*858ea5e5SAndroid Build Coastguard Worker #define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1) 714*858ea5e5SAndroid Build Coastguard Worker 715*858ea5e5SAndroid Build Coastguard Worker enum macsec_validation_type { 716*858ea5e5SAndroid Build Coastguard Worker MACSEC_VALIDATE_DISABLED = 0, 717*858ea5e5SAndroid Build Coastguard Worker MACSEC_VALIDATE_CHECK = 1, 718*858ea5e5SAndroid Build Coastguard Worker MACSEC_VALIDATE_STRICT = 2, 719*858ea5e5SAndroid Build Coastguard Worker __MACSEC_VALIDATE_END, 720*858ea5e5SAndroid Build Coastguard Worker MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1, 721*858ea5e5SAndroid Build Coastguard Worker }; 722*858ea5e5SAndroid Build Coastguard Worker 723*858ea5e5SAndroid Build Coastguard Worker enum macsec_offload { 724*858ea5e5SAndroid Build Coastguard Worker MACSEC_OFFLOAD_OFF = 0, 725*858ea5e5SAndroid Build Coastguard Worker MACSEC_OFFLOAD_PHY = 1, 726*858ea5e5SAndroid Build Coastguard Worker MACSEC_OFFLOAD_MAC = 2, 727*858ea5e5SAndroid Build Coastguard Worker __MACSEC_OFFLOAD_END, 728*858ea5e5SAndroid Build Coastguard Worker MACSEC_OFFLOAD_MAX = __MACSEC_OFFLOAD_END - 1, 729*858ea5e5SAndroid Build Coastguard Worker }; 730*858ea5e5SAndroid Build Coastguard Worker 731*858ea5e5SAndroid Build Coastguard Worker /* IPVLAN section */ 732*858ea5e5SAndroid Build Coastguard Worker enum { 733*858ea5e5SAndroid Build Coastguard Worker IFLA_IPVLAN_UNSPEC, 734*858ea5e5SAndroid Build Coastguard Worker IFLA_IPVLAN_MODE, 735*858ea5e5SAndroid Build Coastguard Worker IFLA_IPVLAN_FLAGS, 736*858ea5e5SAndroid Build Coastguard Worker __IFLA_IPVLAN_MAX 737*858ea5e5SAndroid Build Coastguard Worker }; 738*858ea5e5SAndroid Build Coastguard Worker 739*858ea5e5SAndroid Build Coastguard Worker #define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1) 740*858ea5e5SAndroid Build Coastguard Worker 741*858ea5e5SAndroid Build Coastguard Worker enum ipvlan_mode { 742*858ea5e5SAndroid Build Coastguard Worker IPVLAN_MODE_L2 = 0, 743*858ea5e5SAndroid Build Coastguard Worker IPVLAN_MODE_L3, 744*858ea5e5SAndroid Build Coastguard Worker IPVLAN_MODE_L3S, 745*858ea5e5SAndroid Build Coastguard Worker IPVLAN_MODE_MAX 746*858ea5e5SAndroid Build Coastguard Worker }; 747*858ea5e5SAndroid Build Coastguard Worker 748*858ea5e5SAndroid Build Coastguard Worker #define IPVLAN_F_PRIVATE 0x01 749*858ea5e5SAndroid Build Coastguard Worker #define IPVLAN_F_VEPA 0x02 750*858ea5e5SAndroid Build Coastguard Worker 751*858ea5e5SAndroid Build Coastguard Worker /* Tunnel RTM header */ 752*858ea5e5SAndroid Build Coastguard Worker struct tunnel_msg { 753*858ea5e5SAndroid Build Coastguard Worker __u8 family; 754*858ea5e5SAndroid Build Coastguard Worker __u8 flags; 755*858ea5e5SAndroid Build Coastguard Worker __u16 reserved2; 756*858ea5e5SAndroid Build Coastguard Worker __u32 ifindex; 757*858ea5e5SAndroid Build Coastguard Worker }; 758*858ea5e5SAndroid Build Coastguard Worker 759*858ea5e5SAndroid Build Coastguard Worker /* netkit section */ 760*858ea5e5SAndroid Build Coastguard Worker enum netkit_action { 761*858ea5e5SAndroid Build Coastguard Worker NETKIT_NEXT = -1, 762*858ea5e5SAndroid Build Coastguard Worker NETKIT_PASS = 0, 763*858ea5e5SAndroid Build Coastguard Worker NETKIT_DROP = 2, 764*858ea5e5SAndroid Build Coastguard Worker NETKIT_REDIRECT = 7, 765*858ea5e5SAndroid Build Coastguard Worker }; 766*858ea5e5SAndroid Build Coastguard Worker 767*858ea5e5SAndroid Build Coastguard Worker enum netkit_mode { 768*858ea5e5SAndroid Build Coastguard Worker NETKIT_L2, 769*858ea5e5SAndroid Build Coastguard Worker NETKIT_L3, 770*858ea5e5SAndroid Build Coastguard Worker }; 771*858ea5e5SAndroid Build Coastguard Worker 772*858ea5e5SAndroid Build Coastguard Worker enum { 773*858ea5e5SAndroid Build Coastguard Worker IFLA_NETKIT_UNSPEC, 774*858ea5e5SAndroid Build Coastguard Worker IFLA_NETKIT_PEER_INFO, 775*858ea5e5SAndroid Build Coastguard Worker IFLA_NETKIT_PRIMARY, 776*858ea5e5SAndroid Build Coastguard Worker IFLA_NETKIT_POLICY, 777*858ea5e5SAndroid Build Coastguard Worker IFLA_NETKIT_PEER_POLICY, 778*858ea5e5SAndroid Build Coastguard Worker IFLA_NETKIT_MODE, 779*858ea5e5SAndroid Build Coastguard Worker __IFLA_NETKIT_MAX, 780*858ea5e5SAndroid Build Coastguard Worker }; 781*858ea5e5SAndroid Build Coastguard Worker #define IFLA_NETKIT_MAX (__IFLA_NETKIT_MAX - 1) 782*858ea5e5SAndroid Build Coastguard Worker 783*858ea5e5SAndroid Build Coastguard Worker /* VXLAN section */ 784*858ea5e5SAndroid Build Coastguard Worker 785*858ea5e5SAndroid Build Coastguard Worker /* include statistics in the dump */ 786*858ea5e5SAndroid Build Coastguard Worker #define TUNNEL_MSG_FLAG_STATS 0x01 787*858ea5e5SAndroid Build Coastguard Worker 788*858ea5e5SAndroid Build Coastguard Worker #define TUNNEL_MSG_VALID_USER_FLAGS TUNNEL_MSG_FLAG_STATS 789*858ea5e5SAndroid Build Coastguard Worker 790*858ea5e5SAndroid Build Coastguard Worker /* Embedded inside VXLAN_VNIFILTER_ENTRY_STATS */ 791*858ea5e5SAndroid Build Coastguard Worker enum { 792*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_UNSPEC, 793*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_RX_BYTES, 794*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_RX_PKTS, 795*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_RX_DROPS, 796*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_RX_ERRORS, 797*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_TX_BYTES, 798*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_TX_PKTS, 799*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_TX_DROPS, 800*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_TX_ERRORS, 801*858ea5e5SAndroid Build Coastguard Worker VNIFILTER_ENTRY_STATS_PAD, 802*858ea5e5SAndroid Build Coastguard Worker __VNIFILTER_ENTRY_STATS_MAX 803*858ea5e5SAndroid Build Coastguard Worker }; 804*858ea5e5SAndroid Build Coastguard Worker #define VNIFILTER_ENTRY_STATS_MAX (__VNIFILTER_ENTRY_STATS_MAX - 1) 805*858ea5e5SAndroid Build Coastguard Worker 806*858ea5e5SAndroid Build Coastguard Worker enum { 807*858ea5e5SAndroid Build Coastguard Worker VXLAN_VNIFILTER_ENTRY_UNSPEC, 808*858ea5e5SAndroid Build Coastguard Worker VXLAN_VNIFILTER_ENTRY_START, 809*858ea5e5SAndroid Build Coastguard Worker VXLAN_VNIFILTER_ENTRY_END, 810*858ea5e5SAndroid Build Coastguard Worker VXLAN_VNIFILTER_ENTRY_GROUP, 811*858ea5e5SAndroid Build Coastguard Worker VXLAN_VNIFILTER_ENTRY_GROUP6, 812*858ea5e5SAndroid Build Coastguard Worker VXLAN_VNIFILTER_ENTRY_STATS, 813*858ea5e5SAndroid Build Coastguard Worker __VXLAN_VNIFILTER_ENTRY_MAX 814*858ea5e5SAndroid Build Coastguard Worker }; 815*858ea5e5SAndroid Build Coastguard Worker #define VXLAN_VNIFILTER_ENTRY_MAX (__VXLAN_VNIFILTER_ENTRY_MAX - 1) 816*858ea5e5SAndroid Build Coastguard Worker 817*858ea5e5SAndroid Build Coastguard Worker enum { 818*858ea5e5SAndroid Build Coastguard Worker VXLAN_VNIFILTER_UNSPEC, 819*858ea5e5SAndroid Build Coastguard Worker VXLAN_VNIFILTER_ENTRY, 820*858ea5e5SAndroid Build Coastguard Worker __VXLAN_VNIFILTER_MAX 821*858ea5e5SAndroid Build Coastguard Worker }; 822*858ea5e5SAndroid Build Coastguard Worker #define VXLAN_VNIFILTER_MAX (__VXLAN_VNIFILTER_MAX - 1) 823*858ea5e5SAndroid Build Coastguard Worker 824*858ea5e5SAndroid Build Coastguard Worker enum { 825*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_UNSPEC, 826*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_ID, 827*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_GROUP, /* group or remote address */ 828*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_LINK, 829*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_LOCAL, 830*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_TTL, 831*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_TOS, 832*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_LEARNING, 833*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_AGEING, 834*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_LIMIT, 835*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_PORT_RANGE, /* source port */ 836*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_PROXY, 837*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_RSC, 838*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_L2MISS, 839*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_L3MISS, 840*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_PORT, /* destination port */ 841*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_GROUP6, 842*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_LOCAL6, 843*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_UDP_CSUM, 844*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_UDP_ZERO_CSUM6_TX, 845*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_UDP_ZERO_CSUM6_RX, 846*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_REMCSUM_TX, 847*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_REMCSUM_RX, 848*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_GBP, 849*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_REMCSUM_NOPARTIAL, 850*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_COLLECT_METADATA, 851*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_LABEL, 852*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_GPE, 853*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_TTL_INHERIT, 854*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_DF, 855*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */ 856*858ea5e5SAndroid Build Coastguard Worker IFLA_VXLAN_LOCALBYPASS, 857*858ea5e5SAndroid Build Coastguard Worker __IFLA_VXLAN_MAX 858*858ea5e5SAndroid Build Coastguard Worker }; 859*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) 860*858ea5e5SAndroid Build Coastguard Worker 861*858ea5e5SAndroid Build Coastguard Worker struct ifla_vxlan_port_range { 862*858ea5e5SAndroid Build Coastguard Worker __be16 low; 863*858ea5e5SAndroid Build Coastguard Worker __be16 high; 864*858ea5e5SAndroid Build Coastguard Worker }; 865*858ea5e5SAndroid Build Coastguard Worker 866*858ea5e5SAndroid Build Coastguard Worker enum ifla_vxlan_df { 867*858ea5e5SAndroid Build Coastguard Worker VXLAN_DF_UNSET = 0, 868*858ea5e5SAndroid Build Coastguard Worker VXLAN_DF_SET, 869*858ea5e5SAndroid Build Coastguard Worker VXLAN_DF_INHERIT, 870*858ea5e5SAndroid Build Coastguard Worker __VXLAN_DF_END, 871*858ea5e5SAndroid Build Coastguard Worker VXLAN_DF_MAX = __VXLAN_DF_END - 1, 872*858ea5e5SAndroid Build Coastguard Worker }; 873*858ea5e5SAndroid Build Coastguard Worker 874*858ea5e5SAndroid Build Coastguard Worker /* GENEVE section */ 875*858ea5e5SAndroid Build Coastguard Worker enum { 876*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_UNSPEC, 877*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_ID, 878*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_REMOTE, 879*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_TTL, 880*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_TOS, 881*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_PORT, /* destination port */ 882*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_COLLECT_METADATA, 883*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_REMOTE6, 884*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_UDP_CSUM, 885*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_UDP_ZERO_CSUM6_TX, 886*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_UDP_ZERO_CSUM6_RX, 887*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_LABEL, 888*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_TTL_INHERIT, 889*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_DF, 890*858ea5e5SAndroid Build Coastguard Worker IFLA_GENEVE_INNER_PROTO_INHERIT, 891*858ea5e5SAndroid Build Coastguard Worker __IFLA_GENEVE_MAX 892*858ea5e5SAndroid Build Coastguard Worker }; 893*858ea5e5SAndroid Build Coastguard Worker #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) 894*858ea5e5SAndroid Build Coastguard Worker 895*858ea5e5SAndroid Build Coastguard Worker enum ifla_geneve_df { 896*858ea5e5SAndroid Build Coastguard Worker GENEVE_DF_UNSET = 0, 897*858ea5e5SAndroid Build Coastguard Worker GENEVE_DF_SET, 898*858ea5e5SAndroid Build Coastguard Worker GENEVE_DF_INHERIT, 899*858ea5e5SAndroid Build Coastguard Worker __GENEVE_DF_END, 900*858ea5e5SAndroid Build Coastguard Worker GENEVE_DF_MAX = __GENEVE_DF_END - 1, 901*858ea5e5SAndroid Build Coastguard Worker }; 902*858ea5e5SAndroid Build Coastguard Worker 903*858ea5e5SAndroid Build Coastguard Worker /* Bareudp section */ 904*858ea5e5SAndroid Build Coastguard Worker enum { 905*858ea5e5SAndroid Build Coastguard Worker IFLA_BAREUDP_UNSPEC, 906*858ea5e5SAndroid Build Coastguard Worker IFLA_BAREUDP_PORT, 907*858ea5e5SAndroid Build Coastguard Worker IFLA_BAREUDP_ETHERTYPE, 908*858ea5e5SAndroid Build Coastguard Worker IFLA_BAREUDP_SRCPORT_MIN, 909*858ea5e5SAndroid Build Coastguard Worker IFLA_BAREUDP_MULTIPROTO_MODE, 910*858ea5e5SAndroid Build Coastguard Worker __IFLA_BAREUDP_MAX 911*858ea5e5SAndroid Build Coastguard Worker }; 912*858ea5e5SAndroid Build Coastguard Worker 913*858ea5e5SAndroid Build Coastguard Worker #define IFLA_BAREUDP_MAX (__IFLA_BAREUDP_MAX - 1) 914*858ea5e5SAndroid Build Coastguard Worker 915*858ea5e5SAndroid Build Coastguard Worker /* PPP section */ 916*858ea5e5SAndroid Build Coastguard Worker enum { 917*858ea5e5SAndroid Build Coastguard Worker IFLA_PPP_UNSPEC, 918*858ea5e5SAndroid Build Coastguard Worker IFLA_PPP_DEV_FD, 919*858ea5e5SAndroid Build Coastguard Worker __IFLA_PPP_MAX 920*858ea5e5SAndroid Build Coastguard Worker }; 921*858ea5e5SAndroid Build Coastguard Worker #define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1) 922*858ea5e5SAndroid Build Coastguard Worker 923*858ea5e5SAndroid Build Coastguard Worker /* GTP section */ 924*858ea5e5SAndroid Build Coastguard Worker 925*858ea5e5SAndroid Build Coastguard Worker enum ifla_gtp_role { 926*858ea5e5SAndroid Build Coastguard Worker GTP_ROLE_GGSN = 0, 927*858ea5e5SAndroid Build Coastguard Worker GTP_ROLE_SGSN, 928*858ea5e5SAndroid Build Coastguard Worker }; 929*858ea5e5SAndroid Build Coastguard Worker 930*858ea5e5SAndroid Build Coastguard Worker enum { 931*858ea5e5SAndroid Build Coastguard Worker IFLA_GTP_UNSPEC, 932*858ea5e5SAndroid Build Coastguard Worker IFLA_GTP_FD0, 933*858ea5e5SAndroid Build Coastguard Worker IFLA_GTP_FD1, 934*858ea5e5SAndroid Build Coastguard Worker IFLA_GTP_PDP_HASHSIZE, 935*858ea5e5SAndroid Build Coastguard Worker IFLA_GTP_ROLE, 936*858ea5e5SAndroid Build Coastguard Worker IFLA_GTP_CREATE_SOCKETS, 937*858ea5e5SAndroid Build Coastguard Worker IFLA_GTP_RESTART_COUNT, 938*858ea5e5SAndroid Build Coastguard Worker __IFLA_GTP_MAX, 939*858ea5e5SAndroid Build Coastguard Worker }; 940*858ea5e5SAndroid Build Coastguard Worker #define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1) 941*858ea5e5SAndroid Build Coastguard Worker 942*858ea5e5SAndroid Build Coastguard Worker /* Bonding section */ 943*858ea5e5SAndroid Build Coastguard Worker 944*858ea5e5SAndroid Build Coastguard Worker enum { 945*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_UNSPEC, 946*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_MODE, 947*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_ACTIVE_SLAVE, 948*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_MIIMON, 949*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_UPDELAY, 950*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_DOWNDELAY, 951*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_USE_CARRIER, 952*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_ARP_INTERVAL, 953*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_ARP_IP_TARGET, 954*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_ARP_VALIDATE, 955*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_ARP_ALL_TARGETS, 956*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_PRIMARY, 957*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_PRIMARY_RESELECT, 958*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_FAIL_OVER_MAC, 959*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_XMIT_HASH_POLICY, 960*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_RESEND_IGMP, 961*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_NUM_PEER_NOTIF, 962*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_ALL_SLAVES_ACTIVE, 963*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_MIN_LINKS, 964*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_LP_INTERVAL, 965*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_PACKETS_PER_SLAVE, 966*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_LACP_RATE, 967*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_SELECT, 968*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO, 969*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_ACTOR_SYS_PRIO, 970*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_USER_PORT_KEY, 971*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_ACTOR_SYSTEM, 972*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_TLB_DYNAMIC_LB, 973*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_PEER_NOTIF_DELAY, 974*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_LACP_ACTIVE, 975*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_MISSED_MAX, 976*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_NS_IP6_TARGET, 977*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_COUPLED_CONTROL, 978*858ea5e5SAndroid Build Coastguard Worker __IFLA_BOND_MAX, 979*858ea5e5SAndroid Build Coastguard Worker }; 980*858ea5e5SAndroid Build Coastguard Worker 981*858ea5e5SAndroid Build Coastguard Worker #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) 982*858ea5e5SAndroid Build Coastguard Worker 983*858ea5e5SAndroid Build Coastguard Worker enum { 984*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_UNSPEC, 985*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_AGGREGATOR, 986*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_NUM_PORTS, 987*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_ACTOR_KEY, 988*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_PARTNER_KEY, 989*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_AD_INFO_PARTNER_MAC, 990*858ea5e5SAndroid Build Coastguard Worker __IFLA_BOND_AD_INFO_MAX, 991*858ea5e5SAndroid Build Coastguard Worker }; 992*858ea5e5SAndroid Build Coastguard Worker 993*858ea5e5SAndroid Build Coastguard Worker #define IFLA_BOND_AD_INFO_MAX (__IFLA_BOND_AD_INFO_MAX - 1) 994*858ea5e5SAndroid Build Coastguard Worker 995*858ea5e5SAndroid Build Coastguard Worker enum { 996*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_UNSPEC, 997*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_STATE, 998*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_MII_STATUS, 999*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_LINK_FAILURE_COUNT, 1000*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_PERM_HWADDR, 1001*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_QUEUE_ID, 1002*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_AD_AGGREGATOR_ID, 1003*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE, 1004*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE, 1005*858ea5e5SAndroid Build Coastguard Worker IFLA_BOND_SLAVE_PRIO, 1006*858ea5e5SAndroid Build Coastguard Worker __IFLA_BOND_SLAVE_MAX, 1007*858ea5e5SAndroid Build Coastguard Worker }; 1008*858ea5e5SAndroid Build Coastguard Worker 1009*858ea5e5SAndroid Build Coastguard Worker #define IFLA_BOND_SLAVE_MAX (__IFLA_BOND_SLAVE_MAX - 1) 1010*858ea5e5SAndroid Build Coastguard Worker 1011*858ea5e5SAndroid Build Coastguard Worker /* SR-IOV virtual function management section */ 1012*858ea5e5SAndroid Build Coastguard Worker 1013*858ea5e5SAndroid Build Coastguard Worker enum { 1014*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_INFO_UNSPEC, 1015*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_INFO, 1016*858ea5e5SAndroid Build Coastguard Worker __IFLA_VF_INFO_MAX, 1017*858ea5e5SAndroid Build Coastguard Worker }; 1018*858ea5e5SAndroid Build Coastguard Worker 1019*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1) 1020*858ea5e5SAndroid Build Coastguard Worker 1021*858ea5e5SAndroid Build Coastguard Worker enum { 1022*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_UNSPEC, 1023*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_MAC, /* Hardware queue specific attributes */ 1024*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_VLAN, /* VLAN ID and QoS */ 1025*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_TX_RATE, /* Max TX Bandwidth Allocation */ 1026*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */ 1027*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */ 1028*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_RATE, /* Min and Max TX Bandwidth Allocation */ 1029*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_RSS_QUERY_EN, /* RSS Redirection Table and Hash Key query 1030*858ea5e5SAndroid Build Coastguard Worker * on/off switch 1031*858ea5e5SAndroid Build Coastguard Worker */ 1032*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS, /* network device statistics */ 1033*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_TRUST, /* Trust VF */ 1034*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */ 1035*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */ 1036*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_VLAN_LIST, /* nested list of vlans, option for QinQ */ 1037*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_BROADCAST, /* VF broadcast */ 1038*858ea5e5SAndroid Build Coastguard Worker __IFLA_VF_MAX, 1039*858ea5e5SAndroid Build Coastguard Worker }; 1040*858ea5e5SAndroid Build Coastguard Worker 1041*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VF_MAX (__IFLA_VF_MAX - 1) 1042*858ea5e5SAndroid Build Coastguard Worker 1043*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_mac { 1044*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1045*858ea5e5SAndroid Build Coastguard Worker __u8 mac[32]; /* MAX_ADDR_LEN */ 1046*858ea5e5SAndroid Build Coastguard Worker }; 1047*858ea5e5SAndroid Build Coastguard Worker 1048*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_broadcast { 1049*858ea5e5SAndroid Build Coastguard Worker __u8 broadcast[32]; 1050*858ea5e5SAndroid Build Coastguard Worker }; 1051*858ea5e5SAndroid Build Coastguard Worker 1052*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_vlan { 1053*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1054*858ea5e5SAndroid Build Coastguard Worker __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ 1055*858ea5e5SAndroid Build Coastguard Worker __u32 qos; 1056*858ea5e5SAndroid Build Coastguard Worker }; 1057*858ea5e5SAndroid Build Coastguard Worker 1058*858ea5e5SAndroid Build Coastguard Worker enum { 1059*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_VLAN_INFO_UNSPEC, 1060*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_VLAN_INFO, /* VLAN ID, QoS and VLAN protocol */ 1061*858ea5e5SAndroid Build Coastguard Worker __IFLA_VF_VLAN_INFO_MAX, 1062*858ea5e5SAndroid Build Coastguard Worker }; 1063*858ea5e5SAndroid Build Coastguard Worker 1064*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VF_VLAN_INFO_MAX (__IFLA_VF_VLAN_INFO_MAX - 1) 1065*858ea5e5SAndroid Build Coastguard Worker #define MAX_VLAN_LIST_LEN 1 1066*858ea5e5SAndroid Build Coastguard Worker 1067*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_vlan_info { 1068*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1069*858ea5e5SAndroid Build Coastguard Worker __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ 1070*858ea5e5SAndroid Build Coastguard Worker __u32 qos; 1071*858ea5e5SAndroid Build Coastguard Worker __be16 vlan_proto; /* VLAN protocol either 802.1Q or 802.1ad */ 1072*858ea5e5SAndroid Build Coastguard Worker }; 1073*858ea5e5SAndroid Build Coastguard Worker 1074*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_tx_rate { 1075*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1076*858ea5e5SAndroid Build Coastguard Worker __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ 1077*858ea5e5SAndroid Build Coastguard Worker }; 1078*858ea5e5SAndroid Build Coastguard Worker 1079*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_rate { 1080*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1081*858ea5e5SAndroid Build Coastguard Worker __u32 min_tx_rate; /* Min Bandwidth in Mbps */ 1082*858ea5e5SAndroid Build Coastguard Worker __u32 max_tx_rate; /* Max Bandwidth in Mbps */ 1083*858ea5e5SAndroid Build Coastguard Worker }; 1084*858ea5e5SAndroid Build Coastguard Worker 1085*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_spoofchk { 1086*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1087*858ea5e5SAndroid Build Coastguard Worker __u32 setting; 1088*858ea5e5SAndroid Build Coastguard Worker }; 1089*858ea5e5SAndroid Build Coastguard Worker 1090*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_guid { 1091*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1092*858ea5e5SAndroid Build Coastguard Worker __u64 guid; 1093*858ea5e5SAndroid Build Coastguard Worker }; 1094*858ea5e5SAndroid Build Coastguard Worker 1095*858ea5e5SAndroid Build Coastguard Worker enum { 1096*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_LINK_STATE_AUTO, /* link state of the uplink */ 1097*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_LINK_STATE_ENABLE, /* link always up */ 1098*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_LINK_STATE_DISABLE, /* link always down */ 1099*858ea5e5SAndroid Build Coastguard Worker __IFLA_VF_LINK_STATE_MAX, 1100*858ea5e5SAndroid Build Coastguard Worker }; 1101*858ea5e5SAndroid Build Coastguard Worker 1102*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_link_state { 1103*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1104*858ea5e5SAndroid Build Coastguard Worker __u32 link_state; 1105*858ea5e5SAndroid Build Coastguard Worker }; 1106*858ea5e5SAndroid Build Coastguard Worker 1107*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_rss_query_en { 1108*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1109*858ea5e5SAndroid Build Coastguard Worker __u32 setting; 1110*858ea5e5SAndroid Build Coastguard Worker }; 1111*858ea5e5SAndroid Build Coastguard Worker 1112*858ea5e5SAndroid Build Coastguard Worker enum { 1113*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS_RX_PACKETS, 1114*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS_TX_PACKETS, 1115*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS_RX_BYTES, 1116*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS_TX_BYTES, 1117*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS_BROADCAST, 1118*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS_MULTICAST, 1119*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS_PAD, 1120*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS_RX_DROPPED, 1121*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_STATS_TX_DROPPED, 1122*858ea5e5SAndroid Build Coastguard Worker __IFLA_VF_STATS_MAX, 1123*858ea5e5SAndroid Build Coastguard Worker }; 1124*858ea5e5SAndroid Build Coastguard Worker 1125*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1) 1126*858ea5e5SAndroid Build Coastguard Worker 1127*858ea5e5SAndroid Build Coastguard Worker struct ifla_vf_trust { 1128*858ea5e5SAndroid Build Coastguard Worker __u32 vf; 1129*858ea5e5SAndroid Build Coastguard Worker __u32 setting; 1130*858ea5e5SAndroid Build Coastguard Worker }; 1131*858ea5e5SAndroid Build Coastguard Worker 1132*858ea5e5SAndroid Build Coastguard Worker /* VF ports management section 1133*858ea5e5SAndroid Build Coastguard Worker * 1134*858ea5e5SAndroid Build Coastguard Worker * Nested layout of set/get msg is: 1135*858ea5e5SAndroid Build Coastguard Worker * 1136*858ea5e5SAndroid Build Coastguard Worker * [IFLA_NUM_VF] 1137*858ea5e5SAndroid Build Coastguard Worker * [IFLA_VF_PORTS] 1138*858ea5e5SAndroid Build Coastguard Worker * [IFLA_VF_PORT] 1139*858ea5e5SAndroid Build Coastguard Worker * [IFLA_PORT_*], ... 1140*858ea5e5SAndroid Build Coastguard Worker * [IFLA_VF_PORT] 1141*858ea5e5SAndroid Build Coastguard Worker * [IFLA_PORT_*], ... 1142*858ea5e5SAndroid Build Coastguard Worker * ... 1143*858ea5e5SAndroid Build Coastguard Worker * [IFLA_PORT_SELF] 1144*858ea5e5SAndroid Build Coastguard Worker * [IFLA_PORT_*], ... 1145*858ea5e5SAndroid Build Coastguard Worker */ 1146*858ea5e5SAndroid Build Coastguard Worker 1147*858ea5e5SAndroid Build Coastguard Worker enum { 1148*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_PORT_UNSPEC, 1149*858ea5e5SAndroid Build Coastguard Worker IFLA_VF_PORT, /* nest */ 1150*858ea5e5SAndroid Build Coastguard Worker __IFLA_VF_PORT_MAX, 1151*858ea5e5SAndroid Build Coastguard Worker }; 1152*858ea5e5SAndroid Build Coastguard Worker 1153*858ea5e5SAndroid Build Coastguard Worker #define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1) 1154*858ea5e5SAndroid Build Coastguard Worker 1155*858ea5e5SAndroid Build Coastguard Worker enum { 1156*858ea5e5SAndroid Build Coastguard Worker IFLA_PORT_UNSPEC, 1157*858ea5e5SAndroid Build Coastguard Worker IFLA_PORT_VF, /* __u32 */ 1158*858ea5e5SAndroid Build Coastguard Worker IFLA_PORT_PROFILE, /* string */ 1159*858ea5e5SAndroid Build Coastguard Worker IFLA_PORT_VSI_TYPE, /* 802.1Qbg (pre-)standard VDP */ 1160*858ea5e5SAndroid Build Coastguard Worker IFLA_PORT_INSTANCE_UUID, /* binary UUID */ 1161*858ea5e5SAndroid Build Coastguard Worker IFLA_PORT_HOST_UUID, /* binary UUID */ 1162*858ea5e5SAndroid Build Coastguard Worker IFLA_PORT_REQUEST, /* __u8 */ 1163*858ea5e5SAndroid Build Coastguard Worker IFLA_PORT_RESPONSE, /* __u16, output only */ 1164*858ea5e5SAndroid Build Coastguard Worker __IFLA_PORT_MAX, 1165*858ea5e5SAndroid Build Coastguard Worker }; 1166*858ea5e5SAndroid Build Coastguard Worker 1167*858ea5e5SAndroid Build Coastguard Worker #define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1) 1168*858ea5e5SAndroid Build Coastguard Worker 1169*858ea5e5SAndroid Build Coastguard Worker #define PORT_PROFILE_MAX 40 1170*858ea5e5SAndroid Build Coastguard Worker #define PORT_UUID_MAX 16 1171*858ea5e5SAndroid Build Coastguard Worker #define PORT_SELF_VF -1 1172*858ea5e5SAndroid Build Coastguard Worker 1173*858ea5e5SAndroid Build Coastguard Worker enum { 1174*858ea5e5SAndroid Build Coastguard Worker PORT_REQUEST_PREASSOCIATE = 0, 1175*858ea5e5SAndroid Build Coastguard Worker PORT_REQUEST_PREASSOCIATE_RR, 1176*858ea5e5SAndroid Build Coastguard Worker PORT_REQUEST_ASSOCIATE, 1177*858ea5e5SAndroid Build Coastguard Worker PORT_REQUEST_DISASSOCIATE, 1178*858ea5e5SAndroid Build Coastguard Worker }; 1179*858ea5e5SAndroid Build Coastguard Worker 1180*858ea5e5SAndroid Build Coastguard Worker enum { 1181*858ea5e5SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_SUCCESS = 0, 1182*858ea5e5SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_INVALID_FORMAT, 1183*858ea5e5SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES, 1184*858ea5e5SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_UNUSED_VTID, 1185*858ea5e5SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_VTID_VIOLATION, 1186*858ea5e5SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION, 1187*858ea5e5SAndroid Build Coastguard Worker PORT_VDP_RESPONSE_OUT_OF_SYNC, 1188*858ea5e5SAndroid Build Coastguard Worker /* 0x08-0xFF reserved for future VDP use */ 1189*858ea5e5SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_SUCCESS = 0x100, 1190*858ea5e5SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_INPROGRESS, 1191*858ea5e5SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_INVALID, 1192*858ea5e5SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_BADSTATE, 1193*858ea5e5SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES, 1194*858ea5e5SAndroid Build Coastguard Worker PORT_PROFILE_RESPONSE_ERROR, 1195*858ea5e5SAndroid Build Coastguard Worker }; 1196*858ea5e5SAndroid Build Coastguard Worker 1197*858ea5e5SAndroid Build Coastguard Worker struct ifla_port_vsi { 1198*858ea5e5SAndroid Build Coastguard Worker __u8 vsi_mgr_id; 1199*858ea5e5SAndroid Build Coastguard Worker __u8 vsi_type_id[3]; 1200*858ea5e5SAndroid Build Coastguard Worker __u8 vsi_type_version; 1201*858ea5e5SAndroid Build Coastguard Worker __u8 pad[3]; 1202*858ea5e5SAndroid Build Coastguard Worker }; 1203*858ea5e5SAndroid Build Coastguard Worker 1204*858ea5e5SAndroid Build Coastguard Worker 1205*858ea5e5SAndroid Build Coastguard Worker /* IPoIB section */ 1206*858ea5e5SAndroid Build Coastguard Worker 1207*858ea5e5SAndroid Build Coastguard Worker enum { 1208*858ea5e5SAndroid Build Coastguard Worker IFLA_IPOIB_UNSPEC, 1209*858ea5e5SAndroid Build Coastguard Worker IFLA_IPOIB_PKEY, 1210*858ea5e5SAndroid Build Coastguard Worker IFLA_IPOIB_MODE, 1211*858ea5e5SAndroid Build Coastguard Worker IFLA_IPOIB_UMCAST, 1212*858ea5e5SAndroid Build Coastguard Worker __IFLA_IPOIB_MAX 1213*858ea5e5SAndroid Build Coastguard Worker }; 1214*858ea5e5SAndroid Build Coastguard Worker 1215*858ea5e5SAndroid Build Coastguard Worker enum { 1216*858ea5e5SAndroid Build Coastguard Worker IPOIB_MODE_DATAGRAM = 0, /* using unreliable datagram QPs */ 1217*858ea5e5SAndroid Build Coastguard Worker IPOIB_MODE_CONNECTED = 1, /* using connected QPs */ 1218*858ea5e5SAndroid Build Coastguard Worker }; 1219*858ea5e5SAndroid Build Coastguard Worker 1220*858ea5e5SAndroid Build Coastguard Worker #define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1) 1221*858ea5e5SAndroid Build Coastguard Worker 1222*858ea5e5SAndroid Build Coastguard Worker 1223*858ea5e5SAndroid Build Coastguard Worker /* HSR/PRP section, both uses same interface */ 1224*858ea5e5SAndroid Build Coastguard Worker 1225*858ea5e5SAndroid Build Coastguard Worker /* Different redundancy protocols for hsr device */ 1226*858ea5e5SAndroid Build Coastguard Worker enum { 1227*858ea5e5SAndroid Build Coastguard Worker HSR_PROTOCOL_HSR, 1228*858ea5e5SAndroid Build Coastguard Worker HSR_PROTOCOL_PRP, 1229*858ea5e5SAndroid Build Coastguard Worker HSR_PROTOCOL_MAX, 1230*858ea5e5SAndroid Build Coastguard Worker }; 1231*858ea5e5SAndroid Build Coastguard Worker 1232*858ea5e5SAndroid Build Coastguard Worker enum { 1233*858ea5e5SAndroid Build Coastguard Worker IFLA_HSR_UNSPEC, 1234*858ea5e5SAndroid Build Coastguard Worker IFLA_HSR_SLAVE1, 1235*858ea5e5SAndroid Build Coastguard Worker IFLA_HSR_SLAVE2, 1236*858ea5e5SAndroid Build Coastguard Worker IFLA_HSR_MULTICAST_SPEC, /* Last byte of supervision addr */ 1237*858ea5e5SAndroid Build Coastguard Worker IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */ 1238*858ea5e5SAndroid Build Coastguard Worker IFLA_HSR_SEQ_NR, 1239*858ea5e5SAndroid Build Coastguard Worker IFLA_HSR_VERSION, /* HSR version */ 1240*858ea5e5SAndroid Build Coastguard Worker IFLA_HSR_PROTOCOL, /* Indicate different protocol than 1241*858ea5e5SAndroid Build Coastguard Worker * HSR. For example PRP. 1242*858ea5e5SAndroid Build Coastguard Worker */ 1243*858ea5e5SAndroid Build Coastguard Worker __IFLA_HSR_MAX, 1244*858ea5e5SAndroid Build Coastguard Worker }; 1245*858ea5e5SAndroid Build Coastguard Worker 1246*858ea5e5SAndroid Build Coastguard Worker #define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1) 1247*858ea5e5SAndroid Build Coastguard Worker 1248*858ea5e5SAndroid Build Coastguard Worker /* STATS section */ 1249*858ea5e5SAndroid Build Coastguard Worker 1250*858ea5e5SAndroid Build Coastguard Worker struct if_stats_msg { 1251*858ea5e5SAndroid Build Coastguard Worker __u8 family; 1252*858ea5e5SAndroid Build Coastguard Worker __u8 pad1; 1253*858ea5e5SAndroid Build Coastguard Worker __u16 pad2; 1254*858ea5e5SAndroid Build Coastguard Worker __u32 ifindex; 1255*858ea5e5SAndroid Build Coastguard Worker __u32 filter_mask; 1256*858ea5e5SAndroid Build Coastguard Worker }; 1257*858ea5e5SAndroid Build Coastguard Worker 1258*858ea5e5SAndroid Build Coastguard Worker /* A stats attribute can be netdev specific or a global stat. 1259*858ea5e5SAndroid Build Coastguard Worker * For netdev stats, lets use the prefix IFLA_STATS_LINK_* 1260*858ea5e5SAndroid Build Coastguard Worker */ 1261*858ea5e5SAndroid Build Coastguard Worker enum { 1262*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */ 1263*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS_LINK_64, 1264*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS_LINK_XSTATS, 1265*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS_LINK_XSTATS_SLAVE, 1266*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS_LINK_OFFLOAD_XSTATS, 1267*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS_AF_SPEC, 1268*858ea5e5SAndroid Build Coastguard Worker __IFLA_STATS_MAX, 1269*858ea5e5SAndroid Build Coastguard Worker }; 1270*858ea5e5SAndroid Build Coastguard Worker 1271*858ea5e5SAndroid Build Coastguard Worker #define IFLA_STATS_MAX (__IFLA_STATS_MAX - 1) 1272*858ea5e5SAndroid Build Coastguard Worker 1273*858ea5e5SAndroid Build Coastguard Worker #define IFLA_STATS_FILTER_BIT(ATTR) (1 << (ATTR - 1)) 1274*858ea5e5SAndroid Build Coastguard Worker 1275*858ea5e5SAndroid Build Coastguard Worker enum { 1276*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS_GETSET_UNSPEC, 1277*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS_GET_FILTERS, /* Nest of IFLA_STATS_LINK_xxx, each a u32 with 1278*858ea5e5SAndroid Build Coastguard Worker * a filter mask for the corresponding group. 1279*858ea5e5SAndroid Build Coastguard Worker */ 1280*858ea5e5SAndroid Build Coastguard Worker IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS, /* 0 or 1 as u8 */ 1281*858ea5e5SAndroid Build Coastguard Worker __IFLA_STATS_GETSET_MAX, 1282*858ea5e5SAndroid Build Coastguard Worker }; 1283*858ea5e5SAndroid Build Coastguard Worker 1284*858ea5e5SAndroid Build Coastguard Worker #define IFLA_STATS_GETSET_MAX (__IFLA_STATS_GETSET_MAX - 1) 1285*858ea5e5SAndroid Build Coastguard Worker 1286*858ea5e5SAndroid Build Coastguard Worker /* These are embedded into IFLA_STATS_LINK_XSTATS: 1287*858ea5e5SAndroid Build Coastguard Worker * [IFLA_STATS_LINK_XSTATS] 1288*858ea5e5SAndroid Build Coastguard Worker * -> [LINK_XSTATS_TYPE_xxx] 1289*858ea5e5SAndroid Build Coastguard Worker * -> [rtnl link type specific attributes] 1290*858ea5e5SAndroid Build Coastguard Worker */ 1291*858ea5e5SAndroid Build Coastguard Worker enum { 1292*858ea5e5SAndroid Build Coastguard Worker LINK_XSTATS_TYPE_UNSPEC, 1293*858ea5e5SAndroid Build Coastguard Worker LINK_XSTATS_TYPE_BRIDGE, 1294*858ea5e5SAndroid Build Coastguard Worker LINK_XSTATS_TYPE_BOND, 1295*858ea5e5SAndroid Build Coastguard Worker __LINK_XSTATS_TYPE_MAX 1296*858ea5e5SAndroid Build Coastguard Worker }; 1297*858ea5e5SAndroid Build Coastguard Worker #define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1) 1298*858ea5e5SAndroid Build Coastguard Worker 1299*858ea5e5SAndroid Build Coastguard Worker /* These are stats embedded into IFLA_STATS_LINK_OFFLOAD_XSTATS */ 1300*858ea5e5SAndroid Build Coastguard Worker enum { 1301*858ea5e5SAndroid Build Coastguard Worker IFLA_OFFLOAD_XSTATS_UNSPEC, 1302*858ea5e5SAndroid Build Coastguard Worker IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */ 1303*858ea5e5SAndroid Build Coastguard Worker IFLA_OFFLOAD_XSTATS_HW_S_INFO, /* HW stats info. A nest */ 1304*858ea5e5SAndroid Build Coastguard Worker IFLA_OFFLOAD_XSTATS_L3_STATS, /* struct rtnl_hw_stats64 */ 1305*858ea5e5SAndroid Build Coastguard Worker __IFLA_OFFLOAD_XSTATS_MAX 1306*858ea5e5SAndroid Build Coastguard Worker }; 1307*858ea5e5SAndroid Build Coastguard Worker #define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1) 1308*858ea5e5SAndroid Build Coastguard Worker 1309*858ea5e5SAndroid Build Coastguard Worker enum { 1310*858ea5e5SAndroid Build Coastguard Worker IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC, 1311*858ea5e5SAndroid Build Coastguard Worker IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST, /* u8 */ 1312*858ea5e5SAndroid Build Coastguard Worker IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED, /* u8 */ 1313*858ea5e5SAndroid Build Coastguard Worker __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX, 1314*858ea5e5SAndroid Build Coastguard Worker }; 1315*858ea5e5SAndroid Build Coastguard Worker #define IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX \ 1316*858ea5e5SAndroid Build Coastguard Worker (__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX - 1) 1317*858ea5e5SAndroid Build Coastguard Worker 1318*858ea5e5SAndroid Build Coastguard Worker /* XDP section */ 1319*858ea5e5SAndroid Build Coastguard Worker 1320*858ea5e5SAndroid Build Coastguard Worker #define XDP_FLAGS_UPDATE_IF_NOEXIST (1U << 0) 1321*858ea5e5SAndroid Build Coastguard Worker #define XDP_FLAGS_SKB_MODE (1U << 1) 1322*858ea5e5SAndroid Build Coastguard Worker #define XDP_FLAGS_DRV_MODE (1U << 2) 1323*858ea5e5SAndroid Build Coastguard Worker #define XDP_FLAGS_HW_MODE (1U << 3) 1324*858ea5e5SAndroid Build Coastguard Worker #define XDP_FLAGS_REPLACE (1U << 4) 1325*858ea5e5SAndroid Build Coastguard Worker #define XDP_FLAGS_MODES (XDP_FLAGS_SKB_MODE | \ 1326*858ea5e5SAndroid Build Coastguard Worker XDP_FLAGS_DRV_MODE | \ 1327*858ea5e5SAndroid Build Coastguard Worker XDP_FLAGS_HW_MODE) 1328*858ea5e5SAndroid Build Coastguard Worker #define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST | \ 1329*858ea5e5SAndroid Build Coastguard Worker XDP_FLAGS_MODES | XDP_FLAGS_REPLACE) 1330*858ea5e5SAndroid Build Coastguard Worker 1331*858ea5e5SAndroid Build Coastguard Worker /* These are stored into IFLA_XDP_ATTACHED on dump. */ 1332*858ea5e5SAndroid Build Coastguard Worker enum { 1333*858ea5e5SAndroid Build Coastguard Worker XDP_ATTACHED_NONE = 0, 1334*858ea5e5SAndroid Build Coastguard Worker XDP_ATTACHED_DRV, 1335*858ea5e5SAndroid Build Coastguard Worker XDP_ATTACHED_SKB, 1336*858ea5e5SAndroid Build Coastguard Worker XDP_ATTACHED_HW, 1337*858ea5e5SAndroid Build Coastguard Worker XDP_ATTACHED_MULTI, 1338*858ea5e5SAndroid Build Coastguard Worker }; 1339*858ea5e5SAndroid Build Coastguard Worker 1340*858ea5e5SAndroid Build Coastguard Worker enum { 1341*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP_UNSPEC, 1342*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP_FD, 1343*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP_ATTACHED, 1344*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP_FLAGS, 1345*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP_PROG_ID, 1346*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP_DRV_PROG_ID, 1347*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP_SKB_PROG_ID, 1348*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP_HW_PROG_ID, 1349*858ea5e5SAndroid Build Coastguard Worker IFLA_XDP_EXPECTED_FD, 1350*858ea5e5SAndroid Build Coastguard Worker __IFLA_XDP_MAX, 1351*858ea5e5SAndroid Build Coastguard Worker }; 1352*858ea5e5SAndroid Build Coastguard Worker 1353*858ea5e5SAndroid Build Coastguard Worker #define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1) 1354*858ea5e5SAndroid Build Coastguard Worker 1355*858ea5e5SAndroid Build Coastguard Worker enum { 1356*858ea5e5SAndroid Build Coastguard Worker IFLA_EVENT_NONE, 1357*858ea5e5SAndroid Build Coastguard Worker IFLA_EVENT_REBOOT, /* internal reset / reboot */ 1358*858ea5e5SAndroid Build Coastguard Worker IFLA_EVENT_FEATURES, /* change in offload features */ 1359*858ea5e5SAndroid Build Coastguard Worker IFLA_EVENT_BONDING_FAILOVER, /* change in active slave */ 1360*858ea5e5SAndroid Build Coastguard Worker IFLA_EVENT_NOTIFY_PEERS, /* re-sent grat. arp/ndisc */ 1361*858ea5e5SAndroid Build Coastguard Worker IFLA_EVENT_IGMP_RESEND, /* re-sent IGMP JOIN */ 1362*858ea5e5SAndroid Build Coastguard Worker IFLA_EVENT_BONDING_OPTIONS, /* change in bonding options */ 1363*858ea5e5SAndroid Build Coastguard Worker }; 1364*858ea5e5SAndroid Build Coastguard Worker 1365*858ea5e5SAndroid Build Coastguard Worker /* tun section */ 1366*858ea5e5SAndroid Build Coastguard Worker 1367*858ea5e5SAndroid Build Coastguard Worker enum { 1368*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_UNSPEC, 1369*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_OWNER, 1370*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_GROUP, 1371*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_TYPE, 1372*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_PI, 1373*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_VNET_HDR, 1374*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_PERSIST, 1375*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_MULTI_QUEUE, 1376*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_NUM_QUEUES, 1377*858ea5e5SAndroid Build Coastguard Worker IFLA_TUN_NUM_DISABLED_QUEUES, 1378*858ea5e5SAndroid Build Coastguard Worker __IFLA_TUN_MAX, 1379*858ea5e5SAndroid Build Coastguard Worker }; 1380*858ea5e5SAndroid Build Coastguard Worker 1381*858ea5e5SAndroid Build Coastguard Worker #define IFLA_TUN_MAX (__IFLA_TUN_MAX - 1) 1382*858ea5e5SAndroid Build Coastguard Worker 1383*858ea5e5SAndroid Build Coastguard Worker /* rmnet section */ 1384*858ea5e5SAndroid Build Coastguard Worker 1385*858ea5e5SAndroid Build Coastguard Worker #define RMNET_FLAGS_INGRESS_DEAGGREGATION (1U << 0) 1386*858ea5e5SAndroid Build Coastguard Worker #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1) 1387*858ea5e5SAndroid Build Coastguard Worker #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2) 1388*858ea5e5SAndroid Build Coastguard Worker #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3) 1389*858ea5e5SAndroid Build Coastguard Worker #define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4) 1390*858ea5e5SAndroid Build Coastguard Worker #define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5) 1391*858ea5e5SAndroid Build Coastguard Worker 1392*858ea5e5SAndroid Build Coastguard Worker enum { 1393*858ea5e5SAndroid Build Coastguard Worker IFLA_RMNET_UNSPEC, 1394*858ea5e5SAndroid Build Coastguard Worker IFLA_RMNET_MUX_ID, 1395*858ea5e5SAndroid Build Coastguard Worker IFLA_RMNET_FLAGS, 1396*858ea5e5SAndroid Build Coastguard Worker __IFLA_RMNET_MAX, 1397*858ea5e5SAndroid Build Coastguard Worker }; 1398*858ea5e5SAndroid Build Coastguard Worker 1399*858ea5e5SAndroid Build Coastguard Worker #define IFLA_RMNET_MAX (__IFLA_RMNET_MAX - 1) 1400*858ea5e5SAndroid Build Coastguard Worker 1401*858ea5e5SAndroid Build Coastguard Worker struct ifla_rmnet_flags { 1402*858ea5e5SAndroid Build Coastguard Worker __u32 flags; 1403*858ea5e5SAndroid Build Coastguard Worker __u32 mask; 1404*858ea5e5SAndroid Build Coastguard Worker }; 1405*858ea5e5SAndroid Build Coastguard Worker 1406*858ea5e5SAndroid Build Coastguard Worker /* MCTP section */ 1407*858ea5e5SAndroid Build Coastguard Worker 1408*858ea5e5SAndroid Build Coastguard Worker enum { 1409*858ea5e5SAndroid Build Coastguard Worker IFLA_MCTP_UNSPEC, 1410*858ea5e5SAndroid Build Coastguard Worker IFLA_MCTP_NET, 1411*858ea5e5SAndroid Build Coastguard Worker __IFLA_MCTP_MAX, 1412*858ea5e5SAndroid Build Coastguard Worker }; 1413*858ea5e5SAndroid Build Coastguard Worker 1414*858ea5e5SAndroid Build Coastguard Worker #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1) 1415*858ea5e5SAndroid Build Coastguard Worker 1416*858ea5e5SAndroid Build Coastguard Worker /* DSA section */ 1417*858ea5e5SAndroid Build Coastguard Worker 1418*858ea5e5SAndroid Build Coastguard Worker enum { 1419*858ea5e5SAndroid Build Coastguard Worker IFLA_DSA_UNSPEC, 1420*858ea5e5SAndroid Build Coastguard Worker IFLA_DSA_MASTER, 1421*858ea5e5SAndroid Build Coastguard Worker __IFLA_DSA_MAX, 1422*858ea5e5SAndroid Build Coastguard Worker }; 1423*858ea5e5SAndroid Build Coastguard Worker 1424*858ea5e5SAndroid Build Coastguard Worker #define IFLA_DSA_MAX (__IFLA_DSA_MAX - 1) 1425*858ea5e5SAndroid Build Coastguard Worker 1426*858ea5e5SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_IF_LINK_H */ 1427