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