16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2607ca46eSDavid Howells #ifndef _UAPI_LINUX_IF_LINK_H 3607ca46eSDavid Howells #define _UAPI_LINUX_IF_LINK_H 4607ca46eSDavid Howells 5607ca46eSDavid Howells #include <linux/types.h> 6607ca46eSDavid Howells #include <linux/netlink.h> 7607ca46eSDavid Howells 8607ca46eSDavid Howells /* This struct should be in sync with struct rtnl_link_stats64 */ 9607ca46eSDavid Howells struct rtnl_link_stats { 1078a3ea55SJakub Kicinski __u32 rx_packets; 1178a3ea55SJakub Kicinski __u32 tx_packets; 1278a3ea55SJakub Kicinski __u32 rx_bytes; 1378a3ea55SJakub Kicinski __u32 tx_bytes; 1478a3ea55SJakub Kicinski __u32 rx_errors; 1578a3ea55SJakub Kicinski __u32 tx_errors; 1678a3ea55SJakub Kicinski __u32 rx_dropped; 1778a3ea55SJakub Kicinski __u32 tx_dropped; 1878a3ea55SJakub Kicinski __u32 multicast; 19607ca46eSDavid Howells __u32 collisions; 20607ca46eSDavid Howells /* detailed rx_errors: */ 21607ca46eSDavid Howells __u32 rx_length_errors; 2278a3ea55SJakub Kicinski __u32 rx_over_errors; 2378a3ea55SJakub Kicinski __u32 rx_crc_errors; 2478a3ea55SJakub Kicinski __u32 rx_frame_errors; 2578a3ea55SJakub Kicinski __u32 rx_fifo_errors; 2678a3ea55SJakub Kicinski __u32 rx_missed_errors; 27607ca46eSDavid Howells 28607ca46eSDavid Howells /* detailed tx_errors */ 29607ca46eSDavid Howells __u32 tx_aborted_errors; 30607ca46eSDavid Howells __u32 tx_carrier_errors; 31607ca46eSDavid Howells __u32 tx_fifo_errors; 32607ca46eSDavid Howells __u32 tx_heartbeat_errors; 33607ca46eSDavid Howells __u32 tx_window_errors; 34607ca46eSDavid Howells 35607ca46eSDavid Howells /* for cslip etc */ 36607ca46eSDavid Howells __u32 rx_compressed; 37607ca46eSDavid Howells __u32 tx_compressed; 386e7333d3SJarod Wilson 3978a3ea55SJakub Kicinski __u32 rx_nohandler; 40607ca46eSDavid Howells }; 41607ca46eSDavid Howells 420db0c34cSJakub Kicinski /** 430db0c34cSJakub Kicinski * struct rtnl_link_stats64 - The main device statistics structure. 440db0c34cSJakub Kicinski * 450db0c34cSJakub Kicinski * @rx_packets: Number of good packets received by the interface. 460db0c34cSJakub Kicinski * For hardware interfaces counts all good packets received from the device 470db0c34cSJakub Kicinski * by the host, including packets which host had to drop at various stages 480db0c34cSJakub Kicinski * of processing (even in the driver). 490db0c34cSJakub Kicinski * 500db0c34cSJakub Kicinski * @tx_packets: Number of packets successfully transmitted. 510db0c34cSJakub Kicinski * For hardware interfaces counts packets which host was able to successfully 520db0c34cSJakub Kicinski * hand over to the device, which does not necessarily mean that packets 530db0c34cSJakub Kicinski * had been successfully transmitted out of the device, only that device 540db0c34cSJakub Kicinski * acknowledged it copied them out of host memory. 550db0c34cSJakub Kicinski * 560db0c34cSJakub Kicinski * @rx_bytes: Number of good received bytes, corresponding to @rx_packets. 570db0c34cSJakub Kicinski * 580db0c34cSJakub Kicinski * For IEEE 802.3 devices should count the length of Ethernet Frames 590db0c34cSJakub Kicinski * excluding the FCS. 600db0c34cSJakub Kicinski * 610db0c34cSJakub Kicinski * @tx_bytes: Number of good transmitted bytes, corresponding to @tx_packets. 620db0c34cSJakub Kicinski * 630db0c34cSJakub Kicinski * For IEEE 802.3 devices should count the length of Ethernet Frames 640db0c34cSJakub Kicinski * excluding the FCS. 650db0c34cSJakub Kicinski * 660db0c34cSJakub Kicinski * @rx_errors: Total number of bad packets received on this network device. 670db0c34cSJakub Kicinski * This counter must include events counted by @rx_length_errors, 680db0c34cSJakub Kicinski * @rx_crc_errors, @rx_frame_errors and other errors not otherwise 690db0c34cSJakub Kicinski * counted. 700db0c34cSJakub Kicinski * 710db0c34cSJakub Kicinski * @tx_errors: Total number of transmit problems. 720db0c34cSJakub Kicinski * This counter must include events counter by @tx_aborted_errors, 730db0c34cSJakub Kicinski * @tx_carrier_errors, @tx_fifo_errors, @tx_heartbeat_errors, 740db0c34cSJakub Kicinski * @tx_window_errors and other errors not otherwise counted. 750db0c34cSJakub Kicinski * 760db0c34cSJakub Kicinski * @rx_dropped: Number of packets received but not processed, 770db0c34cSJakub Kicinski * e.g. due to lack of resources or unsupported protocol. 78cf072069SJakub Kicinski * For hardware interfaces this counter may include packets discarded 79cf072069SJakub Kicinski * due to L2 address filtering but should not include packets dropped 80cf072069SJakub Kicinski * by the device due to buffer exhaustion which are counted separately in 810db0c34cSJakub Kicinski * @rx_missed_errors (since procfs folds those two counters together). 820db0c34cSJakub Kicinski * 830db0c34cSJakub Kicinski * @tx_dropped: Number of packets dropped on their way to transmission, 840db0c34cSJakub Kicinski * e.g. due to lack of resources. 850db0c34cSJakub Kicinski * 860db0c34cSJakub Kicinski * @multicast: Multicast packets received. 870db0c34cSJakub Kicinski * For hardware interfaces this statistic is commonly calculated 880db0c34cSJakub Kicinski * at the device level (unlike @rx_packets) and therefore may include 890db0c34cSJakub Kicinski * packets which did not reach the host. 900db0c34cSJakub Kicinski * 910db0c34cSJakub Kicinski * For IEEE 802.3 devices this counter may be equivalent to: 920db0c34cSJakub Kicinski * 930db0c34cSJakub Kicinski * - 30.3.1.1.21 aMulticastFramesReceivedOK 940db0c34cSJakub Kicinski * 950db0c34cSJakub Kicinski * @collisions: Number of collisions during packet transmissions. 960db0c34cSJakub Kicinski * 970db0c34cSJakub Kicinski * @rx_length_errors: Number of packets dropped due to invalid length. 980db0c34cSJakub Kicinski * Part of aggregate "frame" errors in `/proc/net/dev`. 990db0c34cSJakub Kicinski * 1000db0c34cSJakub Kicinski * For IEEE 802.3 devices this counter should be equivalent to a sum 1010db0c34cSJakub Kicinski * of the following attributes: 1020db0c34cSJakub Kicinski * 1030db0c34cSJakub Kicinski * - 30.3.1.1.23 aInRangeLengthErrors 1040db0c34cSJakub Kicinski * - 30.3.1.1.24 aOutOfRangeLengthField 1050db0c34cSJakub Kicinski * - 30.3.1.1.25 aFrameTooLongErrors 1060db0c34cSJakub Kicinski * 1070db0c34cSJakub Kicinski * @rx_over_errors: Receiver FIFO overflow event counter. 1080db0c34cSJakub Kicinski * 1090db0c34cSJakub Kicinski * Historically the count of overflow events. Such events may be 1100db0c34cSJakub Kicinski * reported in the receive descriptors or via interrupts, and may 1110db0c34cSJakub Kicinski * not correspond one-to-one with dropped packets. 1120db0c34cSJakub Kicinski * 1130db0c34cSJakub Kicinski * The recommended interpretation for high speed interfaces is - 1140db0c34cSJakub Kicinski * number of packets dropped because they did not fit into buffers 1150db0c34cSJakub Kicinski * provided by the host, e.g. packets larger than MTU or next buffer 1160db0c34cSJakub Kicinski * in the ring was not available for a scatter transfer. 1170db0c34cSJakub Kicinski * 1180db0c34cSJakub Kicinski * Part of aggregate "frame" errors in `/proc/net/dev`. 1190db0c34cSJakub Kicinski * 1200db0c34cSJakub Kicinski * This statistics was historically used interchangeably with 1210db0c34cSJakub Kicinski * @rx_fifo_errors. 1220db0c34cSJakub Kicinski * 1230db0c34cSJakub Kicinski * This statistic corresponds to hardware events and is not commonly used 1240db0c34cSJakub Kicinski * on software devices. 1250db0c34cSJakub Kicinski * 1260db0c34cSJakub Kicinski * @rx_crc_errors: Number of packets received with a CRC error. 1270db0c34cSJakub Kicinski * Part of aggregate "frame" errors in `/proc/net/dev`. 1280db0c34cSJakub Kicinski * 1290db0c34cSJakub Kicinski * For IEEE 802.3 devices this counter must be equivalent to: 1300db0c34cSJakub Kicinski * 1310db0c34cSJakub Kicinski * - 30.3.1.1.6 aFrameCheckSequenceErrors 1320db0c34cSJakub Kicinski * 1330db0c34cSJakub Kicinski * @rx_frame_errors: Receiver frame alignment errors. 1340db0c34cSJakub Kicinski * Part of aggregate "frame" errors in `/proc/net/dev`. 1350db0c34cSJakub Kicinski * 1360db0c34cSJakub Kicinski * For IEEE 802.3 devices this counter should be equivalent to: 1370db0c34cSJakub Kicinski * 1380db0c34cSJakub Kicinski * - 30.3.1.1.7 aAlignmentErrors 1390db0c34cSJakub Kicinski * 1400db0c34cSJakub Kicinski * @rx_fifo_errors: Receiver FIFO error counter. 1410db0c34cSJakub Kicinski * 1420db0c34cSJakub Kicinski * Historically the count of overflow events. Those events may be 1430db0c34cSJakub Kicinski * reported in the receive descriptors or via interrupts, and may 1440db0c34cSJakub Kicinski * not correspond one-to-one with dropped packets. 1450db0c34cSJakub Kicinski * 1460db0c34cSJakub Kicinski * This statistics was used interchangeably with @rx_over_errors. 1470db0c34cSJakub Kicinski * Not recommended for use in drivers for high speed interfaces. 1480db0c34cSJakub Kicinski * 1490db0c34cSJakub Kicinski * This statistic is used on software devices, e.g. to count software 1500db0c34cSJakub Kicinski * packet queue overflow (can) or sequencing errors (GRE). 1510db0c34cSJakub Kicinski * 1520db0c34cSJakub Kicinski * @rx_missed_errors: Count of packets missed by the host. 1530db0c34cSJakub Kicinski * Folded into the "drop" counter in `/proc/net/dev`. 1540db0c34cSJakub Kicinski * 1550db0c34cSJakub Kicinski * Counts number of packets dropped by the device due to lack 1560db0c34cSJakub Kicinski * of buffer space. This usually indicates that the host interface 1570db0c34cSJakub Kicinski * is slower than the network interface, or host is not keeping up 1580db0c34cSJakub Kicinski * with the receive packet rate. 1590db0c34cSJakub Kicinski * 1600db0c34cSJakub Kicinski * This statistic corresponds to hardware events and is not used 1610db0c34cSJakub Kicinski * on software devices. 1620db0c34cSJakub Kicinski * 1630db0c34cSJakub Kicinski * @tx_aborted_errors: 1640db0c34cSJakub Kicinski * Part of aggregate "carrier" errors in `/proc/net/dev`. 1650db0c34cSJakub Kicinski * For IEEE 802.3 devices capable of half-duplex operation this counter 1660db0c34cSJakub Kicinski * must be equivalent to: 1670db0c34cSJakub Kicinski * 1680db0c34cSJakub Kicinski * - 30.3.1.1.11 aFramesAbortedDueToXSColls 1690db0c34cSJakub Kicinski * 1700db0c34cSJakub Kicinski * High speed interfaces may use this counter as a general device 1710db0c34cSJakub Kicinski * discard counter. 1720db0c34cSJakub Kicinski * 1730db0c34cSJakub Kicinski * @tx_carrier_errors: Number of frame transmission errors due to loss 1740db0c34cSJakub Kicinski * of carrier during transmission. 1750db0c34cSJakub Kicinski * Part of aggregate "carrier" errors in `/proc/net/dev`. 1760db0c34cSJakub Kicinski * 1770db0c34cSJakub Kicinski * For IEEE 802.3 devices this counter must be equivalent to: 1780db0c34cSJakub Kicinski * 1790db0c34cSJakub Kicinski * - 30.3.1.1.13 aCarrierSenseErrors 1800db0c34cSJakub Kicinski * 1810db0c34cSJakub Kicinski * @tx_fifo_errors: Number of frame transmission errors due to device 1820db0c34cSJakub Kicinski * FIFO underrun / underflow. This condition occurs when the device 1830db0c34cSJakub Kicinski * begins transmission of a frame but is unable to deliver the 1840db0c34cSJakub Kicinski * entire frame to the transmitter in time for transmission. 1850db0c34cSJakub Kicinski * Part of aggregate "carrier" errors in `/proc/net/dev`. 1860db0c34cSJakub Kicinski * 1870db0c34cSJakub Kicinski * @tx_heartbeat_errors: Number of Heartbeat / SQE Test errors for 1880db0c34cSJakub Kicinski * old half-duplex Ethernet. 1890db0c34cSJakub Kicinski * Part of aggregate "carrier" errors in `/proc/net/dev`. 1900db0c34cSJakub Kicinski * 1910db0c34cSJakub Kicinski * For IEEE 802.3 devices possibly equivalent to: 1920db0c34cSJakub Kicinski * 1930db0c34cSJakub Kicinski * - 30.3.2.1.4 aSQETestErrors 1940db0c34cSJakub Kicinski * 1950db0c34cSJakub Kicinski * @tx_window_errors: Number of frame transmission errors due 1960db0c34cSJakub Kicinski * to late collisions (for Ethernet - after the first 64B of transmission). 1970db0c34cSJakub Kicinski * Part of aggregate "carrier" errors in `/proc/net/dev`. 1980db0c34cSJakub Kicinski * 1990db0c34cSJakub Kicinski * For IEEE 802.3 devices this counter must be equivalent to: 2000db0c34cSJakub Kicinski * 2010db0c34cSJakub Kicinski * - 30.3.1.1.10 aLateCollisions 2020db0c34cSJakub Kicinski * 2030db0c34cSJakub Kicinski * @rx_compressed: Number of correctly received compressed packets. 2040db0c34cSJakub Kicinski * This counters is only meaningful for interfaces which support 2050db0c34cSJakub Kicinski * packet compression (e.g. CSLIP, PPP). 2060db0c34cSJakub Kicinski * 2070db0c34cSJakub Kicinski * @tx_compressed: Number of transmitted compressed packets. 2080db0c34cSJakub Kicinski * This counters is only meaningful for interfaces which support 2090db0c34cSJakub Kicinski * packet compression (e.g. CSLIP, PPP). 2100db0c34cSJakub Kicinski * 2110db0c34cSJakub Kicinski * @rx_nohandler: Number of packets received on the interface 2120db0c34cSJakub Kicinski * but dropped by the networking stack because the device is 2130db0c34cSJakub Kicinski * not designated to receive packets (e.g. backup link in a bond). 214794c24e9SJeffrey Ji * 215794c24e9SJeffrey Ji * @rx_otherhost_dropped: Number of packets dropped due to mismatch 216794c24e9SJeffrey Ji * in destination MAC address. 2170db0c34cSJakub Kicinski */ 218607ca46eSDavid Howells struct rtnl_link_stats64 { 2190db0c34cSJakub Kicinski __u64 rx_packets; 2200db0c34cSJakub Kicinski __u64 tx_packets; 2210db0c34cSJakub Kicinski __u64 rx_bytes; 2220db0c34cSJakub Kicinski __u64 tx_bytes; 2230db0c34cSJakub Kicinski __u64 rx_errors; 2240db0c34cSJakub Kicinski __u64 tx_errors; 2250db0c34cSJakub Kicinski __u64 rx_dropped; 2260db0c34cSJakub Kicinski __u64 tx_dropped; 2270db0c34cSJakub Kicinski __u64 multicast; 228607ca46eSDavid Howells __u64 collisions; 229607ca46eSDavid Howells 230607ca46eSDavid Howells /* detailed rx_errors: */ 231607ca46eSDavid Howells __u64 rx_length_errors; 2320db0c34cSJakub Kicinski __u64 rx_over_errors; 2330db0c34cSJakub Kicinski __u64 rx_crc_errors; 2340db0c34cSJakub Kicinski __u64 rx_frame_errors; 2350db0c34cSJakub Kicinski __u64 rx_fifo_errors; 2360db0c34cSJakub Kicinski __u64 rx_missed_errors; 237607ca46eSDavid Howells 238607ca46eSDavid Howells /* detailed tx_errors */ 239607ca46eSDavid Howells __u64 tx_aborted_errors; 240607ca46eSDavid Howells __u64 tx_carrier_errors; 241607ca46eSDavid Howells __u64 tx_fifo_errors; 242607ca46eSDavid Howells __u64 tx_heartbeat_errors; 243607ca46eSDavid Howells __u64 tx_window_errors; 244607ca46eSDavid Howells 245607ca46eSDavid Howells /* for cslip etc */ 246607ca46eSDavid Howells __u64 rx_compressed; 247607ca46eSDavid Howells __u64 tx_compressed; 2480db0c34cSJakub Kicinski __u64 rx_nohandler; 249794c24e9SJeffrey Ji 250794c24e9SJeffrey Ji __u64 rx_otherhost_dropped; 251607ca46eSDavid Howells }; 252607ca46eSDavid Howells 2539309f97aSPetr Machata /* Subset of link stats useful for in-HW collection. Meaning of the fields is as 2549309f97aSPetr Machata * for struct rtnl_link_stats64. 2559309f97aSPetr Machata */ 2569309f97aSPetr Machata struct rtnl_hw_stats64 { 2579309f97aSPetr Machata __u64 rx_packets; 2589309f97aSPetr Machata __u64 tx_packets; 2599309f97aSPetr Machata __u64 rx_bytes; 2609309f97aSPetr Machata __u64 tx_bytes; 2619309f97aSPetr Machata __u64 rx_errors; 2629309f97aSPetr Machata __u64 tx_errors; 2639309f97aSPetr Machata __u64 rx_dropped; 2649309f97aSPetr Machata __u64 tx_dropped; 2659309f97aSPetr Machata __u64 multicast; 2669309f97aSPetr Machata }; 2679309f97aSPetr Machata 268607ca46eSDavid Howells /* The struct should be in sync with struct ifmap */ 269607ca46eSDavid Howells struct rtnl_link_ifmap { 270607ca46eSDavid Howells __u64 mem_start; 271607ca46eSDavid Howells __u64 mem_end; 272607ca46eSDavid Howells __u64 base_addr; 273607ca46eSDavid Howells __u16 irq; 274607ca46eSDavid Howells __u8 dma; 275607ca46eSDavid Howells __u8 port; 276607ca46eSDavid Howells }; 277607ca46eSDavid Howells 278607ca46eSDavid Howells /* 279607ca46eSDavid Howells * IFLA_AF_SPEC 280607ca46eSDavid Howells * Contains nested attributes for address family specific attributes. 281607ca46eSDavid Howells * Each address family may create a attribute with the address family 282607ca46eSDavid Howells * number as type and create its own attribute structure in it. 283607ca46eSDavid Howells * 284607ca46eSDavid Howells * Example: 285607ca46eSDavid Howells * [IFLA_AF_SPEC] = { 286607ca46eSDavid Howells * [AF_INET] = { 287607ca46eSDavid Howells * [IFLA_INET_CONF] = ..., 288607ca46eSDavid Howells * }, 289607ca46eSDavid Howells * [AF_INET6] = { 290607ca46eSDavid Howells * [IFLA_INET6_FLAGS] = ..., 291607ca46eSDavid Howells * [IFLA_INET6_CONF] = ..., 292607ca46eSDavid Howells * } 293607ca46eSDavid Howells * } 294607ca46eSDavid Howells */ 295607ca46eSDavid Howells 296607ca46eSDavid Howells enum { 297607ca46eSDavid Howells IFLA_UNSPEC, 298607ca46eSDavid Howells IFLA_ADDRESS, 299607ca46eSDavid Howells IFLA_BROADCAST, 300607ca46eSDavid Howells IFLA_IFNAME, 301607ca46eSDavid Howells IFLA_MTU, 302607ca46eSDavid Howells IFLA_LINK, 303607ca46eSDavid Howells IFLA_QDISC, 304607ca46eSDavid Howells IFLA_STATS, 305607ca46eSDavid Howells IFLA_COST, 306607ca46eSDavid Howells #define IFLA_COST IFLA_COST 307607ca46eSDavid Howells IFLA_PRIORITY, 308607ca46eSDavid Howells #define IFLA_PRIORITY IFLA_PRIORITY 309607ca46eSDavid Howells IFLA_MASTER, 310607ca46eSDavid Howells #define IFLA_MASTER IFLA_MASTER 311607ca46eSDavid Howells IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */ 312607ca46eSDavid Howells #define IFLA_WIRELESS IFLA_WIRELESS 313607ca46eSDavid Howells IFLA_PROTINFO, /* Protocol specific information for a link */ 314607ca46eSDavid Howells #define IFLA_PROTINFO IFLA_PROTINFO 315607ca46eSDavid Howells IFLA_TXQLEN, 316607ca46eSDavid Howells #define IFLA_TXQLEN IFLA_TXQLEN 317607ca46eSDavid Howells IFLA_MAP, 318607ca46eSDavid Howells #define IFLA_MAP IFLA_MAP 319607ca46eSDavid Howells IFLA_WEIGHT, 320607ca46eSDavid Howells #define IFLA_WEIGHT IFLA_WEIGHT 321607ca46eSDavid Howells IFLA_OPERSTATE, 322607ca46eSDavid Howells IFLA_LINKMODE, 323607ca46eSDavid Howells IFLA_LINKINFO, 324607ca46eSDavid Howells #define IFLA_LINKINFO IFLA_LINKINFO 325607ca46eSDavid Howells IFLA_NET_NS_PID, 326607ca46eSDavid Howells IFLA_IFALIAS, 327607ca46eSDavid Howells IFLA_NUM_VF, /* Number of VFs if device is SR-IOV PF */ 328607ca46eSDavid Howells IFLA_VFINFO_LIST, 329607ca46eSDavid Howells IFLA_STATS64, 330607ca46eSDavid Howells IFLA_VF_PORTS, 331607ca46eSDavid Howells IFLA_PORT_SELF, 332607ca46eSDavid Howells IFLA_AF_SPEC, 333607ca46eSDavid Howells IFLA_GROUP, /* Group the device belongs to */ 334607ca46eSDavid Howells IFLA_NET_NS_FD, 335607ca46eSDavid Howells IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ 336607ca46eSDavid Howells IFLA_PROMISCUITY, /* Promiscuity count: > 0 means acts PROMISC */ 337607ca46eSDavid Howells #define IFLA_PROMISCUITY IFLA_PROMISCUITY 338607ca46eSDavid Howells IFLA_NUM_TX_QUEUES, 339607ca46eSDavid Howells IFLA_NUM_RX_QUEUES, 3409a57247fSJiri Pirko IFLA_CARRIER, 34166cae9edSJiri Pirko IFLA_PHYS_PORT_ID, 3422d3b479dSdavid decotigny IFLA_CARRIER_CHANGES, 34382f28412SJiri Pirko IFLA_PHYS_SWITCH_ID, 344d37512a2SNicolas Dichtel IFLA_LINK_NETNSID, 345db24a904SDavid Ahern IFLA_PHYS_PORT_NAME, 34688d6378bSAnuradha Karuppiah IFLA_PROTO_DOWN, 347c70ce028SEric Dumazet IFLA_GSO_MAX_SEGS, 348c70ce028SEric Dumazet IFLA_GSO_MAX_SIZE, 34918402843SDavid S. Miller IFLA_PAD, 350d1fdd913SBrenden Blanco IFLA_XDP, 3513d3ea5afSVlad Yasevich IFLA_EVENT, 3526621dd29SNicolas Dichtel IFLA_NEW_NETNSID, 35379e1ad14SJiri Benc IFLA_IF_NETNSID, 35419d8f1adSChristian Brauner IFLA_TARGET_NETNSID = IFLA_IF_NETNSID, /* new alias */ 355b2d3bcfaSDavid Decotigny IFLA_CARRIER_UP_COUNT, 356b2d3bcfaSDavid Decotigny IFLA_CARRIER_DOWN_COUNT, 35738e01b30SNicolas Dichtel IFLA_NEW_IFINDEX, 3583e7a50ceSStephen Hemminger IFLA_MIN_MTU, 3593e7a50ceSStephen Hemminger IFLA_MAX_MTU, 36036fbf1e5SJiri Pirko IFLA_PROP_LIST, 36136fbf1e5SJiri Pirko IFLA_ALT_IFNAME, /* Alternative ifname */ 362f74877a5SMichal Kubecek IFLA_PERM_ADDRESS, 363829eb208SRoopa Prabhu IFLA_PROTO_DOWN_REASON, 36400e77ed8SJohannes Berg 36500e77ed8SJohannes Berg /* device (sysfs) name as parent, used instead 36600e77ed8SJohannes Berg * of IFLA_LINK where there's no parent netdev 36700e77ed8SJohannes Berg */ 36800e77ed8SJohannes Berg IFLA_PARENT_DEV_NAME, 36900e77ed8SJohannes Berg IFLA_PARENT_DEV_BUS_NAME, 370eac1b93cSCoco Li IFLA_GRO_MAX_SIZE, 37189527be8SEric Dumazet IFLA_TSO_MAX_SIZE, 37289527be8SEric Dumazet IFLA_TSO_MAX_SEGS, 3737e6e1b57SNicolas Dichtel IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */ 37400e77ed8SJohannes Berg 375dca56c30SJiri Pirko IFLA_DEVLINK_PORT, 376dca56c30SJiri Pirko 3779eefedd5SXin Long IFLA_GSO_IPV4_MAX_SIZE, 3789eefedd5SXin Long IFLA_GRO_IPV4_MAX_SIZE, 3795f184269SJiri Pirko IFLA_DPLL_PIN, 380607ca46eSDavid Howells __IFLA_MAX 381607ca46eSDavid Howells }; 382607ca46eSDavid Howells 383607ca46eSDavid Howells 384607ca46eSDavid Howells #define IFLA_MAX (__IFLA_MAX - 1) 385607ca46eSDavid Howells 386829eb208SRoopa Prabhu enum { 387829eb208SRoopa Prabhu IFLA_PROTO_DOWN_REASON_UNSPEC, 388829eb208SRoopa Prabhu IFLA_PROTO_DOWN_REASON_MASK, /* u32, mask for reason bits */ 389829eb208SRoopa Prabhu IFLA_PROTO_DOWN_REASON_VALUE, /* u32, reason bit value */ 390829eb208SRoopa Prabhu 391829eb208SRoopa Prabhu __IFLA_PROTO_DOWN_REASON_CNT, 392829eb208SRoopa Prabhu IFLA_PROTO_DOWN_REASON_MAX = __IFLA_PROTO_DOWN_REASON_CNT - 1 393829eb208SRoopa Prabhu }; 394829eb208SRoopa Prabhu 395607ca46eSDavid Howells /* backwards compatibility for userspace */ 396607ca46eSDavid Howells #ifndef __KERNEL__ 397607ca46eSDavid Howells #define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) 398607ca46eSDavid Howells #define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg)) 399607ca46eSDavid Howells #endif 400607ca46eSDavid Howells 401607ca46eSDavid Howells enum { 402607ca46eSDavid Howells IFLA_INET_UNSPEC, 403607ca46eSDavid Howells IFLA_INET_CONF, 404607ca46eSDavid Howells __IFLA_INET_MAX, 405607ca46eSDavid Howells }; 406607ca46eSDavid Howells 407607ca46eSDavid Howells #define IFLA_INET_MAX (__IFLA_INET_MAX - 1) 408607ca46eSDavid Howells 409607ca46eSDavid Howells /* ifi_flags. 410607ca46eSDavid Howells 411607ca46eSDavid Howells IFF_* flags. 412607ca46eSDavid Howells 413607ca46eSDavid Howells The only change is: 414607ca46eSDavid Howells IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are 415607ca46eSDavid Howells more not changeable by user. They describe link media 416607ca46eSDavid Howells characteristics and set by device driver. 417607ca46eSDavid Howells 418607ca46eSDavid Howells Comments: 419607ca46eSDavid Howells - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid 420607ca46eSDavid Howells - If neither of these three flags are set; 421607ca46eSDavid Howells the interface is NBMA. 422607ca46eSDavid Howells 423607ca46eSDavid Howells - IFF_MULTICAST does not mean anything special: 424607ca46eSDavid Howells multicasts can be used on all not-NBMA links. 425607ca46eSDavid Howells IFF_MULTICAST means that this media uses special encapsulation 426607ca46eSDavid Howells for multicast frames. Apparently, all IFF_POINTOPOINT and 427607ca46eSDavid Howells IFF_BROADCAST devices are able to use multicasts too. 428607ca46eSDavid Howells */ 429607ca46eSDavid Howells 430607ca46eSDavid Howells /* IFLA_LINK. 431607ca46eSDavid Howells For usual devices it is equal ifi_index. 432607ca46eSDavid Howells If it is a "virtual interface" (f.e. tunnel), ifi_link 433607ca46eSDavid Howells can point to real physical interface (f.e. for bandwidth calculations), 434607ca46eSDavid Howells or maybe 0, what means, that real media is unknown (usual 435607ca46eSDavid Howells for IPIP tunnels, when route to endpoint is allowed to change) 436607ca46eSDavid Howells */ 437607ca46eSDavid Howells 438607ca46eSDavid Howells /* Subtype attributes for IFLA_PROTINFO */ 439607ca46eSDavid Howells enum { 440607ca46eSDavid Howells IFLA_INET6_UNSPEC, 441607ca46eSDavid Howells IFLA_INET6_FLAGS, /* link flags */ 442607ca46eSDavid Howells IFLA_INET6_CONF, /* sysctl parameters */ 443607ca46eSDavid Howells IFLA_INET6_STATS, /* statistics */ 444607ca46eSDavid Howells IFLA_INET6_MCAST, /* MC things. What of them? */ 445607ca46eSDavid Howells IFLA_INET6_CACHEINFO, /* time values and max reasm size */ 446607ca46eSDavid Howells IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */ 447f53adae4SDaniel Borkmann IFLA_INET6_TOKEN, /* device token */ 448bc91b0f0SJiri Pirko IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */ 44949b99da2SRocco Yue IFLA_INET6_RA_MTU, /* mtu carried in the RA message */ 450607ca46eSDavid Howells __IFLA_INET6_MAX 451607ca46eSDavid Howells }; 452607ca46eSDavid Howells 453607ca46eSDavid Howells #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) 454607ca46eSDavid Howells 455bc91b0f0SJiri Pirko enum in6_addr_gen_mode { 456bc91b0f0SJiri Pirko IN6_ADDR_GEN_MODE_EUI64, 457bc91b0f0SJiri Pirko IN6_ADDR_GEN_MODE_NONE, 458622c81d5SHannes Frederic Sowa IN6_ADDR_GEN_MODE_STABLE_PRIVACY, 459cc9da6ccSBjørn Mork IN6_ADDR_GEN_MODE_RANDOM, 460bc91b0f0SJiri Pirko }; 461bc91b0f0SJiri Pirko 462e5c3ea5cSJiri Pirko /* Bridge section */ 463e5c3ea5cSJiri Pirko 464e5c3ea5cSJiri Pirko enum { 465e5c3ea5cSJiri Pirko IFLA_BR_UNSPEC, 466e5c3ea5cSJiri Pirko IFLA_BR_FORWARD_DELAY, 467e5c3ea5cSJiri Pirko IFLA_BR_HELLO_TIME, 468e5c3ea5cSJiri Pirko IFLA_BR_MAX_AGE, 469af615762SJörg Thalheim IFLA_BR_AGEING_TIME, 470af615762SJörg Thalheim IFLA_BR_STP_STATE, 471af615762SJörg Thalheim IFLA_BR_PRIORITY, 472a7854037SNikolay Aleksandrov IFLA_BR_VLAN_FILTERING, 473d2d427b3SToshiaki Makita IFLA_BR_VLAN_PROTOCOL, 4747910228bSNikolay Aleksandrov IFLA_BR_GROUP_FWD_MASK, 4755127c81fSNikolay Aleksandrov IFLA_BR_ROOT_ID, 4767599a220SNikolay Aleksandrov IFLA_BR_BRIDGE_ID, 4778762ba68SNikolay Aleksandrov IFLA_BR_ROOT_PORT, 478684dd248SNikolay Aleksandrov IFLA_BR_ROOT_PATH_COST, 479ed416309SNikolay Aleksandrov IFLA_BR_TOPOLOGY_CHANGE, 480ed416309SNikolay Aleksandrov IFLA_BR_TOPOLOGY_CHANGE_DETECTED, 481d76bd14eSNikolay Aleksandrov IFLA_BR_HELLO_TIMER, 482d76bd14eSNikolay Aleksandrov IFLA_BR_TCN_TIMER, 483d76bd14eSNikolay Aleksandrov IFLA_BR_TOPOLOGY_CHANGE_TIMER, 484d76bd14eSNikolay Aleksandrov IFLA_BR_GC_TIMER, 485111189abSNikolay Aleksandrov IFLA_BR_GROUP_ADDR, 486150217c6SNikolay Aleksandrov IFLA_BR_FDB_FLUSH, 487a9a6bc70SNikolay Aleksandrov IFLA_BR_MCAST_ROUTER, 48889126327SNikolay Aleksandrov IFLA_BR_MCAST_SNOOPING, 489295141d9SNikolay Aleksandrov IFLA_BR_MCAST_QUERY_USE_IFADDR, 490ba062d7cSNikolay Aleksandrov IFLA_BR_MCAST_QUERIER, 491431db3c0SNikolay Aleksandrov IFLA_BR_MCAST_HASH_ELASTICITY, 492858079fdSNikolay Aleksandrov IFLA_BR_MCAST_HASH_MAX, 49379b859f5SNikolay Aleksandrov IFLA_BR_MCAST_LAST_MEMBER_CNT, 494b89e6babSNikolay Aleksandrov IFLA_BR_MCAST_STARTUP_QUERY_CNT, 4957e4df51eSNikolay Aleksandrov IFLA_BR_MCAST_LAST_MEMBER_INTVL, 4967e4df51eSNikolay Aleksandrov IFLA_BR_MCAST_MEMBERSHIP_INTVL, 4977e4df51eSNikolay Aleksandrov IFLA_BR_MCAST_QUERIER_INTVL, 4987e4df51eSNikolay Aleksandrov IFLA_BR_MCAST_QUERY_INTVL, 4997e4df51eSNikolay Aleksandrov IFLA_BR_MCAST_QUERY_RESPONSE_INTVL, 5007e4df51eSNikolay Aleksandrov IFLA_BR_MCAST_STARTUP_QUERY_INTVL, 50193870cc0SNikolay Aleksandrov IFLA_BR_NF_CALL_IPTABLES, 50293870cc0SNikolay Aleksandrov IFLA_BR_NF_CALL_IP6TABLES, 50393870cc0SNikolay Aleksandrov IFLA_BR_NF_CALL_ARPTABLES, 5040f963b75SNikolay Aleksandrov IFLA_BR_VLAN_DEFAULT_PVID, 50512a0faa3SNicolas Dichtel IFLA_BR_PAD, 5066dada9b1SNikolay Aleksandrov IFLA_BR_VLAN_STATS_ENABLED, 5071080ab95SNikolay Aleksandrov IFLA_BR_MCAST_STATS_ENABLED, 5085e923585SNikolay Aleksandrov IFLA_BR_MCAST_IGMP_VERSION, 509aa2ae3e7SNikolay Aleksandrov IFLA_BR_MCAST_MLD_VERSION, 5109163a0fcSNikolay Aleksandrov IFLA_BR_VLAN_STATS_PER_PORT, 511a428afe8SNikolay Aleksandrov IFLA_BR_MULTI_BOOLOPT, 512c7fa1d9bSNikolay Aleksandrov IFLA_BR_MCAST_QUERIER_STATE, 513ddd1ad68SJohannes Nixdorf IFLA_BR_FDB_N_LEARNED, 514ddd1ad68SJohannes Nixdorf IFLA_BR_FDB_MAX_LEARNED, 515e5c3ea5cSJiri Pirko __IFLA_BR_MAX, 516e5c3ea5cSJiri Pirko }; 517e5c3ea5cSJiri Pirko 518e5c3ea5cSJiri Pirko #define IFLA_BR_MAX (__IFLA_BR_MAX - 1) 519e5c3ea5cSJiri Pirko 5205127c81fSNikolay Aleksandrov struct ifla_bridge_id { 5215127c81fSNikolay Aleksandrov __u8 prio[2]; 5225127c81fSNikolay Aleksandrov __u8 addr[6]; /* ETH_ALEN */ 5235127c81fSNikolay Aleksandrov }; 5245127c81fSNikolay Aleksandrov 52525c71c75Sstephen hemminger enum { 52625c71c75Sstephen hemminger BRIDGE_MODE_UNSPEC, 52725c71c75Sstephen hemminger BRIDGE_MODE_HAIRPIN, 52825c71c75Sstephen hemminger }; 52925c71c75Sstephen hemminger 53025c71c75Sstephen hemminger enum { 53125c71c75Sstephen hemminger IFLA_BRPORT_UNSPEC, 53225c71c75Sstephen hemminger IFLA_BRPORT_STATE, /* Spanning tree state */ 53325c71c75Sstephen hemminger IFLA_BRPORT_PRIORITY, /* " priority */ 53425c71c75Sstephen hemminger IFLA_BRPORT_COST, /* " cost */ 53525c71c75Sstephen hemminger IFLA_BRPORT_MODE, /* mode (hairpin) */ 536a2e01a65Sstephen hemminger IFLA_BRPORT_GUARD, /* bpdu guard */ 5371007dd1aSstephen hemminger IFLA_BRPORT_PROTECT, /* root port protection */ 538c2d3babfSDavid S. Miller IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */ 5399ba18891SVlad Yasevich IFLA_BRPORT_LEARNING, /* mac learning */ 540867a5943SVlad Yasevich IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */ 54195850116SKyeyoon Park IFLA_BRPORT_PROXYARP, /* proxy ARP */ 542efacacdaSScott Feldman IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */ 543842a9ae0SJouni Malinen IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */ 5444ebc7660SNikolay Aleksandrov IFLA_BRPORT_ROOT_ID, /* designated root */ 54580df9a26SNikolay Aleksandrov IFLA_BRPORT_BRIDGE_ID, /* designated bridge */ 54696f94e7fSNikolay Aleksandrov IFLA_BRPORT_DESIGNATED_PORT, 54796f94e7fSNikolay Aleksandrov IFLA_BRPORT_DESIGNATED_COST, 54842d452c4SNikolay Aleksandrov IFLA_BRPORT_ID, 54942d452c4SNikolay Aleksandrov IFLA_BRPORT_NO, 550e08e838aSNikolay Aleksandrov IFLA_BRPORT_TOPOLOGY_CHANGE_ACK, 551e08e838aSNikolay Aleksandrov IFLA_BRPORT_CONFIG_PENDING, 55261c0a9a8SNikolay Aleksandrov IFLA_BRPORT_MESSAGE_AGE_TIMER, 55361c0a9a8SNikolay Aleksandrov IFLA_BRPORT_FORWARD_DELAY_TIMER, 55461c0a9a8SNikolay Aleksandrov IFLA_BRPORT_HOLD_TIMER, 5559b0c6e4dSNikolay Aleksandrov IFLA_BRPORT_FLUSH, 5565d6ae479SNikolay Aleksandrov IFLA_BRPORT_MULTICAST_ROUTER, 55712a0faa3SNicolas Dichtel IFLA_BRPORT_PAD, 558b6cb5ac8SNikolay Aleksandrov IFLA_BRPORT_MCAST_FLOOD, 5596db6f0eaSFelix Fietkau IFLA_BRPORT_MCAST_TO_UCAST, 560b3c7ef0aSRoopa Prabhu IFLA_BRPORT_VLAN_TUNNEL, 56199f906e9SMike Manning IFLA_BRPORT_BCAST_FLOOD, 5625af48b59SNikolay Aleksandrov IFLA_BRPORT_GROUP_FWD_MASK, 563821f1b21SRoopa Prabhu IFLA_BRPORT_NEIGH_SUPPRESS, 5647d850abdSNikolay Aleksandrov IFLA_BRPORT_ISOLATED, 5652756f68cSNikolay Aleksandrov IFLA_BRPORT_BACKUP_PORT, 5663e54442cSHoratiu Vultur IFLA_BRPORT_MRP_RING_OPEN, 567ffb3adbaSHoratiu Vultur IFLA_BRPORT_MRP_IN_OPEN, 5682dba407fSNikolay Aleksandrov IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, 5692dba407fSNikolay Aleksandrov IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, 570a21d9a67SHans Schultz IFLA_BRPORT_LOCKED, 571a35ec8e3SHans J. Schultz IFLA_BRPORT_MAB, 572a1aee20dSPetr Machata IFLA_BRPORT_MCAST_N_GROUPS, 573a1aee20dSPetr Machata IFLA_BRPORT_MCAST_MAX_GROUPS, 574160656d7SIdo Schimmel IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, 57529cfb2aaSIdo Schimmel IFLA_BRPORT_BACKUP_NHID, 57625c71c75Sstephen hemminger __IFLA_BRPORT_MAX 57725c71c75Sstephen hemminger }; 57825c71c75Sstephen hemminger #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) 57925c71c75Sstephen hemminger 580607ca46eSDavid Howells struct ifla_cacheinfo { 581607ca46eSDavid Howells __u32 max_reasm_len; 582607ca46eSDavid Howells __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ 583607ca46eSDavid Howells __u32 reachable_time; 584607ca46eSDavid Howells __u32 retrans_time; 585607ca46eSDavid Howells }; 586607ca46eSDavid Howells 587607ca46eSDavid Howells enum { 588607ca46eSDavid Howells IFLA_INFO_UNSPEC, 589607ca46eSDavid Howells IFLA_INFO_KIND, 590607ca46eSDavid Howells IFLA_INFO_DATA, 591607ca46eSDavid Howells IFLA_INFO_XSTATS, 592ba7d49b1SJiri Pirko IFLA_INFO_SLAVE_KIND, 593ba7d49b1SJiri Pirko IFLA_INFO_SLAVE_DATA, 594607ca46eSDavid Howells __IFLA_INFO_MAX, 595607ca46eSDavid Howells }; 596607ca46eSDavid Howells 597607ca46eSDavid Howells #define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1) 598607ca46eSDavid Howells 599607ca46eSDavid Howells /* VLAN section */ 600607ca46eSDavid Howells 601607ca46eSDavid Howells enum { 602607ca46eSDavid Howells IFLA_VLAN_UNSPEC, 603607ca46eSDavid Howells IFLA_VLAN_ID, 604607ca46eSDavid Howells IFLA_VLAN_FLAGS, 605607ca46eSDavid Howells IFLA_VLAN_EGRESS_QOS, 606607ca46eSDavid Howells IFLA_VLAN_INGRESS_QOS, 6078ad227ffSPatrick McHardy IFLA_VLAN_PROTOCOL, 608607ca46eSDavid Howells __IFLA_VLAN_MAX, 609607ca46eSDavid Howells }; 610607ca46eSDavid Howells 611607ca46eSDavid Howells #define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1) 612607ca46eSDavid Howells 613607ca46eSDavid Howells struct ifla_vlan_flags { 614607ca46eSDavid Howells __u32 flags; 615607ca46eSDavid Howells __u32 mask; 616607ca46eSDavid Howells }; 617607ca46eSDavid Howells 618607ca46eSDavid Howells enum { 619607ca46eSDavid Howells IFLA_VLAN_QOS_UNSPEC, 620607ca46eSDavid Howells IFLA_VLAN_QOS_MAPPING, 621607ca46eSDavid Howells __IFLA_VLAN_QOS_MAX 622607ca46eSDavid Howells }; 623607ca46eSDavid Howells 624607ca46eSDavid Howells #define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1) 625607ca46eSDavid Howells 626607ca46eSDavid Howells struct ifla_vlan_qos_mapping { 627607ca46eSDavid Howells __u32 from; 628607ca46eSDavid Howells __u32 to; 629607ca46eSDavid Howells }; 630607ca46eSDavid Howells 631607ca46eSDavid Howells /* MACVLAN section */ 632607ca46eSDavid Howells enum { 633607ca46eSDavid Howells IFLA_MACVLAN_UNSPEC, 634607ca46eSDavid Howells IFLA_MACVLAN_MODE, 635607ca46eSDavid Howells IFLA_MACVLAN_FLAGS, 63679cf79abSMichael Braun IFLA_MACVLAN_MACADDR_MODE, 63779cf79abSMichael Braun IFLA_MACVLAN_MACADDR, 63879cf79abSMichael Braun IFLA_MACVLAN_MACADDR_DATA, 63979cf79abSMichael Braun IFLA_MACVLAN_MACADDR_COUNT, 640d4bff72cSThomas Karlsson IFLA_MACVLAN_BC_QUEUE_LEN, 641d4bff72cSThomas Karlsson IFLA_MACVLAN_BC_QUEUE_LEN_USED, 642954d1fa1SHerbert Xu IFLA_MACVLAN_BC_CUTOFF, 643607ca46eSDavid Howells __IFLA_MACVLAN_MAX, 644607ca46eSDavid Howells }; 645607ca46eSDavid Howells 646607ca46eSDavid Howells #define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1) 647607ca46eSDavid Howells 648607ca46eSDavid Howells enum macvlan_mode { 649607ca46eSDavid Howells MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */ 650607ca46eSDavid Howells MACVLAN_MODE_VEPA = 2, /* talk to other ports through ext bridge */ 651607ca46eSDavid Howells MACVLAN_MODE_BRIDGE = 4, /* talk to bridge ports directly */ 652607ca46eSDavid Howells MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */ 65379cf79abSMichael Braun MACVLAN_MODE_SOURCE = 16,/* use source MAC address list to assign */ 65479cf79abSMichael Braun }; 65579cf79abSMichael Braun 65679cf79abSMichael Braun enum macvlan_macaddr_mode { 65779cf79abSMichael Braun MACVLAN_MACADDR_ADD, 65879cf79abSMichael Braun MACVLAN_MACADDR_DEL, 65979cf79abSMichael Braun MACVLAN_MACADDR_FLUSH, 66079cf79abSMichael Braun MACVLAN_MACADDR_SET, 661607ca46eSDavid Howells }; 662607ca46eSDavid Howells 663607ca46eSDavid Howells #define MACVLAN_FLAG_NOPROMISC 1 664427f0c8cSJethro Beekman #define MACVLAN_FLAG_NODST 2 /* skip dst macvlan if matching src macvlan */ 665607ca46eSDavid Howells 6664e3c8992SDavid Ahern /* VRF section */ 6674e3c8992SDavid Ahern enum { 6684e3c8992SDavid Ahern IFLA_VRF_UNSPEC, 6694e3c8992SDavid Ahern IFLA_VRF_TABLE, 6704e3c8992SDavid Ahern __IFLA_VRF_MAX 6714e3c8992SDavid Ahern }; 6724e3c8992SDavid Ahern 6734e3c8992SDavid Ahern #define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1) 6744e3c8992SDavid Ahern 67567eb0331SDavid Ahern enum { 67667eb0331SDavid Ahern IFLA_VRF_PORT_UNSPEC, 67767eb0331SDavid Ahern IFLA_VRF_PORT_TABLE, 67867eb0331SDavid Ahern __IFLA_VRF_PORT_MAX 67967eb0331SDavid Ahern }; 68067eb0331SDavid Ahern 68167eb0331SDavid Ahern #define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1) 68267eb0331SDavid Ahern 683dece8d2bSSabrina Dubroca /* MACSEC section */ 684dece8d2bSSabrina Dubroca enum { 685dece8d2bSSabrina Dubroca IFLA_MACSEC_UNSPEC, 686dece8d2bSSabrina Dubroca IFLA_MACSEC_SCI, 687dece8d2bSSabrina Dubroca IFLA_MACSEC_PORT, 688dece8d2bSSabrina Dubroca IFLA_MACSEC_ICV_LEN, 689dece8d2bSSabrina Dubroca IFLA_MACSEC_CIPHER_SUITE, 690dece8d2bSSabrina Dubroca IFLA_MACSEC_WINDOW, 691dece8d2bSSabrina Dubroca IFLA_MACSEC_ENCODING_SA, 692dece8d2bSSabrina Dubroca IFLA_MACSEC_ENCRYPT, 693dece8d2bSSabrina Dubroca IFLA_MACSEC_PROTECT, 694dece8d2bSSabrina Dubroca IFLA_MACSEC_INC_SCI, 695dece8d2bSSabrina Dubroca IFLA_MACSEC_ES, 696dece8d2bSSabrina Dubroca IFLA_MACSEC_SCB, 697dece8d2bSSabrina Dubroca IFLA_MACSEC_REPLAY_PROTECT, 698dece8d2bSSabrina Dubroca IFLA_MACSEC_VALIDATION, 699f60d94c0SNicolas Dichtel IFLA_MACSEC_PAD, 700791bb3fcSMark Starovoytov IFLA_MACSEC_OFFLOAD, 701dece8d2bSSabrina Dubroca __IFLA_MACSEC_MAX, 702dece8d2bSSabrina Dubroca }; 703dece8d2bSSabrina Dubroca 704dece8d2bSSabrina Dubroca #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) 705dece8d2bSSabrina Dubroca 706f203b76dSSteffen Klassert /* XFRM section */ 707f203b76dSSteffen Klassert enum { 708f203b76dSSteffen Klassert IFLA_XFRM_UNSPEC, 709f203b76dSSteffen Klassert IFLA_XFRM_LINK, 710f203b76dSSteffen Klassert IFLA_XFRM_IF_ID, 711abc340b3SEyal Birger IFLA_XFRM_COLLECT_METADATA, 712f203b76dSSteffen Klassert __IFLA_XFRM_MAX 713f203b76dSSteffen Klassert }; 714f203b76dSSteffen Klassert 715f203b76dSSteffen Klassert #define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1) 716f203b76dSSteffen Klassert 717dece8d2bSSabrina Dubroca enum macsec_validation_type { 718dece8d2bSSabrina Dubroca MACSEC_VALIDATE_DISABLED = 0, 719dece8d2bSSabrina Dubroca MACSEC_VALIDATE_CHECK = 1, 720dece8d2bSSabrina Dubroca MACSEC_VALIDATE_STRICT = 2, 721dece8d2bSSabrina Dubroca __MACSEC_VALIDATE_END, 722dece8d2bSSabrina Dubroca MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1, 723dece8d2bSSabrina Dubroca }; 724dece8d2bSSabrina Dubroca 72576564261SAntoine Tenart enum macsec_offload { 72676564261SAntoine Tenart MACSEC_OFFLOAD_OFF = 0, 72776564261SAntoine Tenart MACSEC_OFFLOAD_PHY = 1, 72821114b7fSAntoine Tenart MACSEC_OFFLOAD_MAC = 2, 72976564261SAntoine Tenart __MACSEC_OFFLOAD_END, 73076564261SAntoine Tenart MACSEC_OFFLOAD_MAX = __MACSEC_OFFLOAD_END - 1, 73176564261SAntoine Tenart }; 73276564261SAntoine Tenart 7332ad7bf36SMahesh Bandewar /* IPVLAN section */ 7342ad7bf36SMahesh Bandewar enum { 7352ad7bf36SMahesh Bandewar IFLA_IPVLAN_UNSPEC, 7362ad7bf36SMahesh Bandewar IFLA_IPVLAN_MODE, 737a190d04dSMahesh Bandewar IFLA_IPVLAN_FLAGS, 7382ad7bf36SMahesh Bandewar __IFLA_IPVLAN_MAX 7392ad7bf36SMahesh Bandewar }; 7402ad7bf36SMahesh Bandewar 7412ad7bf36SMahesh Bandewar #define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1) 7422ad7bf36SMahesh Bandewar 7432ad7bf36SMahesh Bandewar enum ipvlan_mode { 7442ad7bf36SMahesh Bandewar IPVLAN_MODE_L2 = 0, 7452ad7bf36SMahesh Bandewar IPVLAN_MODE_L3, 7464fbae7d8SMahesh Bandewar IPVLAN_MODE_L3S, 7472ad7bf36SMahesh Bandewar IPVLAN_MODE_MAX 7482ad7bf36SMahesh Bandewar }; 7492ad7bf36SMahesh Bandewar 750a190d04dSMahesh Bandewar #define IPVLAN_F_PRIVATE 0x01 751fe89aa6bSMahesh Bandewar #define IPVLAN_F_VEPA 0x02 752a190d04dSMahesh Bandewar 7537b8135f4SRoopa Prabhu /* Tunnel RTM header */ 7547b8135f4SRoopa Prabhu struct tunnel_msg { 7557b8135f4SRoopa Prabhu __u8 family; 756445b2f36SNikolay Aleksandrov __u8 flags; 7577b8135f4SRoopa Prabhu __u16 reserved2; 7587b8135f4SRoopa Prabhu __u32 ifindex; 7597b8135f4SRoopa Prabhu }; 7607b8135f4SRoopa Prabhu 761607ca46eSDavid Howells /* VXLAN section */ 762445b2f36SNikolay Aleksandrov 763445b2f36SNikolay Aleksandrov /* include statistics in the dump */ 764445b2f36SNikolay Aleksandrov #define TUNNEL_MSG_FLAG_STATS 0x01 765445b2f36SNikolay Aleksandrov 766445b2f36SNikolay Aleksandrov #define TUNNEL_MSG_VALID_USER_FLAGS TUNNEL_MSG_FLAG_STATS 767445b2f36SNikolay Aleksandrov 768445b2f36SNikolay Aleksandrov /* Embedded inside VXLAN_VNIFILTER_ENTRY_STATS */ 769445b2f36SNikolay Aleksandrov enum { 770445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_UNSPEC, 771445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_RX_BYTES, 772445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_RX_PKTS, 773445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_RX_DROPS, 774445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_RX_ERRORS, 775445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_TX_BYTES, 776445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_TX_PKTS, 777445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_TX_DROPS, 778445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_TX_ERRORS, 779445b2f36SNikolay Aleksandrov VNIFILTER_ENTRY_STATS_PAD, 780445b2f36SNikolay Aleksandrov __VNIFILTER_ENTRY_STATS_MAX 781445b2f36SNikolay Aleksandrov }; 782445b2f36SNikolay Aleksandrov #define VNIFILTER_ENTRY_STATS_MAX (__VNIFILTER_ENTRY_STATS_MAX - 1) 783445b2f36SNikolay Aleksandrov 784607ca46eSDavid Howells enum { 7857b8135f4SRoopa Prabhu VXLAN_VNIFILTER_ENTRY_UNSPEC, 7867b8135f4SRoopa Prabhu VXLAN_VNIFILTER_ENTRY_START, 7877b8135f4SRoopa Prabhu VXLAN_VNIFILTER_ENTRY_END, 7887b8135f4SRoopa Prabhu VXLAN_VNIFILTER_ENTRY_GROUP, 7897b8135f4SRoopa Prabhu VXLAN_VNIFILTER_ENTRY_GROUP6, 790445b2f36SNikolay Aleksandrov VXLAN_VNIFILTER_ENTRY_STATS, 7917b8135f4SRoopa Prabhu __VXLAN_VNIFILTER_ENTRY_MAX 7927b8135f4SRoopa Prabhu }; 7937b8135f4SRoopa Prabhu #define VXLAN_VNIFILTER_ENTRY_MAX (__VXLAN_VNIFILTER_ENTRY_MAX - 1) 7947b8135f4SRoopa Prabhu 7957b8135f4SRoopa Prabhu enum { 7967b8135f4SRoopa Prabhu VXLAN_VNIFILTER_UNSPEC, 7977b8135f4SRoopa Prabhu VXLAN_VNIFILTER_ENTRY, 7987b8135f4SRoopa Prabhu __VXLAN_VNIFILTER_MAX 7997b8135f4SRoopa Prabhu }; 8007b8135f4SRoopa Prabhu #define VXLAN_VNIFILTER_MAX (__VXLAN_VNIFILTER_MAX - 1) 8017b8135f4SRoopa Prabhu 8027b8135f4SRoopa Prabhu enum { 803607ca46eSDavid Howells IFLA_VXLAN_UNSPEC, 804607ca46eSDavid Howells IFLA_VXLAN_ID, 8055d174dd8Sstephen hemminger IFLA_VXLAN_GROUP, /* group or remote address */ 806607ca46eSDavid Howells IFLA_VXLAN_LINK, 807607ca46eSDavid Howells IFLA_VXLAN_LOCAL, 808607ca46eSDavid Howells IFLA_VXLAN_TTL, 809607ca46eSDavid Howells IFLA_VXLAN_TOS, 810607ca46eSDavid Howells IFLA_VXLAN_LEARNING, 811607ca46eSDavid Howells IFLA_VXLAN_AGEING, 812607ca46eSDavid Howells IFLA_VXLAN_LIMIT, 813823aa873Sstephen hemminger IFLA_VXLAN_PORT_RANGE, /* source port */ 814e4f67addSDavid Stevens IFLA_VXLAN_PROXY, 815e4f67addSDavid Stevens IFLA_VXLAN_RSC, 816e4f67addSDavid Stevens IFLA_VXLAN_L2MISS, 817e4f67addSDavid Stevens IFLA_VXLAN_L3MISS, 818823aa873Sstephen hemminger IFLA_VXLAN_PORT, /* destination port */ 819e4c7ed41SCong Wang IFLA_VXLAN_GROUP6, 820e4c7ed41SCong Wang IFLA_VXLAN_LOCAL6, 821359a0ea9STom Herbert IFLA_VXLAN_UDP_CSUM, 822359a0ea9STom Herbert IFLA_VXLAN_UDP_ZERO_CSUM6_TX, 823359a0ea9STom Herbert IFLA_VXLAN_UDP_ZERO_CSUM6_RX, 824dfd8645eSTom Herbert IFLA_VXLAN_REMCSUM_TX, 825dfd8645eSTom Herbert IFLA_VXLAN_REMCSUM_RX, 8263511494cSThomas Graf IFLA_VXLAN_GBP, 8270ace2ca8STom Herbert IFLA_VXLAN_REMCSUM_NOPARTIAL, 828f8a9b1bcSAlexei Starovoitov IFLA_VXLAN_COLLECT_METADATA, 829e7f70af1SDaniel Borkmann IFLA_VXLAN_LABEL, 830e1e5314dSJiri Benc IFLA_VXLAN_GPE, 83172f6d71eSHangbin Liu IFLA_VXLAN_TTL_INHERIT, 832b4d30697SStefano Brivio IFLA_VXLAN_DF, 8337b8135f4SRoopa Prabhu IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */ 83469474a8aSVladimir Nikishkin IFLA_VXLAN_LOCALBYPASS, 835607ca46eSDavid Howells __IFLA_VXLAN_MAX 836607ca46eSDavid Howells }; 837607ca46eSDavid Howells #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) 838607ca46eSDavid Howells 839607ca46eSDavid Howells struct ifla_vxlan_port_range { 840607ca46eSDavid Howells __be16 low; 841607ca46eSDavid Howells __be16 high; 842607ca46eSDavid Howells }; 843607ca46eSDavid Howells 844b4d30697SStefano Brivio enum ifla_vxlan_df { 845b4d30697SStefano Brivio VXLAN_DF_UNSET = 0, 846b4d30697SStefano Brivio VXLAN_DF_SET, 847b4d30697SStefano Brivio VXLAN_DF_INHERIT, 848b4d30697SStefano Brivio __VXLAN_DF_END, 849b4d30697SStefano Brivio VXLAN_DF_MAX = __VXLAN_DF_END - 1, 850b4d30697SStefano Brivio }; 851b4d30697SStefano Brivio 8522d07dc79SJohn W. Linville /* GENEVE section */ 8532d07dc79SJohn W. Linville enum { 8542d07dc79SJohn W. Linville IFLA_GENEVE_UNSPEC, 8552d07dc79SJohn W. Linville IFLA_GENEVE_ID, 8562d07dc79SJohn W. Linville IFLA_GENEVE_REMOTE, 8578760ce58SJohn W. Linville IFLA_GENEVE_TTL, 858d8951125SJohn W. Linville IFLA_GENEVE_TOS, 859cd7918b3SPravin B Shelar IFLA_GENEVE_PORT, /* destination port */ 860e305ac6cSPravin B Shelar IFLA_GENEVE_COLLECT_METADATA, 8618ed66f0eSJohn W. Linville IFLA_GENEVE_REMOTE6, 862abe492b4STom Herbert IFLA_GENEVE_UDP_CSUM, 863abe492b4STom Herbert IFLA_GENEVE_UDP_ZERO_CSUM6_TX, 864abe492b4STom Herbert IFLA_GENEVE_UDP_ZERO_CSUM6_RX, 8658eb3b995SDaniel Borkmann IFLA_GENEVE_LABEL, 86652d0d404SHangbin Liu IFLA_GENEVE_TTL_INHERIT, 867a025fb5fSStefano Brivio IFLA_GENEVE_DF, 868435fe1c0SEyal Birger IFLA_GENEVE_INNER_PROTO_INHERIT, 8692d07dc79SJohn W. Linville __IFLA_GENEVE_MAX 8702d07dc79SJohn W. Linville }; 8712d07dc79SJohn W. Linville #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) 8722d07dc79SJohn W. Linville 873a025fb5fSStefano Brivio enum ifla_geneve_df { 874a025fb5fSStefano Brivio GENEVE_DF_UNSET = 0, 875a025fb5fSStefano Brivio GENEVE_DF_SET, 876a025fb5fSStefano Brivio GENEVE_DF_INHERIT, 877a025fb5fSStefano Brivio __GENEVE_DF_END, 878a025fb5fSStefano Brivio GENEVE_DF_MAX = __GENEVE_DF_END - 1, 879a025fb5fSStefano Brivio }; 880a025fb5fSStefano Brivio 881571912c6SMartin Varghese /* Bareudp section */ 882571912c6SMartin Varghese enum { 883571912c6SMartin Varghese IFLA_BAREUDP_UNSPEC, 884571912c6SMartin Varghese IFLA_BAREUDP_PORT, 885571912c6SMartin Varghese IFLA_BAREUDP_ETHERTYPE, 886571912c6SMartin Varghese IFLA_BAREUDP_SRCPORT_MIN, 8874b5f6723SMartin Varghese IFLA_BAREUDP_MULTIPROTO_MODE, 888571912c6SMartin Varghese __IFLA_BAREUDP_MAX 889571912c6SMartin Varghese }; 890571912c6SMartin Varghese 891571912c6SMartin Varghese #define IFLA_BAREUDP_MAX (__IFLA_BAREUDP_MAX - 1) 892571912c6SMartin Varghese 89396d934c7SGuillaume Nault /* PPP section */ 89496d934c7SGuillaume Nault enum { 89596d934c7SGuillaume Nault IFLA_PPP_UNSPEC, 89696d934c7SGuillaume Nault IFLA_PPP_DEV_FD, 89796d934c7SGuillaume Nault __IFLA_PPP_MAX 89896d934c7SGuillaume Nault }; 89996d934c7SGuillaume Nault #define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1) 90096d934c7SGuillaume Nault 901459aa660SPablo Neira /* GTP section */ 90291ed81f9SJonas Bonn 90391ed81f9SJonas Bonn enum ifla_gtp_role { 90491ed81f9SJonas Bonn GTP_ROLE_GGSN = 0, 90591ed81f9SJonas Bonn GTP_ROLE_SGSN, 90691ed81f9SJonas Bonn }; 90791ed81f9SJonas Bonn 908459aa660SPablo Neira enum { 909459aa660SPablo Neira IFLA_GTP_UNSPEC, 910459aa660SPablo Neira IFLA_GTP_FD0, 911459aa660SPablo Neira IFLA_GTP_FD1, 912459aa660SPablo Neira IFLA_GTP_PDP_HASHSIZE, 91391ed81f9SJonas Bonn IFLA_GTP_ROLE, 914b20dc3c6SWojciech Drewek IFLA_GTP_CREATE_SOCKETS, 9159af41cc3SWojciech Drewek IFLA_GTP_RESTART_COUNT, 916459aa660SPablo Neira __IFLA_GTP_MAX, 917459aa660SPablo Neira }; 918459aa660SPablo Neira #define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1) 919459aa660SPablo Neira 92090af2311SJiri Pirko /* Bonding section */ 92190af2311SJiri Pirko 92290af2311SJiri Pirko enum { 92390af2311SJiri Pirko IFLA_BOND_UNSPEC, 92490af2311SJiri Pirko IFLA_BOND_MODE, 925ec76aa49SJiri Pirko IFLA_BOND_ACTIVE_SLAVE, 926eecdaa6eSsfeldma@cumulusnetworks.com IFLA_BOND_MIIMON, 92725852e29Ssfeldma@cumulusnetworks.com IFLA_BOND_UPDELAY, 928c7461f9bSsfeldma@cumulusnetworks.com IFLA_BOND_DOWNDELAY, 9299f53e14eSsfeldma@cumulusnetworks.com IFLA_BOND_USE_CARRIER, 93006151dbcSsfeldma@cumulusnetworks.com IFLA_BOND_ARP_INTERVAL, 9317f28fa10Ssfeldma@cumulusnetworks.com IFLA_BOND_ARP_IP_TARGET, 93229c49482Ssfeldma@cumulusnetworks.com IFLA_BOND_ARP_VALIDATE, 933d5c84254Ssfeldma@cumulusnetworks.com IFLA_BOND_ARP_ALL_TARGETS, 9340a98a0d1Ssfeldma@cumulusnetworks.com IFLA_BOND_PRIMARY, 9358a41ae44Ssfeldma@cumulusnetworks.com IFLA_BOND_PRIMARY_RESELECT, 93689901972Ssfeldma@cumulusnetworks.com IFLA_BOND_FAIL_OVER_MAC, 937f70161c6Ssfeldma@cumulusnetworks.com IFLA_BOND_XMIT_HASH_POLICY, 938d8838de7Ssfeldma@cumulusnetworks.com IFLA_BOND_RESEND_IGMP, 9392c9839c1Ssfeldma@cumulusnetworks.com IFLA_BOND_NUM_PEER_NOTIF, 9401cc0b1e3Ssfeldma@cumulusnetworks.com IFLA_BOND_ALL_SLAVES_ACTIVE, 9417d101008Ssfeldma@cumulusnetworks.com IFLA_BOND_MIN_LINKS, 9428d836d09Ssfeldma@cumulusnetworks.com IFLA_BOND_LP_INTERVAL, 943c13ab3ffSsfeldma@cumulusnetworks.com IFLA_BOND_PACKETS_PER_SLAVE, 944998e40bbSsfeldma@cumulusnetworks.com IFLA_BOND_AD_LACP_RATE, 945ec029facSsfeldma@cumulusnetworks.com IFLA_BOND_AD_SELECT, 9464ee7ac75Ssfeldma@cumulusnetworks.com IFLA_BOND_AD_INFO, 947171a42c3SAndy Gospodarek IFLA_BOND_AD_ACTOR_SYS_PRIO, 948171a42c3SAndy Gospodarek IFLA_BOND_AD_USER_PORT_KEY, 949171a42c3SAndy Gospodarek IFLA_BOND_AD_ACTOR_SYSTEM, 9500f7bffd9SNikolay Aleksandrov IFLA_BOND_TLB_DYNAMIC_LB, 95107a4ddecSVincent Bernat IFLA_BOND_PEER_NOTIF_DELAY, 9523a755cd8SHangbin Liu IFLA_BOND_AD_LACP_ACTIVE, 9535944b5abSHangbin Liu IFLA_BOND_MISSED_MAX, 954129e3c1bSHangbin Liu IFLA_BOND_NS_IP6_TARGET, 95590af2311SJiri Pirko __IFLA_BOND_MAX, 95690af2311SJiri Pirko }; 95790af2311SJiri Pirko 95890af2311SJiri Pirko #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) 95990af2311SJiri Pirko 9604ee7ac75Ssfeldma@cumulusnetworks.com enum { 961237266f7SJiri Pirko IFLA_BOND_AD_INFO_UNSPEC, 9624ee7ac75Ssfeldma@cumulusnetworks.com IFLA_BOND_AD_INFO_AGGREGATOR, 9634ee7ac75Ssfeldma@cumulusnetworks.com IFLA_BOND_AD_INFO_NUM_PORTS, 9644ee7ac75Ssfeldma@cumulusnetworks.com IFLA_BOND_AD_INFO_ACTOR_KEY, 9654ee7ac75Ssfeldma@cumulusnetworks.com IFLA_BOND_AD_INFO_PARTNER_KEY, 9664ee7ac75Ssfeldma@cumulusnetworks.com IFLA_BOND_AD_INFO_PARTNER_MAC, 9674ee7ac75Ssfeldma@cumulusnetworks.com __IFLA_BOND_AD_INFO_MAX, 9684ee7ac75Ssfeldma@cumulusnetworks.com }; 9694ee7ac75Ssfeldma@cumulusnetworks.com 9704ee7ac75Ssfeldma@cumulusnetworks.com #define IFLA_BOND_AD_INFO_MAX (__IFLA_BOND_AD_INFO_MAX - 1) 9714ee7ac75Ssfeldma@cumulusnetworks.com 9721d3ee88aSsfeldma@cumulusnetworks.com enum { 973df7dbcbbSJiri Pirko IFLA_BOND_SLAVE_UNSPEC, 974df7dbcbbSJiri Pirko IFLA_BOND_SLAVE_STATE, 975df7dbcbbSJiri Pirko IFLA_BOND_SLAVE_MII_STATUS, 976df7dbcbbSJiri Pirko IFLA_BOND_SLAVE_LINK_FAILURE_COUNT, 977df7dbcbbSJiri Pirko IFLA_BOND_SLAVE_PERM_HWADDR, 978df7dbcbbSJiri Pirko IFLA_BOND_SLAVE_QUEUE_ID, 979df7dbcbbSJiri Pirko IFLA_BOND_SLAVE_AD_AGGREGATOR_ID, 980254cb6dbSNikolay Aleksandrov IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE, 98146ea297eSNikolay Aleksandrov IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE, 9820a2ff7ccSHangbin Liu IFLA_BOND_SLAVE_PRIO, 983df7dbcbbSJiri Pirko __IFLA_BOND_SLAVE_MAX, 9841d3ee88aSsfeldma@cumulusnetworks.com }; 9851d3ee88aSsfeldma@cumulusnetworks.com 986df7dbcbbSJiri Pirko #define IFLA_BOND_SLAVE_MAX (__IFLA_BOND_SLAVE_MAX - 1) 9871d3ee88aSsfeldma@cumulusnetworks.com 988607ca46eSDavid Howells /* SR-IOV virtual function management section */ 989607ca46eSDavid Howells 990607ca46eSDavid Howells enum { 991607ca46eSDavid Howells IFLA_VF_INFO_UNSPEC, 992607ca46eSDavid Howells IFLA_VF_INFO, 993607ca46eSDavid Howells __IFLA_VF_INFO_MAX, 994607ca46eSDavid Howells }; 995607ca46eSDavid Howells 996607ca46eSDavid Howells #define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1) 997607ca46eSDavid Howells 998607ca46eSDavid Howells enum { 999607ca46eSDavid Howells IFLA_VF_UNSPEC, 1000607ca46eSDavid Howells IFLA_VF_MAC, /* Hardware queue specific attributes */ 100179aab093SMoshe Shemesh IFLA_VF_VLAN, /* VLAN ID and QoS */ 1002ed616689SSucheta Chakraborty IFLA_VF_TX_RATE, /* Max TX Bandwidth Allocation */ 1003607ca46eSDavid Howells IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */ 10041d8faf48SRony Efraim IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */ 1005ed616689SSucheta Chakraborty IFLA_VF_RATE, /* Min and Max TX Bandwidth Allocation */ 100601a3d796SVlad Zolotarov IFLA_VF_RSS_QUERY_EN, /* RSS Redirection Table and Hash Key query 100701a3d796SVlad Zolotarov * on/off switch 100801a3d796SVlad Zolotarov */ 10093b766cd8SEran Ben Elisha IFLA_VF_STATS, /* network device statistics */ 1010dd461d6aSHiroshi Shimamoto IFLA_VF_TRUST, /* Trust VF */ 1011cc8e27ccSEli Cohen IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */ 1012cc8e27ccSEli Cohen IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */ 101379aab093SMoshe Shemesh IFLA_VF_VLAN_LIST, /* nested list of vlans, option for QinQ */ 101475345f88SDenis Kirjanov IFLA_VF_BROADCAST, /* VF broadcast */ 1015607ca46eSDavid Howells __IFLA_VF_MAX, 1016607ca46eSDavid Howells }; 1017607ca46eSDavid Howells 1018607ca46eSDavid Howells #define IFLA_VF_MAX (__IFLA_VF_MAX - 1) 1019607ca46eSDavid Howells 1020607ca46eSDavid Howells struct ifla_vf_mac { 1021607ca46eSDavid Howells __u32 vf; 1022607ca46eSDavid Howells __u8 mac[32]; /* MAX_ADDR_LEN */ 1023607ca46eSDavid Howells }; 1024607ca46eSDavid Howells 102575345f88SDenis Kirjanov struct ifla_vf_broadcast { 102675345f88SDenis Kirjanov __u8 broadcast[32]; 102775345f88SDenis Kirjanov }; 102875345f88SDenis Kirjanov 1029607ca46eSDavid Howells struct ifla_vf_vlan { 1030607ca46eSDavid Howells __u32 vf; 1031607ca46eSDavid Howells __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ 1032607ca46eSDavid Howells __u32 qos; 1033607ca46eSDavid Howells }; 1034607ca46eSDavid Howells 103579aab093SMoshe Shemesh enum { 103679aab093SMoshe Shemesh IFLA_VF_VLAN_INFO_UNSPEC, 103779aab093SMoshe Shemesh IFLA_VF_VLAN_INFO, /* VLAN ID, QoS and VLAN protocol */ 103879aab093SMoshe Shemesh __IFLA_VF_VLAN_INFO_MAX, 103979aab093SMoshe Shemesh }; 104079aab093SMoshe Shemesh 104179aab093SMoshe Shemesh #define IFLA_VF_VLAN_INFO_MAX (__IFLA_VF_VLAN_INFO_MAX - 1) 104279aab093SMoshe Shemesh #define MAX_VLAN_LIST_LEN 1 104379aab093SMoshe Shemesh 104479aab093SMoshe Shemesh struct ifla_vf_vlan_info { 104579aab093SMoshe Shemesh __u32 vf; 104679aab093SMoshe Shemesh __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ 104779aab093SMoshe Shemesh __u32 qos; 104879aab093SMoshe Shemesh __be16 vlan_proto; /* VLAN protocol either 802.1Q or 802.1ad */ 104979aab093SMoshe Shemesh }; 105079aab093SMoshe Shemesh 1051607ca46eSDavid Howells struct ifla_vf_tx_rate { 1052607ca46eSDavid Howells __u32 vf; 1053607ca46eSDavid Howells __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ 1054607ca46eSDavid Howells }; 1055607ca46eSDavid Howells 1056ed616689SSucheta Chakraborty struct ifla_vf_rate { 1057ed616689SSucheta Chakraborty __u32 vf; 1058ed616689SSucheta Chakraborty __u32 min_tx_rate; /* Min Bandwidth in Mbps */ 1059ed616689SSucheta Chakraborty __u32 max_tx_rate; /* Max Bandwidth in Mbps */ 1060ed616689SSucheta Chakraborty }; 1061ed616689SSucheta Chakraborty 1062607ca46eSDavid Howells struct ifla_vf_spoofchk { 1063607ca46eSDavid Howells __u32 vf; 1064607ca46eSDavid Howells __u32 setting; 1065607ca46eSDavid Howells }; 1066607ca46eSDavid Howells 1067cc8e27ccSEli Cohen struct ifla_vf_guid { 1068cc8e27ccSEli Cohen __u32 vf; 1069cc8e27ccSEli Cohen __u64 guid; 1070cc8e27ccSEli Cohen }; 1071cc8e27ccSEli Cohen 10721d8faf48SRony Efraim enum { 10731d8faf48SRony Efraim IFLA_VF_LINK_STATE_AUTO, /* link state of the uplink */ 10741d8faf48SRony Efraim IFLA_VF_LINK_STATE_ENABLE, /* link always up */ 10751d8faf48SRony Efraim IFLA_VF_LINK_STATE_DISABLE, /* link always down */ 10761d8faf48SRony Efraim __IFLA_VF_LINK_STATE_MAX, 10771d8faf48SRony Efraim }; 10781d8faf48SRony Efraim 10791d8faf48SRony Efraim struct ifla_vf_link_state { 10801d8faf48SRony Efraim __u32 vf; 10811d8faf48SRony Efraim __u32 link_state; 10821d8faf48SRony Efraim }; 10831d8faf48SRony Efraim 108401a3d796SVlad Zolotarov struct ifla_vf_rss_query_en { 108501a3d796SVlad Zolotarov __u32 vf; 108601a3d796SVlad Zolotarov __u32 setting; 108701a3d796SVlad Zolotarov }; 108801a3d796SVlad Zolotarov 10893b766cd8SEran Ben Elisha enum { 10903b766cd8SEran Ben Elisha IFLA_VF_STATS_RX_PACKETS, 10913b766cd8SEran Ben Elisha IFLA_VF_STATS_TX_PACKETS, 10923b766cd8SEran Ben Elisha IFLA_VF_STATS_RX_BYTES, 10933b766cd8SEran Ben Elisha IFLA_VF_STATS_TX_BYTES, 10943b766cd8SEran Ben Elisha IFLA_VF_STATS_BROADCAST, 10953b766cd8SEran Ben Elisha IFLA_VF_STATS_MULTICAST, 1096343a6d8eSNicolas Dichtel IFLA_VF_STATS_PAD, 1097c5a9f6f0SEugenia Emantayev IFLA_VF_STATS_RX_DROPPED, 1098c5a9f6f0SEugenia Emantayev IFLA_VF_STATS_TX_DROPPED, 10993b766cd8SEran Ben Elisha __IFLA_VF_STATS_MAX, 11003b766cd8SEran Ben Elisha }; 11013b766cd8SEran Ben Elisha 11023b766cd8SEran Ben Elisha #define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1) 11033b766cd8SEran Ben Elisha 1104dd461d6aSHiroshi Shimamoto struct ifla_vf_trust { 1105dd461d6aSHiroshi Shimamoto __u32 vf; 1106dd461d6aSHiroshi Shimamoto __u32 setting; 1107dd461d6aSHiroshi Shimamoto }; 1108dd461d6aSHiroshi Shimamoto 1109607ca46eSDavid Howells /* VF ports management section 1110607ca46eSDavid Howells * 1111607ca46eSDavid Howells * Nested layout of set/get msg is: 1112607ca46eSDavid Howells * 1113607ca46eSDavid Howells * [IFLA_NUM_VF] 1114607ca46eSDavid Howells * [IFLA_VF_PORTS] 1115607ca46eSDavid Howells * [IFLA_VF_PORT] 1116607ca46eSDavid Howells * [IFLA_PORT_*], ... 1117607ca46eSDavid Howells * [IFLA_VF_PORT] 1118607ca46eSDavid Howells * [IFLA_PORT_*], ... 1119607ca46eSDavid Howells * ... 1120607ca46eSDavid Howells * [IFLA_PORT_SELF] 1121607ca46eSDavid Howells * [IFLA_PORT_*], ... 1122607ca46eSDavid Howells */ 1123607ca46eSDavid Howells 1124607ca46eSDavid Howells enum { 1125607ca46eSDavid Howells IFLA_VF_PORT_UNSPEC, 1126607ca46eSDavid Howells IFLA_VF_PORT, /* nest */ 1127607ca46eSDavid Howells __IFLA_VF_PORT_MAX, 1128607ca46eSDavid Howells }; 1129607ca46eSDavid Howells 1130607ca46eSDavid Howells #define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1) 1131607ca46eSDavid Howells 1132607ca46eSDavid Howells enum { 1133607ca46eSDavid Howells IFLA_PORT_UNSPEC, 1134607ca46eSDavid Howells IFLA_PORT_VF, /* __u32 */ 1135607ca46eSDavid Howells IFLA_PORT_PROFILE, /* string */ 1136607ca46eSDavid Howells IFLA_PORT_VSI_TYPE, /* 802.1Qbg (pre-)standard VDP */ 1137607ca46eSDavid Howells IFLA_PORT_INSTANCE_UUID, /* binary UUID */ 1138607ca46eSDavid Howells IFLA_PORT_HOST_UUID, /* binary UUID */ 1139607ca46eSDavid Howells IFLA_PORT_REQUEST, /* __u8 */ 1140607ca46eSDavid Howells IFLA_PORT_RESPONSE, /* __u16, output only */ 1141607ca46eSDavid Howells __IFLA_PORT_MAX, 1142607ca46eSDavid Howells }; 1143607ca46eSDavid Howells 1144607ca46eSDavid Howells #define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1) 1145607ca46eSDavid Howells 1146607ca46eSDavid Howells #define PORT_PROFILE_MAX 40 1147607ca46eSDavid Howells #define PORT_UUID_MAX 16 1148607ca46eSDavid Howells #define PORT_SELF_VF -1 1149607ca46eSDavid Howells 1150607ca46eSDavid Howells enum { 1151607ca46eSDavid Howells PORT_REQUEST_PREASSOCIATE = 0, 1152607ca46eSDavid Howells PORT_REQUEST_PREASSOCIATE_RR, 1153607ca46eSDavid Howells PORT_REQUEST_ASSOCIATE, 1154607ca46eSDavid Howells PORT_REQUEST_DISASSOCIATE, 1155607ca46eSDavid Howells }; 1156607ca46eSDavid Howells 1157607ca46eSDavid Howells enum { 1158607ca46eSDavid Howells PORT_VDP_RESPONSE_SUCCESS = 0, 1159607ca46eSDavid Howells PORT_VDP_RESPONSE_INVALID_FORMAT, 1160607ca46eSDavid Howells PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES, 1161607ca46eSDavid Howells PORT_VDP_RESPONSE_UNUSED_VTID, 1162607ca46eSDavid Howells PORT_VDP_RESPONSE_VTID_VIOLATION, 1163607ca46eSDavid Howells PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION, 1164607ca46eSDavid Howells PORT_VDP_RESPONSE_OUT_OF_SYNC, 1165607ca46eSDavid Howells /* 0x08-0xFF reserved for future VDP use */ 1166607ca46eSDavid Howells PORT_PROFILE_RESPONSE_SUCCESS = 0x100, 1167607ca46eSDavid Howells PORT_PROFILE_RESPONSE_INPROGRESS, 1168607ca46eSDavid Howells PORT_PROFILE_RESPONSE_INVALID, 1169607ca46eSDavid Howells PORT_PROFILE_RESPONSE_BADSTATE, 1170607ca46eSDavid Howells PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES, 1171607ca46eSDavid Howells PORT_PROFILE_RESPONSE_ERROR, 1172607ca46eSDavid Howells }; 1173607ca46eSDavid Howells 1174607ca46eSDavid Howells struct ifla_port_vsi { 1175607ca46eSDavid Howells __u8 vsi_mgr_id; 1176607ca46eSDavid Howells __u8 vsi_type_id[3]; 1177607ca46eSDavid Howells __u8 vsi_type_version; 1178607ca46eSDavid Howells __u8 pad[3]; 1179607ca46eSDavid Howells }; 1180607ca46eSDavid Howells 1181607ca46eSDavid Howells 1182607ca46eSDavid Howells /* IPoIB section */ 1183607ca46eSDavid Howells 1184607ca46eSDavid Howells enum { 1185607ca46eSDavid Howells IFLA_IPOIB_UNSPEC, 1186607ca46eSDavid Howells IFLA_IPOIB_PKEY, 1187607ca46eSDavid Howells IFLA_IPOIB_MODE, 1188607ca46eSDavid Howells IFLA_IPOIB_UMCAST, 1189607ca46eSDavid Howells __IFLA_IPOIB_MAX 1190607ca46eSDavid Howells }; 1191607ca46eSDavid Howells 1192607ca46eSDavid Howells enum { 1193607ca46eSDavid Howells IPOIB_MODE_DATAGRAM = 0, /* using unreliable datagram QPs */ 1194607ca46eSDavid Howells IPOIB_MODE_CONNECTED = 1, /* using connected QPs */ 1195607ca46eSDavid Howells }; 1196607ca46eSDavid Howells 1197607ca46eSDavid Howells #define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1) 1198607ca46eSDavid Howells 1199f421436aSArvid Brodin 12008f4c0e01SMurali Karicheri /* HSR/PRP section, both uses same interface */ 12018f4c0e01SMurali Karicheri 12028f4c0e01SMurali Karicheri /* Different redundancy protocols for hsr device */ 12038f4c0e01SMurali Karicheri enum { 12048f4c0e01SMurali Karicheri HSR_PROTOCOL_HSR, 12058f4c0e01SMurali Karicheri HSR_PROTOCOL_PRP, 12068f4c0e01SMurali Karicheri HSR_PROTOCOL_MAX, 12078f4c0e01SMurali Karicheri }; 1208f421436aSArvid Brodin 1209f421436aSArvid Brodin enum { 1210f421436aSArvid Brodin IFLA_HSR_UNSPEC, 1211f421436aSArvid Brodin IFLA_HSR_SLAVE1, 1212f421436aSArvid Brodin IFLA_HSR_SLAVE2, 121398bf8362SArvid Brodin IFLA_HSR_MULTICAST_SPEC, /* Last byte of supervision addr */ 121498bf8362SArvid Brodin IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */ 121598bf8362SArvid Brodin IFLA_HSR_SEQ_NR, 1216b84e9307SPeter Heise IFLA_HSR_VERSION, /* HSR version */ 12178f4c0e01SMurali Karicheri IFLA_HSR_PROTOCOL, /* Indicate different protocol than 12188f4c0e01SMurali Karicheri * HSR. For example PRP. 12198f4c0e01SMurali Karicheri */ 1220f421436aSArvid Brodin __IFLA_HSR_MAX, 1221f421436aSArvid Brodin }; 1222f421436aSArvid Brodin 1223f421436aSArvid Brodin #define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1) 1224f421436aSArvid Brodin 122510c9ead9SRoopa Prabhu /* STATS section */ 122610c9ead9SRoopa Prabhu 122710c9ead9SRoopa Prabhu struct if_stats_msg { 122810c9ead9SRoopa Prabhu __u8 family; 122910c9ead9SRoopa Prabhu __u8 pad1; 123010c9ead9SRoopa Prabhu __u16 pad2; 123110c9ead9SRoopa Prabhu __u32 ifindex; 123210c9ead9SRoopa Prabhu __u32 filter_mask; 123310c9ead9SRoopa Prabhu }; 123410c9ead9SRoopa Prabhu 123510c9ead9SRoopa Prabhu /* A stats attribute can be netdev specific or a global stat. 123610c9ead9SRoopa Prabhu * For netdev stats, lets use the prefix IFLA_STATS_LINK_* 123710c9ead9SRoopa Prabhu */ 123810c9ead9SRoopa Prabhu enum { 123910c9ead9SRoopa Prabhu IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */ 124010c9ead9SRoopa Prabhu IFLA_STATS_LINK_64, 124197a47facSNikolay Aleksandrov IFLA_STATS_LINK_XSTATS, 124280e73cc5SNikolay Aleksandrov IFLA_STATS_LINK_XSTATS_SLAVE, 124369ae6ad2SNogah Frankel IFLA_STATS_LINK_OFFLOAD_XSTATS, 1244aefb4d4aSRobert Shearman IFLA_STATS_AF_SPEC, 124510c9ead9SRoopa Prabhu __IFLA_STATS_MAX, 124610c9ead9SRoopa Prabhu }; 124710c9ead9SRoopa Prabhu 124810c9ead9SRoopa Prabhu #define IFLA_STATS_MAX (__IFLA_STATS_MAX - 1) 124910c9ead9SRoopa Prabhu 125010c9ead9SRoopa Prabhu #define IFLA_STATS_FILTER_BIT(ATTR) (1 << (ATTR - 1)) 125110c9ead9SRoopa Prabhu 125246efc97bSPetr Machata enum { 125346efc97bSPetr Machata IFLA_STATS_GETSET_UNSPEC, 125446efc97bSPetr Machata IFLA_STATS_GET_FILTERS, /* Nest of IFLA_STATS_LINK_xxx, each a u32 with 125546efc97bSPetr Machata * a filter mask for the corresponding group. 125646efc97bSPetr Machata */ 12575fd0b838SPetr Machata IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS, /* 0 or 1 as u8 */ 125846efc97bSPetr Machata __IFLA_STATS_GETSET_MAX, 125946efc97bSPetr Machata }; 126046efc97bSPetr Machata 126146efc97bSPetr Machata #define IFLA_STATS_GETSET_MAX (__IFLA_STATS_GETSET_MAX - 1) 126246efc97bSPetr Machata 126397a47facSNikolay Aleksandrov /* These are embedded into IFLA_STATS_LINK_XSTATS: 126497a47facSNikolay Aleksandrov * [IFLA_STATS_LINK_XSTATS] 126597a47facSNikolay Aleksandrov * -> [LINK_XSTATS_TYPE_xxx] 126697a47facSNikolay Aleksandrov * -> [rtnl link type specific attributes] 126797a47facSNikolay Aleksandrov */ 126897a47facSNikolay Aleksandrov enum { 126997a47facSNikolay Aleksandrov LINK_XSTATS_TYPE_UNSPEC, 1270a60c0903SNikolay Aleksandrov LINK_XSTATS_TYPE_BRIDGE, 1271a258aeacSNikolay Aleksandrov LINK_XSTATS_TYPE_BOND, 127297a47facSNikolay Aleksandrov __LINK_XSTATS_TYPE_MAX 127397a47facSNikolay Aleksandrov }; 127497a47facSNikolay Aleksandrov #define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1) 127597a47facSNikolay Aleksandrov 127669ae6ad2SNogah Frankel /* These are stats embedded into IFLA_STATS_LINK_OFFLOAD_XSTATS */ 127769ae6ad2SNogah Frankel enum { 127869ae6ad2SNogah Frankel IFLA_OFFLOAD_XSTATS_UNSPEC, 127969ae6ad2SNogah Frankel IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */ 12800e7788fdSPetr Machata IFLA_OFFLOAD_XSTATS_HW_S_INFO, /* HW stats info. A nest */ 12810e7788fdSPetr Machata IFLA_OFFLOAD_XSTATS_L3_STATS, /* struct rtnl_hw_stats64 */ 128269ae6ad2SNogah Frankel __IFLA_OFFLOAD_XSTATS_MAX 128369ae6ad2SNogah Frankel }; 128469ae6ad2SNogah Frankel #define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1) 128569ae6ad2SNogah Frankel 12860e7788fdSPetr Machata enum { 12870e7788fdSPetr Machata IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC, 12880e7788fdSPetr Machata IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST, /* u8 */ 12890e7788fdSPetr Machata IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED, /* u8 */ 12900e7788fdSPetr Machata __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX, 12910e7788fdSPetr Machata }; 12920e7788fdSPetr Machata #define IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX \ 12930e7788fdSPetr Machata (__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX - 1) 12940e7788fdSPetr Machata 1295d1fdd913SBrenden Blanco /* XDP section */ 1296d1fdd913SBrenden Blanco 129785de8576SDaniel Borkmann #define XDP_FLAGS_UPDATE_IF_NOEXIST (1U << 0) 12980489df9aSDaniel Borkmann #define XDP_FLAGS_SKB_MODE (1U << 1) 12990489df9aSDaniel Borkmann #define XDP_FLAGS_DRV_MODE (1U << 2) 1300ee5d032fSJakub Kicinski #define XDP_FLAGS_HW_MODE (1U << 3) 130192234c8fSToke Høiland-Jørgensen #define XDP_FLAGS_REPLACE (1U << 4) 1302ee5d032fSJakub Kicinski #define XDP_FLAGS_MODES (XDP_FLAGS_SKB_MODE | \ 1303ee5d032fSJakub Kicinski XDP_FLAGS_DRV_MODE | \ 1304ee5d032fSJakub Kicinski XDP_FLAGS_HW_MODE) 1305b5cdae32SDavid S. Miller #define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST | \ 130692234c8fSToke Høiland-Jørgensen XDP_FLAGS_MODES | XDP_FLAGS_REPLACE) 130785de8576SDaniel Borkmann 1308d67b9cd2SDaniel Borkmann /* These are stored into IFLA_XDP_ATTACHED on dump. */ 1309d67b9cd2SDaniel Borkmann enum { 1310d67b9cd2SDaniel Borkmann XDP_ATTACHED_NONE = 0, 1311d67b9cd2SDaniel Borkmann XDP_ATTACHED_DRV, 1312d67b9cd2SDaniel Borkmann XDP_ATTACHED_SKB, 1313ce158e58SJakub Kicinski XDP_ATTACHED_HW, 1314a25717d2SJakub Kicinski XDP_ATTACHED_MULTI, 1315d67b9cd2SDaniel Borkmann }; 1316d67b9cd2SDaniel Borkmann 1317d1fdd913SBrenden Blanco enum { 1318d1fdd913SBrenden Blanco IFLA_XDP_UNSPEC, 1319d1fdd913SBrenden Blanco IFLA_XDP_FD, 1320d1fdd913SBrenden Blanco IFLA_XDP_ATTACHED, 132185de8576SDaniel Borkmann IFLA_XDP_FLAGS, 132258038695SMartin KaFai Lau IFLA_XDP_PROG_ID, 13234f91da26SJakub Kicinski IFLA_XDP_DRV_PROG_ID, 13244f91da26SJakub Kicinski IFLA_XDP_SKB_PROG_ID, 13254f91da26SJakub Kicinski IFLA_XDP_HW_PROG_ID, 132692234c8fSToke Høiland-Jørgensen IFLA_XDP_EXPECTED_FD, 1327d1fdd913SBrenden Blanco __IFLA_XDP_MAX, 1328d1fdd913SBrenden Blanco }; 1329d1fdd913SBrenden Blanco 1330d1fdd913SBrenden Blanco #define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1) 1331d1fdd913SBrenden Blanco 13323d3ea5afSVlad Yasevich enum { 13333d3ea5afSVlad Yasevich IFLA_EVENT_NONE, 13343d3ea5afSVlad Yasevich IFLA_EVENT_REBOOT, /* internal reset / reboot */ 13353d3ea5afSVlad Yasevich IFLA_EVENT_FEATURES, /* change in offload features */ 13363d3ea5afSVlad Yasevich IFLA_EVENT_BONDING_FAILOVER, /* change in active slave */ 13373d3ea5afSVlad Yasevich IFLA_EVENT_NOTIFY_PEERS, /* re-sent grat. arp/ndisc */ 13383d3ea5afSVlad Yasevich IFLA_EVENT_IGMP_RESEND, /* re-sent IGMP JOIN */ 13393d3ea5afSVlad Yasevich IFLA_EVENT_BONDING_OPTIONS, /* change in bonding options */ 13403d3ea5afSVlad Yasevich }; 13413d3ea5afSVlad Yasevich 13421ec010e7SSabrina Dubroca /* tun section */ 13431ec010e7SSabrina Dubroca 13441ec010e7SSabrina Dubroca enum { 13451ec010e7SSabrina Dubroca IFLA_TUN_UNSPEC, 13461ec010e7SSabrina Dubroca IFLA_TUN_OWNER, 13471ec010e7SSabrina Dubroca IFLA_TUN_GROUP, 13481ec010e7SSabrina Dubroca IFLA_TUN_TYPE, 13491ec010e7SSabrina Dubroca IFLA_TUN_PI, 13501ec010e7SSabrina Dubroca IFLA_TUN_VNET_HDR, 13511ec010e7SSabrina Dubroca IFLA_TUN_PERSIST, 13521ec010e7SSabrina Dubroca IFLA_TUN_MULTI_QUEUE, 13531ec010e7SSabrina Dubroca IFLA_TUN_NUM_QUEUES, 13541ec010e7SSabrina Dubroca IFLA_TUN_NUM_DISABLED_QUEUES, 13551ec010e7SSabrina Dubroca __IFLA_TUN_MAX, 13561ec010e7SSabrina Dubroca }; 13571ec010e7SSabrina Dubroca 13581ec010e7SSabrina Dubroca #define IFLA_TUN_MAX (__IFLA_TUN_MAX - 1) 13591ec010e7SSabrina Dubroca 136014452ca3SSubash Abhinov Kasiviswanathan /* rmnet section */ 136114452ca3SSubash Abhinov Kasiviswanathan 136214452ca3SSubash Abhinov Kasiviswanathan #define RMNET_FLAGS_INGRESS_DEAGGREGATION (1U << 0) 136314452ca3SSubash Abhinov Kasiviswanathan #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1) 136414452ca3SSubash Abhinov Kasiviswanathan #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2) 136514452ca3SSubash Abhinov Kasiviswanathan #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3) 1366e1d9a90aSSharath Chandra Vurukala #define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4) 1367b6e5d27eSSharath Chandra Vurukala #define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5) 136814452ca3SSubash Abhinov Kasiviswanathan 136914452ca3SSubash Abhinov Kasiviswanathan enum { 137014452ca3SSubash Abhinov Kasiviswanathan IFLA_RMNET_UNSPEC, 137114452ca3SSubash Abhinov Kasiviswanathan IFLA_RMNET_MUX_ID, 137214452ca3SSubash Abhinov Kasiviswanathan IFLA_RMNET_FLAGS, 137314452ca3SSubash Abhinov Kasiviswanathan __IFLA_RMNET_MAX, 137414452ca3SSubash Abhinov Kasiviswanathan }; 137514452ca3SSubash Abhinov Kasiviswanathan 137614452ca3SSubash Abhinov Kasiviswanathan #define IFLA_RMNET_MAX (__IFLA_RMNET_MAX - 1) 137714452ca3SSubash Abhinov Kasiviswanathan 137814452ca3SSubash Abhinov Kasiviswanathan struct ifla_rmnet_flags { 137914452ca3SSubash Abhinov Kasiviswanathan __u32 flags; 138014452ca3SSubash Abhinov Kasiviswanathan __u32 mask; 138114452ca3SSubash Abhinov Kasiviswanathan }; 138214452ca3SSubash Abhinov Kasiviswanathan 1383583be982SJeremy Kerr /* MCTP section */ 1384583be982SJeremy Kerr 1385583be982SJeremy Kerr enum { 1386583be982SJeremy Kerr IFLA_MCTP_UNSPEC, 1387583be982SJeremy Kerr IFLA_MCTP_NET, 1388583be982SJeremy Kerr __IFLA_MCTP_MAX, 1389583be982SJeremy Kerr }; 1390583be982SJeremy Kerr 1391583be982SJeremy Kerr #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1) 1392583be982SJeremy Kerr 139395f510d0SVladimir Oltean /* DSA section */ 139495f510d0SVladimir Oltean 139595f510d0SVladimir Oltean enum { 139695f510d0SVladimir Oltean IFLA_DSA_UNSPEC, 1397*87cd8371SFlorian Fainelli IFLA_DSA_CONDUIT, 1398*87cd8371SFlorian Fainelli /* Deprecated, use IFLA_DSA_CONDUIT instead */ 1399*87cd8371SFlorian Fainelli IFLA_DSA_MASTER = IFLA_DSA_CONDUIT, 140095f510d0SVladimir Oltean __IFLA_DSA_MAX, 140195f510d0SVladimir Oltean }; 140295f510d0SVladimir Oltean 140395f510d0SVladimir Oltean #define IFLA_DSA_MAX (__IFLA_DSA_MAX - 1) 140495f510d0SVladimir Oltean 1405607ca46eSDavid Howells #endif /* _UAPI_LINUX_IF_LINK_H */ 1406