17c2aad20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 27c2aad20Sopenharmony_ci#ifndef _UAPI_LINUX_IF_LINK_H 37c2aad20Sopenharmony_ci#define _UAPI_LINUX_IF_LINK_H 47c2aad20Sopenharmony_ci 57c2aad20Sopenharmony_ci#include <linux/types.h> 67c2aad20Sopenharmony_ci#include <linux/netlink.h> 77c2aad20Sopenharmony_ci 87c2aad20Sopenharmony_ci/* This struct should be in sync with struct rtnl_link_stats64 */ 97c2aad20Sopenharmony_cistruct rtnl_link_stats { 107c2aad20Sopenharmony_ci __u32 rx_packets; 117c2aad20Sopenharmony_ci __u32 tx_packets; 127c2aad20Sopenharmony_ci __u32 rx_bytes; 137c2aad20Sopenharmony_ci __u32 tx_bytes; 147c2aad20Sopenharmony_ci __u32 rx_errors; 157c2aad20Sopenharmony_ci __u32 tx_errors; 167c2aad20Sopenharmony_ci __u32 rx_dropped; 177c2aad20Sopenharmony_ci __u32 tx_dropped; 187c2aad20Sopenharmony_ci __u32 multicast; 197c2aad20Sopenharmony_ci __u32 collisions; 207c2aad20Sopenharmony_ci /* detailed rx_errors: */ 217c2aad20Sopenharmony_ci __u32 rx_length_errors; 227c2aad20Sopenharmony_ci __u32 rx_over_errors; 237c2aad20Sopenharmony_ci __u32 rx_crc_errors; 247c2aad20Sopenharmony_ci __u32 rx_frame_errors; 257c2aad20Sopenharmony_ci __u32 rx_fifo_errors; 267c2aad20Sopenharmony_ci __u32 rx_missed_errors; 277c2aad20Sopenharmony_ci 287c2aad20Sopenharmony_ci /* detailed tx_errors */ 297c2aad20Sopenharmony_ci __u32 tx_aborted_errors; 307c2aad20Sopenharmony_ci __u32 tx_carrier_errors; 317c2aad20Sopenharmony_ci __u32 tx_fifo_errors; 327c2aad20Sopenharmony_ci __u32 tx_heartbeat_errors; 337c2aad20Sopenharmony_ci __u32 tx_window_errors; 347c2aad20Sopenharmony_ci 357c2aad20Sopenharmony_ci /* for cslip etc */ 367c2aad20Sopenharmony_ci __u32 rx_compressed; 377c2aad20Sopenharmony_ci __u32 tx_compressed; 387c2aad20Sopenharmony_ci 397c2aad20Sopenharmony_ci __u32 rx_nohandler; 407c2aad20Sopenharmony_ci}; 417c2aad20Sopenharmony_ci 427c2aad20Sopenharmony_ci/** 437c2aad20Sopenharmony_ci * struct rtnl_link_stats64 - The main device statistics structure. 447c2aad20Sopenharmony_ci * 457c2aad20Sopenharmony_ci * @rx_packets: Number of good packets received by the interface. 467c2aad20Sopenharmony_ci * For hardware interfaces counts all good packets received from the device 477c2aad20Sopenharmony_ci * by the host, including packets which host had to drop at various stages 487c2aad20Sopenharmony_ci * of processing (even in the driver). 497c2aad20Sopenharmony_ci * 507c2aad20Sopenharmony_ci * @tx_packets: Number of packets successfully transmitted. 517c2aad20Sopenharmony_ci * For hardware interfaces counts packets which host was able to successfully 527c2aad20Sopenharmony_ci * hand over to the device, which does not necessarily mean that packets 537c2aad20Sopenharmony_ci * had been successfully transmitted out of the device, only that device 547c2aad20Sopenharmony_ci * acknowledged it copied them out of host memory. 557c2aad20Sopenharmony_ci * 567c2aad20Sopenharmony_ci * @rx_bytes: Number of good received bytes, corresponding to @rx_packets. 577c2aad20Sopenharmony_ci * 587c2aad20Sopenharmony_ci * For IEEE 802.3 devices should count the length of Ethernet Frames 597c2aad20Sopenharmony_ci * excluding the FCS. 607c2aad20Sopenharmony_ci * 617c2aad20Sopenharmony_ci * @tx_bytes: Number of good transmitted bytes, corresponding to @tx_packets. 627c2aad20Sopenharmony_ci * 637c2aad20Sopenharmony_ci * For IEEE 802.3 devices should count the length of Ethernet Frames 647c2aad20Sopenharmony_ci * excluding the FCS. 657c2aad20Sopenharmony_ci * 667c2aad20Sopenharmony_ci * @rx_errors: Total number of bad packets received on this network device. 677c2aad20Sopenharmony_ci * This counter must include events counted by @rx_length_errors, 687c2aad20Sopenharmony_ci * @rx_crc_errors, @rx_frame_errors and other errors not otherwise 697c2aad20Sopenharmony_ci * counted. 707c2aad20Sopenharmony_ci * 717c2aad20Sopenharmony_ci * @tx_errors: Total number of transmit problems. 727c2aad20Sopenharmony_ci * This counter must include events counter by @tx_aborted_errors, 737c2aad20Sopenharmony_ci * @tx_carrier_errors, @tx_fifo_errors, @tx_heartbeat_errors, 747c2aad20Sopenharmony_ci * @tx_window_errors and other errors not otherwise counted. 757c2aad20Sopenharmony_ci * 767c2aad20Sopenharmony_ci * @rx_dropped: Number of packets received but not processed, 777c2aad20Sopenharmony_ci * e.g. due to lack of resources or unsupported protocol. 787c2aad20Sopenharmony_ci * For hardware interfaces this counter may include packets discarded 797c2aad20Sopenharmony_ci * due to L2 address filtering but should not include packets dropped 807c2aad20Sopenharmony_ci * by the device due to buffer exhaustion which are counted separately in 817c2aad20Sopenharmony_ci * @rx_missed_errors (since procfs folds those two counters together). 827c2aad20Sopenharmony_ci * 837c2aad20Sopenharmony_ci * @tx_dropped: Number of packets dropped on their way to transmission, 847c2aad20Sopenharmony_ci * e.g. due to lack of resources. 857c2aad20Sopenharmony_ci * 867c2aad20Sopenharmony_ci * @multicast: Multicast packets received. 877c2aad20Sopenharmony_ci * For hardware interfaces this statistic is commonly calculated 887c2aad20Sopenharmony_ci * at the device level (unlike @rx_packets) and therefore may include 897c2aad20Sopenharmony_ci * packets which did not reach the host. 907c2aad20Sopenharmony_ci * 917c2aad20Sopenharmony_ci * For IEEE 802.3 devices this counter may be equivalent to: 927c2aad20Sopenharmony_ci * 937c2aad20Sopenharmony_ci * - 30.3.1.1.21 aMulticastFramesReceivedOK 947c2aad20Sopenharmony_ci * 957c2aad20Sopenharmony_ci * @collisions: Number of collisions during packet transmissions. 967c2aad20Sopenharmony_ci * 977c2aad20Sopenharmony_ci * @rx_length_errors: Number of packets dropped due to invalid length. 987c2aad20Sopenharmony_ci * Part of aggregate "frame" errors in `/proc/net/dev`. 997c2aad20Sopenharmony_ci * 1007c2aad20Sopenharmony_ci * For IEEE 802.3 devices this counter should be equivalent to a sum 1017c2aad20Sopenharmony_ci * of the following attributes: 1027c2aad20Sopenharmony_ci * 1037c2aad20Sopenharmony_ci * - 30.3.1.1.23 aInRangeLengthErrors 1047c2aad20Sopenharmony_ci * - 30.3.1.1.24 aOutOfRangeLengthField 1057c2aad20Sopenharmony_ci * - 30.3.1.1.25 aFrameTooLongErrors 1067c2aad20Sopenharmony_ci * 1077c2aad20Sopenharmony_ci * @rx_over_errors: Receiver FIFO overflow event counter. 1087c2aad20Sopenharmony_ci * 1097c2aad20Sopenharmony_ci * Historically the count of overflow events. Such events may be 1107c2aad20Sopenharmony_ci * reported in the receive descriptors or via interrupts, and may 1117c2aad20Sopenharmony_ci * not correspond one-to-one with dropped packets. 1127c2aad20Sopenharmony_ci * 1137c2aad20Sopenharmony_ci * The recommended interpretation for high speed interfaces is - 1147c2aad20Sopenharmony_ci * number of packets dropped because they did not fit into buffers 1157c2aad20Sopenharmony_ci * provided by the host, e.g. packets larger than MTU or next buffer 1167c2aad20Sopenharmony_ci * in the ring was not available for a scatter transfer. 1177c2aad20Sopenharmony_ci * 1187c2aad20Sopenharmony_ci * Part of aggregate "frame" errors in `/proc/net/dev`. 1197c2aad20Sopenharmony_ci * 1207c2aad20Sopenharmony_ci * This statistics was historically used interchangeably with 1217c2aad20Sopenharmony_ci * @rx_fifo_errors. 1227c2aad20Sopenharmony_ci * 1237c2aad20Sopenharmony_ci * This statistic corresponds to hardware events and is not commonly used 1247c2aad20Sopenharmony_ci * on software devices. 1257c2aad20Sopenharmony_ci * 1267c2aad20Sopenharmony_ci * @rx_crc_errors: Number of packets received with a CRC error. 1277c2aad20Sopenharmony_ci * Part of aggregate "frame" errors in `/proc/net/dev`. 1287c2aad20Sopenharmony_ci * 1297c2aad20Sopenharmony_ci * For IEEE 802.3 devices this counter must be equivalent to: 1307c2aad20Sopenharmony_ci * 1317c2aad20Sopenharmony_ci * - 30.3.1.1.6 aFrameCheckSequenceErrors 1327c2aad20Sopenharmony_ci * 1337c2aad20Sopenharmony_ci * @rx_frame_errors: Receiver frame alignment errors. 1347c2aad20Sopenharmony_ci * Part of aggregate "frame" errors in `/proc/net/dev`. 1357c2aad20Sopenharmony_ci * 1367c2aad20Sopenharmony_ci * For IEEE 802.3 devices this counter should be equivalent to: 1377c2aad20Sopenharmony_ci * 1387c2aad20Sopenharmony_ci * - 30.3.1.1.7 aAlignmentErrors 1397c2aad20Sopenharmony_ci * 1407c2aad20Sopenharmony_ci * @rx_fifo_errors: Receiver FIFO error counter. 1417c2aad20Sopenharmony_ci * 1427c2aad20Sopenharmony_ci * Historically the count of overflow events. Those events may be 1437c2aad20Sopenharmony_ci * reported in the receive descriptors or via interrupts, and may 1447c2aad20Sopenharmony_ci * not correspond one-to-one with dropped packets. 1457c2aad20Sopenharmony_ci * 1467c2aad20Sopenharmony_ci * This statistics was used interchangeably with @rx_over_errors. 1477c2aad20Sopenharmony_ci * Not recommended for use in drivers for high speed interfaces. 1487c2aad20Sopenharmony_ci * 1497c2aad20Sopenharmony_ci * This statistic is used on software devices, e.g. to count software 1507c2aad20Sopenharmony_ci * packet queue overflow (can) or sequencing errors (GRE). 1517c2aad20Sopenharmony_ci * 1527c2aad20Sopenharmony_ci * @rx_missed_errors: Count of packets missed by the host. 1537c2aad20Sopenharmony_ci * Folded into the "drop" counter in `/proc/net/dev`. 1547c2aad20Sopenharmony_ci * 1557c2aad20Sopenharmony_ci * Counts number of packets dropped by the device due to lack 1567c2aad20Sopenharmony_ci * of buffer space. This usually indicates that the host interface 1577c2aad20Sopenharmony_ci * is slower than the network interface, or host is not keeping up 1587c2aad20Sopenharmony_ci * with the receive packet rate. 1597c2aad20Sopenharmony_ci * 1607c2aad20Sopenharmony_ci * This statistic corresponds to hardware events and is not used 1617c2aad20Sopenharmony_ci * on software devices. 1627c2aad20Sopenharmony_ci * 1637c2aad20Sopenharmony_ci * @tx_aborted_errors: 1647c2aad20Sopenharmony_ci * Part of aggregate "carrier" errors in `/proc/net/dev`. 1657c2aad20Sopenharmony_ci * For IEEE 802.3 devices capable of half-duplex operation this counter 1667c2aad20Sopenharmony_ci * must be equivalent to: 1677c2aad20Sopenharmony_ci * 1687c2aad20Sopenharmony_ci * - 30.3.1.1.11 aFramesAbortedDueToXSColls 1697c2aad20Sopenharmony_ci * 1707c2aad20Sopenharmony_ci * High speed interfaces may use this counter as a general device 1717c2aad20Sopenharmony_ci * discard counter. 1727c2aad20Sopenharmony_ci * 1737c2aad20Sopenharmony_ci * @tx_carrier_errors: Number of frame transmission errors due to loss 1747c2aad20Sopenharmony_ci * of carrier during transmission. 1757c2aad20Sopenharmony_ci * Part of aggregate "carrier" errors in `/proc/net/dev`. 1767c2aad20Sopenharmony_ci * 1777c2aad20Sopenharmony_ci * For IEEE 802.3 devices this counter must be equivalent to: 1787c2aad20Sopenharmony_ci * 1797c2aad20Sopenharmony_ci * - 30.3.1.1.13 aCarrierSenseErrors 1807c2aad20Sopenharmony_ci * 1817c2aad20Sopenharmony_ci * @tx_fifo_errors: Number of frame transmission errors due to device 1827c2aad20Sopenharmony_ci * FIFO underrun / underflow. This condition occurs when the device 1837c2aad20Sopenharmony_ci * begins transmission of a frame but is unable to deliver the 1847c2aad20Sopenharmony_ci * entire frame to the transmitter in time for transmission. 1857c2aad20Sopenharmony_ci * Part of aggregate "carrier" errors in `/proc/net/dev`. 1867c2aad20Sopenharmony_ci * 1877c2aad20Sopenharmony_ci * @tx_heartbeat_errors: Number of Heartbeat / SQE Test errors for 1887c2aad20Sopenharmony_ci * old half-duplex Ethernet. 1897c2aad20Sopenharmony_ci * Part of aggregate "carrier" errors in `/proc/net/dev`. 1907c2aad20Sopenharmony_ci * 1917c2aad20Sopenharmony_ci * For IEEE 802.3 devices possibly equivalent to: 1927c2aad20Sopenharmony_ci * 1937c2aad20Sopenharmony_ci * - 30.3.2.1.4 aSQETestErrors 1947c2aad20Sopenharmony_ci * 1957c2aad20Sopenharmony_ci * @tx_window_errors: Number of frame transmission errors due 1967c2aad20Sopenharmony_ci * to late collisions (for Ethernet - after the first 64B of transmission). 1977c2aad20Sopenharmony_ci * Part of aggregate "carrier" errors in `/proc/net/dev`. 1987c2aad20Sopenharmony_ci * 1997c2aad20Sopenharmony_ci * For IEEE 802.3 devices this counter must be equivalent to: 2007c2aad20Sopenharmony_ci * 2017c2aad20Sopenharmony_ci * - 30.3.1.1.10 aLateCollisions 2027c2aad20Sopenharmony_ci * 2037c2aad20Sopenharmony_ci * @rx_compressed: Number of correctly received compressed packets. 2047c2aad20Sopenharmony_ci * This counters is only meaningful for interfaces which support 2057c2aad20Sopenharmony_ci * packet compression (e.g. CSLIP, PPP). 2067c2aad20Sopenharmony_ci * 2077c2aad20Sopenharmony_ci * @tx_compressed: Number of transmitted compressed packets. 2087c2aad20Sopenharmony_ci * This counters is only meaningful for interfaces which support 2097c2aad20Sopenharmony_ci * packet compression (e.g. CSLIP, PPP). 2107c2aad20Sopenharmony_ci * 2117c2aad20Sopenharmony_ci * @rx_nohandler: Number of packets received on the interface 2127c2aad20Sopenharmony_ci * but dropped by the networking stack because the device is 2137c2aad20Sopenharmony_ci * not designated to receive packets (e.g. backup link in a bond). 2147c2aad20Sopenharmony_ci * 2157c2aad20Sopenharmony_ci * @rx_otherhost_dropped: Number of packets dropped due to mismatch 2167c2aad20Sopenharmony_ci * in destination MAC address. 2177c2aad20Sopenharmony_ci */ 2187c2aad20Sopenharmony_cistruct rtnl_link_stats64 { 2197c2aad20Sopenharmony_ci __u64 rx_packets; 2207c2aad20Sopenharmony_ci __u64 tx_packets; 2217c2aad20Sopenharmony_ci __u64 rx_bytes; 2227c2aad20Sopenharmony_ci __u64 tx_bytes; 2237c2aad20Sopenharmony_ci __u64 rx_errors; 2247c2aad20Sopenharmony_ci __u64 tx_errors; 2257c2aad20Sopenharmony_ci __u64 rx_dropped; 2267c2aad20Sopenharmony_ci __u64 tx_dropped; 2277c2aad20Sopenharmony_ci __u64 multicast; 2287c2aad20Sopenharmony_ci __u64 collisions; 2297c2aad20Sopenharmony_ci 2307c2aad20Sopenharmony_ci /* detailed rx_errors: */ 2317c2aad20Sopenharmony_ci __u64 rx_length_errors; 2327c2aad20Sopenharmony_ci __u64 rx_over_errors; 2337c2aad20Sopenharmony_ci __u64 rx_crc_errors; 2347c2aad20Sopenharmony_ci __u64 rx_frame_errors; 2357c2aad20Sopenharmony_ci __u64 rx_fifo_errors; 2367c2aad20Sopenharmony_ci __u64 rx_missed_errors; 2377c2aad20Sopenharmony_ci 2387c2aad20Sopenharmony_ci /* detailed tx_errors */ 2397c2aad20Sopenharmony_ci __u64 tx_aborted_errors; 2407c2aad20Sopenharmony_ci __u64 tx_carrier_errors; 2417c2aad20Sopenharmony_ci __u64 tx_fifo_errors; 2427c2aad20Sopenharmony_ci __u64 tx_heartbeat_errors; 2437c2aad20Sopenharmony_ci __u64 tx_window_errors; 2447c2aad20Sopenharmony_ci 2457c2aad20Sopenharmony_ci /* for cslip etc */ 2467c2aad20Sopenharmony_ci __u64 rx_compressed; 2477c2aad20Sopenharmony_ci __u64 tx_compressed; 2487c2aad20Sopenharmony_ci __u64 rx_nohandler; 2497c2aad20Sopenharmony_ci 2507c2aad20Sopenharmony_ci __u64 rx_otherhost_dropped; 2517c2aad20Sopenharmony_ci}; 2527c2aad20Sopenharmony_ci 2537c2aad20Sopenharmony_ci/* Subset of link stats useful for in-HW collection. Meaning of the fields is as 2547c2aad20Sopenharmony_ci * for struct rtnl_link_stats64. 2557c2aad20Sopenharmony_ci */ 2567c2aad20Sopenharmony_cistruct rtnl_hw_stats64 { 2577c2aad20Sopenharmony_ci __u64 rx_packets; 2587c2aad20Sopenharmony_ci __u64 tx_packets; 2597c2aad20Sopenharmony_ci __u64 rx_bytes; 2607c2aad20Sopenharmony_ci __u64 tx_bytes; 2617c2aad20Sopenharmony_ci __u64 rx_errors; 2627c2aad20Sopenharmony_ci __u64 tx_errors; 2637c2aad20Sopenharmony_ci __u64 rx_dropped; 2647c2aad20Sopenharmony_ci __u64 tx_dropped; 2657c2aad20Sopenharmony_ci __u64 multicast; 2667c2aad20Sopenharmony_ci}; 2677c2aad20Sopenharmony_ci 2687c2aad20Sopenharmony_ci/* The struct should be in sync with struct ifmap */ 2697c2aad20Sopenharmony_cistruct rtnl_link_ifmap { 2707c2aad20Sopenharmony_ci __u64 mem_start; 2717c2aad20Sopenharmony_ci __u64 mem_end; 2727c2aad20Sopenharmony_ci __u64 base_addr; 2737c2aad20Sopenharmony_ci __u16 irq; 2747c2aad20Sopenharmony_ci __u8 dma; 2757c2aad20Sopenharmony_ci __u8 port; 2767c2aad20Sopenharmony_ci}; 2777c2aad20Sopenharmony_ci 2787c2aad20Sopenharmony_ci/* 2797c2aad20Sopenharmony_ci * IFLA_AF_SPEC 2807c2aad20Sopenharmony_ci * Contains nested attributes for address family specific attributes. 2817c2aad20Sopenharmony_ci * Each address family may create a attribute with the address family 2827c2aad20Sopenharmony_ci * number as type and create its own attribute structure in it. 2837c2aad20Sopenharmony_ci * 2847c2aad20Sopenharmony_ci * Example: 2857c2aad20Sopenharmony_ci * [IFLA_AF_SPEC] = { 2867c2aad20Sopenharmony_ci * [AF_INET] = { 2877c2aad20Sopenharmony_ci * [IFLA_INET_CONF] = ..., 2887c2aad20Sopenharmony_ci * }, 2897c2aad20Sopenharmony_ci * [AF_INET6] = { 2907c2aad20Sopenharmony_ci * [IFLA_INET6_FLAGS] = ..., 2917c2aad20Sopenharmony_ci * [IFLA_INET6_CONF] = ..., 2927c2aad20Sopenharmony_ci * } 2937c2aad20Sopenharmony_ci * } 2947c2aad20Sopenharmony_ci */ 2957c2aad20Sopenharmony_ci 2967c2aad20Sopenharmony_cienum { 2977c2aad20Sopenharmony_ci IFLA_UNSPEC, 2987c2aad20Sopenharmony_ci IFLA_ADDRESS, 2997c2aad20Sopenharmony_ci IFLA_BROADCAST, 3007c2aad20Sopenharmony_ci IFLA_IFNAME, 3017c2aad20Sopenharmony_ci IFLA_MTU, 3027c2aad20Sopenharmony_ci IFLA_LINK, 3037c2aad20Sopenharmony_ci IFLA_QDISC, 3047c2aad20Sopenharmony_ci IFLA_STATS, 3057c2aad20Sopenharmony_ci IFLA_COST, 3067c2aad20Sopenharmony_ci#define IFLA_COST IFLA_COST 3077c2aad20Sopenharmony_ci IFLA_PRIORITY, 3087c2aad20Sopenharmony_ci#define IFLA_PRIORITY IFLA_PRIORITY 3097c2aad20Sopenharmony_ci IFLA_MASTER, 3107c2aad20Sopenharmony_ci#define IFLA_MASTER IFLA_MASTER 3117c2aad20Sopenharmony_ci IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */ 3127c2aad20Sopenharmony_ci#define IFLA_WIRELESS IFLA_WIRELESS 3137c2aad20Sopenharmony_ci IFLA_PROTINFO, /* Protocol specific information for a link */ 3147c2aad20Sopenharmony_ci#define IFLA_PROTINFO IFLA_PROTINFO 3157c2aad20Sopenharmony_ci IFLA_TXQLEN, 3167c2aad20Sopenharmony_ci#define IFLA_TXQLEN IFLA_TXQLEN 3177c2aad20Sopenharmony_ci IFLA_MAP, 3187c2aad20Sopenharmony_ci#define IFLA_MAP IFLA_MAP 3197c2aad20Sopenharmony_ci IFLA_WEIGHT, 3207c2aad20Sopenharmony_ci#define IFLA_WEIGHT IFLA_WEIGHT 3217c2aad20Sopenharmony_ci IFLA_OPERSTATE, 3227c2aad20Sopenharmony_ci IFLA_LINKMODE, 3237c2aad20Sopenharmony_ci IFLA_LINKINFO, 3247c2aad20Sopenharmony_ci#define IFLA_LINKINFO IFLA_LINKINFO 3257c2aad20Sopenharmony_ci IFLA_NET_NS_PID, 3267c2aad20Sopenharmony_ci IFLA_IFALIAS, 3277c2aad20Sopenharmony_ci IFLA_NUM_VF, /* Number of VFs if device is SR-IOV PF */ 3287c2aad20Sopenharmony_ci IFLA_VFINFO_LIST, 3297c2aad20Sopenharmony_ci IFLA_STATS64, 3307c2aad20Sopenharmony_ci IFLA_VF_PORTS, 3317c2aad20Sopenharmony_ci IFLA_PORT_SELF, 3327c2aad20Sopenharmony_ci IFLA_AF_SPEC, 3337c2aad20Sopenharmony_ci IFLA_GROUP, /* Group the device belongs to */ 3347c2aad20Sopenharmony_ci IFLA_NET_NS_FD, 3357c2aad20Sopenharmony_ci IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ 3367c2aad20Sopenharmony_ci IFLA_PROMISCUITY, /* Promiscuity count: > 0 means acts PROMISC */ 3377c2aad20Sopenharmony_ci#define IFLA_PROMISCUITY IFLA_PROMISCUITY 3387c2aad20Sopenharmony_ci IFLA_NUM_TX_QUEUES, 3397c2aad20Sopenharmony_ci IFLA_NUM_RX_QUEUES, 3407c2aad20Sopenharmony_ci IFLA_CARRIER, 3417c2aad20Sopenharmony_ci IFLA_PHYS_PORT_ID, 3427c2aad20Sopenharmony_ci IFLA_CARRIER_CHANGES, 3437c2aad20Sopenharmony_ci IFLA_PHYS_SWITCH_ID, 3447c2aad20Sopenharmony_ci IFLA_LINK_NETNSID, 3457c2aad20Sopenharmony_ci IFLA_PHYS_PORT_NAME, 3467c2aad20Sopenharmony_ci IFLA_PROTO_DOWN, 3477c2aad20Sopenharmony_ci IFLA_GSO_MAX_SEGS, 3487c2aad20Sopenharmony_ci IFLA_GSO_MAX_SIZE, 3497c2aad20Sopenharmony_ci IFLA_PAD, 3507c2aad20Sopenharmony_ci IFLA_XDP, 3517c2aad20Sopenharmony_ci IFLA_EVENT, 3527c2aad20Sopenharmony_ci IFLA_NEW_NETNSID, 3537c2aad20Sopenharmony_ci IFLA_IF_NETNSID, 3547c2aad20Sopenharmony_ci IFLA_TARGET_NETNSID = IFLA_IF_NETNSID, /* new alias */ 3557c2aad20Sopenharmony_ci IFLA_CARRIER_UP_COUNT, 3567c2aad20Sopenharmony_ci IFLA_CARRIER_DOWN_COUNT, 3577c2aad20Sopenharmony_ci IFLA_NEW_IFINDEX, 3587c2aad20Sopenharmony_ci IFLA_MIN_MTU, 3597c2aad20Sopenharmony_ci IFLA_MAX_MTU, 3607c2aad20Sopenharmony_ci IFLA_PROP_LIST, 3617c2aad20Sopenharmony_ci IFLA_ALT_IFNAME, /* Alternative ifname */ 3627c2aad20Sopenharmony_ci IFLA_PERM_ADDRESS, 3637c2aad20Sopenharmony_ci IFLA_PROTO_DOWN_REASON, 3647c2aad20Sopenharmony_ci 3657c2aad20Sopenharmony_ci /* device (sysfs) name as parent, used instead 3667c2aad20Sopenharmony_ci * of IFLA_LINK where there's no parent netdev 3677c2aad20Sopenharmony_ci */ 3687c2aad20Sopenharmony_ci IFLA_PARENT_DEV_NAME, 3697c2aad20Sopenharmony_ci IFLA_PARENT_DEV_BUS_NAME, 3707c2aad20Sopenharmony_ci IFLA_GRO_MAX_SIZE, 3717c2aad20Sopenharmony_ci IFLA_TSO_MAX_SIZE, 3727c2aad20Sopenharmony_ci IFLA_TSO_MAX_SEGS, 3737c2aad20Sopenharmony_ci IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */ 3747c2aad20Sopenharmony_ci 3757c2aad20Sopenharmony_ci IFLA_DEVLINK_PORT, 3767c2aad20Sopenharmony_ci 3777c2aad20Sopenharmony_ci IFLA_GSO_IPV4_MAX_SIZE, 3787c2aad20Sopenharmony_ci IFLA_GRO_IPV4_MAX_SIZE, 3797c2aad20Sopenharmony_ci IFLA_DPLL_PIN, 3807c2aad20Sopenharmony_ci __IFLA_MAX 3817c2aad20Sopenharmony_ci}; 3827c2aad20Sopenharmony_ci 3837c2aad20Sopenharmony_ci 3847c2aad20Sopenharmony_ci#define IFLA_MAX (__IFLA_MAX - 1) 3857c2aad20Sopenharmony_ci 3867c2aad20Sopenharmony_cienum { 3877c2aad20Sopenharmony_ci IFLA_PROTO_DOWN_REASON_UNSPEC, 3887c2aad20Sopenharmony_ci IFLA_PROTO_DOWN_REASON_MASK, /* u32, mask for reason bits */ 3897c2aad20Sopenharmony_ci IFLA_PROTO_DOWN_REASON_VALUE, /* u32, reason bit value */ 3907c2aad20Sopenharmony_ci 3917c2aad20Sopenharmony_ci __IFLA_PROTO_DOWN_REASON_CNT, 3927c2aad20Sopenharmony_ci IFLA_PROTO_DOWN_REASON_MAX = __IFLA_PROTO_DOWN_REASON_CNT - 1 3937c2aad20Sopenharmony_ci}; 3947c2aad20Sopenharmony_ci 3957c2aad20Sopenharmony_ci/* backwards compatibility for userspace */ 3967c2aad20Sopenharmony_ci#ifndef __KERNEL__ 3977c2aad20Sopenharmony_ci#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) 3987c2aad20Sopenharmony_ci#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg)) 3997c2aad20Sopenharmony_ci#endif 4007c2aad20Sopenharmony_ci 4017c2aad20Sopenharmony_cienum { 4027c2aad20Sopenharmony_ci IFLA_INET_UNSPEC, 4037c2aad20Sopenharmony_ci IFLA_INET_CONF, 4047c2aad20Sopenharmony_ci __IFLA_INET_MAX, 4057c2aad20Sopenharmony_ci}; 4067c2aad20Sopenharmony_ci 4077c2aad20Sopenharmony_ci#define IFLA_INET_MAX (__IFLA_INET_MAX - 1) 4087c2aad20Sopenharmony_ci 4097c2aad20Sopenharmony_ci/* ifi_flags. 4107c2aad20Sopenharmony_ci 4117c2aad20Sopenharmony_ci IFF_* flags. 4127c2aad20Sopenharmony_ci 4137c2aad20Sopenharmony_ci The only change is: 4147c2aad20Sopenharmony_ci IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are 4157c2aad20Sopenharmony_ci more not changeable by user. They describe link media 4167c2aad20Sopenharmony_ci characteristics and set by device driver. 4177c2aad20Sopenharmony_ci 4187c2aad20Sopenharmony_ci Comments: 4197c2aad20Sopenharmony_ci - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid 4207c2aad20Sopenharmony_ci - If neither of these three flags are set; 4217c2aad20Sopenharmony_ci the interface is NBMA. 4227c2aad20Sopenharmony_ci 4237c2aad20Sopenharmony_ci - IFF_MULTICAST does not mean anything special: 4247c2aad20Sopenharmony_ci multicasts can be used on all not-NBMA links. 4257c2aad20Sopenharmony_ci IFF_MULTICAST means that this media uses special encapsulation 4267c2aad20Sopenharmony_ci for multicast frames. Apparently, all IFF_POINTOPOINT and 4277c2aad20Sopenharmony_ci IFF_BROADCAST devices are able to use multicasts too. 4287c2aad20Sopenharmony_ci */ 4297c2aad20Sopenharmony_ci 4307c2aad20Sopenharmony_ci/* IFLA_LINK. 4317c2aad20Sopenharmony_ci For usual devices it is equal ifi_index. 4327c2aad20Sopenharmony_ci If it is a "virtual interface" (f.e. tunnel), ifi_link 4337c2aad20Sopenharmony_ci can point to real physical interface (f.e. for bandwidth calculations), 4347c2aad20Sopenharmony_ci or maybe 0, what means, that real media is unknown (usual 4357c2aad20Sopenharmony_ci for IPIP tunnels, when route to endpoint is allowed to change) 4367c2aad20Sopenharmony_ci */ 4377c2aad20Sopenharmony_ci 4387c2aad20Sopenharmony_ci/* Subtype attributes for IFLA_PROTINFO */ 4397c2aad20Sopenharmony_cienum { 4407c2aad20Sopenharmony_ci IFLA_INET6_UNSPEC, 4417c2aad20Sopenharmony_ci IFLA_INET6_FLAGS, /* link flags */ 4427c2aad20Sopenharmony_ci IFLA_INET6_CONF, /* sysctl parameters */ 4437c2aad20Sopenharmony_ci IFLA_INET6_STATS, /* statistics */ 4447c2aad20Sopenharmony_ci IFLA_INET6_MCAST, /* MC things. What of them? */ 4457c2aad20Sopenharmony_ci IFLA_INET6_CACHEINFO, /* time values and max reasm size */ 4467c2aad20Sopenharmony_ci IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */ 4477c2aad20Sopenharmony_ci IFLA_INET6_TOKEN, /* device token */ 4487c2aad20Sopenharmony_ci IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */ 4497c2aad20Sopenharmony_ci IFLA_INET6_RA_MTU, /* mtu carried in the RA message */ 4507c2aad20Sopenharmony_ci __IFLA_INET6_MAX 4517c2aad20Sopenharmony_ci}; 4527c2aad20Sopenharmony_ci 4537c2aad20Sopenharmony_ci#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) 4547c2aad20Sopenharmony_ci 4557c2aad20Sopenharmony_cienum in6_addr_gen_mode { 4567c2aad20Sopenharmony_ci IN6_ADDR_GEN_MODE_EUI64, 4577c2aad20Sopenharmony_ci IN6_ADDR_GEN_MODE_NONE, 4587c2aad20Sopenharmony_ci IN6_ADDR_GEN_MODE_STABLE_PRIVACY, 4597c2aad20Sopenharmony_ci IN6_ADDR_GEN_MODE_RANDOM, 4607c2aad20Sopenharmony_ci}; 4617c2aad20Sopenharmony_ci 4627c2aad20Sopenharmony_ci/* Bridge section */ 4637c2aad20Sopenharmony_ci 4647c2aad20Sopenharmony_cienum { 4657c2aad20Sopenharmony_ci IFLA_BR_UNSPEC, 4667c2aad20Sopenharmony_ci IFLA_BR_FORWARD_DELAY, 4677c2aad20Sopenharmony_ci IFLA_BR_HELLO_TIME, 4687c2aad20Sopenharmony_ci IFLA_BR_MAX_AGE, 4697c2aad20Sopenharmony_ci IFLA_BR_AGEING_TIME, 4707c2aad20Sopenharmony_ci IFLA_BR_STP_STATE, 4717c2aad20Sopenharmony_ci IFLA_BR_PRIORITY, 4727c2aad20Sopenharmony_ci IFLA_BR_VLAN_FILTERING, 4737c2aad20Sopenharmony_ci IFLA_BR_VLAN_PROTOCOL, 4747c2aad20Sopenharmony_ci IFLA_BR_GROUP_FWD_MASK, 4757c2aad20Sopenharmony_ci IFLA_BR_ROOT_ID, 4767c2aad20Sopenharmony_ci IFLA_BR_BRIDGE_ID, 4777c2aad20Sopenharmony_ci IFLA_BR_ROOT_PORT, 4787c2aad20Sopenharmony_ci IFLA_BR_ROOT_PATH_COST, 4797c2aad20Sopenharmony_ci IFLA_BR_TOPOLOGY_CHANGE, 4807c2aad20Sopenharmony_ci IFLA_BR_TOPOLOGY_CHANGE_DETECTED, 4817c2aad20Sopenharmony_ci IFLA_BR_HELLO_TIMER, 4827c2aad20Sopenharmony_ci IFLA_BR_TCN_TIMER, 4837c2aad20Sopenharmony_ci IFLA_BR_TOPOLOGY_CHANGE_TIMER, 4847c2aad20Sopenharmony_ci IFLA_BR_GC_TIMER, 4857c2aad20Sopenharmony_ci IFLA_BR_GROUP_ADDR, 4867c2aad20Sopenharmony_ci IFLA_BR_FDB_FLUSH, 4877c2aad20Sopenharmony_ci IFLA_BR_MCAST_ROUTER, 4887c2aad20Sopenharmony_ci IFLA_BR_MCAST_SNOOPING, 4897c2aad20Sopenharmony_ci IFLA_BR_MCAST_QUERY_USE_IFADDR, 4907c2aad20Sopenharmony_ci IFLA_BR_MCAST_QUERIER, 4917c2aad20Sopenharmony_ci IFLA_BR_MCAST_HASH_ELASTICITY, 4927c2aad20Sopenharmony_ci IFLA_BR_MCAST_HASH_MAX, 4937c2aad20Sopenharmony_ci IFLA_BR_MCAST_LAST_MEMBER_CNT, 4947c2aad20Sopenharmony_ci IFLA_BR_MCAST_STARTUP_QUERY_CNT, 4957c2aad20Sopenharmony_ci IFLA_BR_MCAST_LAST_MEMBER_INTVL, 4967c2aad20Sopenharmony_ci IFLA_BR_MCAST_MEMBERSHIP_INTVL, 4977c2aad20Sopenharmony_ci IFLA_BR_MCAST_QUERIER_INTVL, 4987c2aad20Sopenharmony_ci IFLA_BR_MCAST_QUERY_INTVL, 4997c2aad20Sopenharmony_ci IFLA_BR_MCAST_QUERY_RESPONSE_INTVL, 5007c2aad20Sopenharmony_ci IFLA_BR_MCAST_STARTUP_QUERY_INTVL, 5017c2aad20Sopenharmony_ci IFLA_BR_NF_CALL_IPTABLES, 5027c2aad20Sopenharmony_ci IFLA_BR_NF_CALL_IP6TABLES, 5037c2aad20Sopenharmony_ci IFLA_BR_NF_CALL_ARPTABLES, 5047c2aad20Sopenharmony_ci IFLA_BR_VLAN_DEFAULT_PVID, 5057c2aad20Sopenharmony_ci IFLA_BR_PAD, 5067c2aad20Sopenharmony_ci IFLA_BR_VLAN_STATS_ENABLED, 5077c2aad20Sopenharmony_ci IFLA_BR_MCAST_STATS_ENABLED, 5087c2aad20Sopenharmony_ci IFLA_BR_MCAST_IGMP_VERSION, 5097c2aad20Sopenharmony_ci IFLA_BR_MCAST_MLD_VERSION, 5107c2aad20Sopenharmony_ci IFLA_BR_VLAN_STATS_PER_PORT, 5117c2aad20Sopenharmony_ci IFLA_BR_MULTI_BOOLOPT, 5127c2aad20Sopenharmony_ci IFLA_BR_MCAST_QUERIER_STATE, 5137c2aad20Sopenharmony_ci __IFLA_BR_MAX, 5147c2aad20Sopenharmony_ci}; 5157c2aad20Sopenharmony_ci 5167c2aad20Sopenharmony_ci#define IFLA_BR_MAX (__IFLA_BR_MAX - 1) 5177c2aad20Sopenharmony_ci 5187c2aad20Sopenharmony_cistruct ifla_bridge_id { 5197c2aad20Sopenharmony_ci __u8 prio[2]; 5207c2aad20Sopenharmony_ci __u8 addr[6]; /* ETH_ALEN */ 5217c2aad20Sopenharmony_ci}; 5227c2aad20Sopenharmony_ci 5237c2aad20Sopenharmony_cienum { 5247c2aad20Sopenharmony_ci BRIDGE_MODE_UNSPEC, 5257c2aad20Sopenharmony_ci BRIDGE_MODE_HAIRPIN, 5267c2aad20Sopenharmony_ci}; 5277c2aad20Sopenharmony_ci 5287c2aad20Sopenharmony_cienum { 5297c2aad20Sopenharmony_ci IFLA_BRPORT_UNSPEC, 5307c2aad20Sopenharmony_ci IFLA_BRPORT_STATE, /* Spanning tree state */ 5317c2aad20Sopenharmony_ci IFLA_BRPORT_PRIORITY, /* " priority */ 5327c2aad20Sopenharmony_ci IFLA_BRPORT_COST, /* " cost */ 5337c2aad20Sopenharmony_ci IFLA_BRPORT_MODE, /* mode (hairpin) */ 5347c2aad20Sopenharmony_ci IFLA_BRPORT_GUARD, /* bpdu guard */ 5357c2aad20Sopenharmony_ci IFLA_BRPORT_PROTECT, /* root port protection */ 5367c2aad20Sopenharmony_ci IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */ 5377c2aad20Sopenharmony_ci IFLA_BRPORT_LEARNING, /* mac learning */ 5387c2aad20Sopenharmony_ci IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */ 5397c2aad20Sopenharmony_ci IFLA_BRPORT_PROXYARP, /* proxy ARP */ 5407c2aad20Sopenharmony_ci IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */ 5417c2aad20Sopenharmony_ci IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */ 5427c2aad20Sopenharmony_ci IFLA_BRPORT_ROOT_ID, /* designated root */ 5437c2aad20Sopenharmony_ci IFLA_BRPORT_BRIDGE_ID, /* designated bridge */ 5447c2aad20Sopenharmony_ci IFLA_BRPORT_DESIGNATED_PORT, 5457c2aad20Sopenharmony_ci IFLA_BRPORT_DESIGNATED_COST, 5467c2aad20Sopenharmony_ci IFLA_BRPORT_ID, 5477c2aad20Sopenharmony_ci IFLA_BRPORT_NO, 5487c2aad20Sopenharmony_ci IFLA_BRPORT_TOPOLOGY_CHANGE_ACK, 5497c2aad20Sopenharmony_ci IFLA_BRPORT_CONFIG_PENDING, 5507c2aad20Sopenharmony_ci IFLA_BRPORT_MESSAGE_AGE_TIMER, 5517c2aad20Sopenharmony_ci IFLA_BRPORT_FORWARD_DELAY_TIMER, 5527c2aad20Sopenharmony_ci IFLA_BRPORT_HOLD_TIMER, 5537c2aad20Sopenharmony_ci IFLA_BRPORT_FLUSH, 5547c2aad20Sopenharmony_ci IFLA_BRPORT_MULTICAST_ROUTER, 5557c2aad20Sopenharmony_ci IFLA_BRPORT_PAD, 5567c2aad20Sopenharmony_ci IFLA_BRPORT_MCAST_FLOOD, 5577c2aad20Sopenharmony_ci IFLA_BRPORT_MCAST_TO_UCAST, 5587c2aad20Sopenharmony_ci IFLA_BRPORT_VLAN_TUNNEL, 5597c2aad20Sopenharmony_ci IFLA_BRPORT_BCAST_FLOOD, 5607c2aad20Sopenharmony_ci IFLA_BRPORT_GROUP_FWD_MASK, 5617c2aad20Sopenharmony_ci IFLA_BRPORT_NEIGH_SUPPRESS, 5627c2aad20Sopenharmony_ci IFLA_BRPORT_ISOLATED, 5637c2aad20Sopenharmony_ci IFLA_BRPORT_BACKUP_PORT, 5647c2aad20Sopenharmony_ci IFLA_BRPORT_MRP_RING_OPEN, 5657c2aad20Sopenharmony_ci IFLA_BRPORT_MRP_IN_OPEN, 5667c2aad20Sopenharmony_ci IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, 5677c2aad20Sopenharmony_ci IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, 5687c2aad20Sopenharmony_ci IFLA_BRPORT_LOCKED, 5697c2aad20Sopenharmony_ci IFLA_BRPORT_MAB, 5707c2aad20Sopenharmony_ci IFLA_BRPORT_MCAST_N_GROUPS, 5717c2aad20Sopenharmony_ci IFLA_BRPORT_MCAST_MAX_GROUPS, 5727c2aad20Sopenharmony_ci IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, 5737c2aad20Sopenharmony_ci IFLA_BRPORT_BACKUP_NHID, 5747c2aad20Sopenharmony_ci __IFLA_BRPORT_MAX 5757c2aad20Sopenharmony_ci}; 5767c2aad20Sopenharmony_ci#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) 5777c2aad20Sopenharmony_ci 5787c2aad20Sopenharmony_cistruct ifla_cacheinfo { 5797c2aad20Sopenharmony_ci __u32 max_reasm_len; 5807c2aad20Sopenharmony_ci __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ 5817c2aad20Sopenharmony_ci __u32 reachable_time; 5827c2aad20Sopenharmony_ci __u32 retrans_time; 5837c2aad20Sopenharmony_ci}; 5847c2aad20Sopenharmony_ci 5857c2aad20Sopenharmony_cienum { 5867c2aad20Sopenharmony_ci IFLA_INFO_UNSPEC, 5877c2aad20Sopenharmony_ci IFLA_INFO_KIND, 5887c2aad20Sopenharmony_ci IFLA_INFO_DATA, 5897c2aad20Sopenharmony_ci IFLA_INFO_XSTATS, 5907c2aad20Sopenharmony_ci IFLA_INFO_SLAVE_KIND, 5917c2aad20Sopenharmony_ci IFLA_INFO_SLAVE_DATA, 5927c2aad20Sopenharmony_ci __IFLA_INFO_MAX, 5937c2aad20Sopenharmony_ci}; 5947c2aad20Sopenharmony_ci 5957c2aad20Sopenharmony_ci#define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1) 5967c2aad20Sopenharmony_ci 5977c2aad20Sopenharmony_ci/* VLAN section */ 5987c2aad20Sopenharmony_ci 5997c2aad20Sopenharmony_cienum { 6007c2aad20Sopenharmony_ci IFLA_VLAN_UNSPEC, 6017c2aad20Sopenharmony_ci IFLA_VLAN_ID, 6027c2aad20Sopenharmony_ci IFLA_VLAN_FLAGS, 6037c2aad20Sopenharmony_ci IFLA_VLAN_EGRESS_QOS, 6047c2aad20Sopenharmony_ci IFLA_VLAN_INGRESS_QOS, 6057c2aad20Sopenharmony_ci IFLA_VLAN_PROTOCOL, 6067c2aad20Sopenharmony_ci __IFLA_VLAN_MAX, 6077c2aad20Sopenharmony_ci}; 6087c2aad20Sopenharmony_ci 6097c2aad20Sopenharmony_ci#define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1) 6107c2aad20Sopenharmony_ci 6117c2aad20Sopenharmony_cistruct ifla_vlan_flags { 6127c2aad20Sopenharmony_ci __u32 flags; 6137c2aad20Sopenharmony_ci __u32 mask; 6147c2aad20Sopenharmony_ci}; 6157c2aad20Sopenharmony_ci 6167c2aad20Sopenharmony_cienum { 6177c2aad20Sopenharmony_ci IFLA_VLAN_QOS_UNSPEC, 6187c2aad20Sopenharmony_ci IFLA_VLAN_QOS_MAPPING, 6197c2aad20Sopenharmony_ci __IFLA_VLAN_QOS_MAX 6207c2aad20Sopenharmony_ci}; 6217c2aad20Sopenharmony_ci 6227c2aad20Sopenharmony_ci#define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1) 6237c2aad20Sopenharmony_ci 6247c2aad20Sopenharmony_cistruct ifla_vlan_qos_mapping { 6257c2aad20Sopenharmony_ci __u32 from; 6267c2aad20Sopenharmony_ci __u32 to; 6277c2aad20Sopenharmony_ci}; 6287c2aad20Sopenharmony_ci 6297c2aad20Sopenharmony_ci/* MACVLAN section */ 6307c2aad20Sopenharmony_cienum { 6317c2aad20Sopenharmony_ci IFLA_MACVLAN_UNSPEC, 6327c2aad20Sopenharmony_ci IFLA_MACVLAN_MODE, 6337c2aad20Sopenharmony_ci IFLA_MACVLAN_FLAGS, 6347c2aad20Sopenharmony_ci IFLA_MACVLAN_MACADDR_MODE, 6357c2aad20Sopenharmony_ci IFLA_MACVLAN_MACADDR, 6367c2aad20Sopenharmony_ci IFLA_MACVLAN_MACADDR_DATA, 6377c2aad20Sopenharmony_ci IFLA_MACVLAN_MACADDR_COUNT, 6387c2aad20Sopenharmony_ci IFLA_MACVLAN_BC_QUEUE_LEN, 6397c2aad20Sopenharmony_ci IFLA_MACVLAN_BC_QUEUE_LEN_USED, 6407c2aad20Sopenharmony_ci IFLA_MACVLAN_BC_CUTOFF, 6417c2aad20Sopenharmony_ci __IFLA_MACVLAN_MAX, 6427c2aad20Sopenharmony_ci}; 6437c2aad20Sopenharmony_ci 6447c2aad20Sopenharmony_ci#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1) 6457c2aad20Sopenharmony_ci 6467c2aad20Sopenharmony_cienum macvlan_mode { 6477c2aad20Sopenharmony_ci MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */ 6487c2aad20Sopenharmony_ci MACVLAN_MODE_VEPA = 2, /* talk to other ports through ext bridge */ 6497c2aad20Sopenharmony_ci MACVLAN_MODE_BRIDGE = 4, /* talk to bridge ports directly */ 6507c2aad20Sopenharmony_ci MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */ 6517c2aad20Sopenharmony_ci MACVLAN_MODE_SOURCE = 16,/* use source MAC address list to assign */ 6527c2aad20Sopenharmony_ci}; 6537c2aad20Sopenharmony_ci 6547c2aad20Sopenharmony_cienum macvlan_macaddr_mode { 6557c2aad20Sopenharmony_ci MACVLAN_MACADDR_ADD, 6567c2aad20Sopenharmony_ci MACVLAN_MACADDR_DEL, 6577c2aad20Sopenharmony_ci MACVLAN_MACADDR_FLUSH, 6587c2aad20Sopenharmony_ci MACVLAN_MACADDR_SET, 6597c2aad20Sopenharmony_ci}; 6607c2aad20Sopenharmony_ci 6617c2aad20Sopenharmony_ci#define MACVLAN_FLAG_NOPROMISC 1 6627c2aad20Sopenharmony_ci#define MACVLAN_FLAG_NODST 2 /* skip dst macvlan if matching src macvlan */ 6637c2aad20Sopenharmony_ci 6647c2aad20Sopenharmony_ci/* VRF section */ 6657c2aad20Sopenharmony_cienum { 6667c2aad20Sopenharmony_ci IFLA_VRF_UNSPEC, 6677c2aad20Sopenharmony_ci IFLA_VRF_TABLE, 6687c2aad20Sopenharmony_ci __IFLA_VRF_MAX 6697c2aad20Sopenharmony_ci}; 6707c2aad20Sopenharmony_ci 6717c2aad20Sopenharmony_ci#define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1) 6727c2aad20Sopenharmony_ci 6737c2aad20Sopenharmony_cienum { 6747c2aad20Sopenharmony_ci IFLA_VRF_PORT_UNSPEC, 6757c2aad20Sopenharmony_ci IFLA_VRF_PORT_TABLE, 6767c2aad20Sopenharmony_ci __IFLA_VRF_PORT_MAX 6777c2aad20Sopenharmony_ci}; 6787c2aad20Sopenharmony_ci 6797c2aad20Sopenharmony_ci#define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1) 6807c2aad20Sopenharmony_ci 6817c2aad20Sopenharmony_ci/* MACSEC section */ 6827c2aad20Sopenharmony_cienum { 6837c2aad20Sopenharmony_ci IFLA_MACSEC_UNSPEC, 6847c2aad20Sopenharmony_ci IFLA_MACSEC_SCI, 6857c2aad20Sopenharmony_ci IFLA_MACSEC_PORT, 6867c2aad20Sopenharmony_ci IFLA_MACSEC_ICV_LEN, 6877c2aad20Sopenharmony_ci IFLA_MACSEC_CIPHER_SUITE, 6887c2aad20Sopenharmony_ci IFLA_MACSEC_WINDOW, 6897c2aad20Sopenharmony_ci IFLA_MACSEC_ENCODING_SA, 6907c2aad20Sopenharmony_ci IFLA_MACSEC_ENCRYPT, 6917c2aad20Sopenharmony_ci IFLA_MACSEC_PROTECT, 6927c2aad20Sopenharmony_ci IFLA_MACSEC_INC_SCI, 6937c2aad20Sopenharmony_ci IFLA_MACSEC_ES, 6947c2aad20Sopenharmony_ci IFLA_MACSEC_SCB, 6957c2aad20Sopenharmony_ci IFLA_MACSEC_REPLAY_PROTECT, 6967c2aad20Sopenharmony_ci IFLA_MACSEC_VALIDATION, 6977c2aad20Sopenharmony_ci IFLA_MACSEC_PAD, 6987c2aad20Sopenharmony_ci IFLA_MACSEC_OFFLOAD, 6997c2aad20Sopenharmony_ci __IFLA_MACSEC_MAX, 7007c2aad20Sopenharmony_ci}; 7017c2aad20Sopenharmony_ci 7027c2aad20Sopenharmony_ci#define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) 7037c2aad20Sopenharmony_ci 7047c2aad20Sopenharmony_ci/* XFRM section */ 7057c2aad20Sopenharmony_cienum { 7067c2aad20Sopenharmony_ci IFLA_XFRM_UNSPEC, 7077c2aad20Sopenharmony_ci IFLA_XFRM_LINK, 7087c2aad20Sopenharmony_ci IFLA_XFRM_IF_ID, 7097c2aad20Sopenharmony_ci IFLA_XFRM_COLLECT_METADATA, 7107c2aad20Sopenharmony_ci __IFLA_XFRM_MAX 7117c2aad20Sopenharmony_ci}; 7127c2aad20Sopenharmony_ci 7137c2aad20Sopenharmony_ci#define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1) 7147c2aad20Sopenharmony_ci 7157c2aad20Sopenharmony_cienum macsec_validation_type { 7167c2aad20Sopenharmony_ci MACSEC_VALIDATE_DISABLED = 0, 7177c2aad20Sopenharmony_ci MACSEC_VALIDATE_CHECK = 1, 7187c2aad20Sopenharmony_ci MACSEC_VALIDATE_STRICT = 2, 7197c2aad20Sopenharmony_ci __MACSEC_VALIDATE_END, 7207c2aad20Sopenharmony_ci MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1, 7217c2aad20Sopenharmony_ci}; 7227c2aad20Sopenharmony_ci 7237c2aad20Sopenharmony_cienum macsec_offload { 7247c2aad20Sopenharmony_ci MACSEC_OFFLOAD_OFF = 0, 7257c2aad20Sopenharmony_ci MACSEC_OFFLOAD_PHY = 1, 7267c2aad20Sopenharmony_ci MACSEC_OFFLOAD_MAC = 2, 7277c2aad20Sopenharmony_ci __MACSEC_OFFLOAD_END, 7287c2aad20Sopenharmony_ci MACSEC_OFFLOAD_MAX = __MACSEC_OFFLOAD_END - 1, 7297c2aad20Sopenharmony_ci}; 7307c2aad20Sopenharmony_ci 7317c2aad20Sopenharmony_ci/* IPVLAN section */ 7327c2aad20Sopenharmony_cienum { 7337c2aad20Sopenharmony_ci IFLA_IPVLAN_UNSPEC, 7347c2aad20Sopenharmony_ci IFLA_IPVLAN_MODE, 7357c2aad20Sopenharmony_ci IFLA_IPVLAN_FLAGS, 7367c2aad20Sopenharmony_ci __IFLA_IPVLAN_MAX 7377c2aad20Sopenharmony_ci}; 7387c2aad20Sopenharmony_ci 7397c2aad20Sopenharmony_ci#define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1) 7407c2aad20Sopenharmony_ci 7417c2aad20Sopenharmony_cienum ipvlan_mode { 7427c2aad20Sopenharmony_ci IPVLAN_MODE_L2 = 0, 7437c2aad20Sopenharmony_ci IPVLAN_MODE_L3, 7447c2aad20Sopenharmony_ci IPVLAN_MODE_L3S, 7457c2aad20Sopenharmony_ci IPVLAN_MODE_MAX 7467c2aad20Sopenharmony_ci}; 7477c2aad20Sopenharmony_ci 7487c2aad20Sopenharmony_ci#define IPVLAN_F_PRIVATE 0x01 7497c2aad20Sopenharmony_ci#define IPVLAN_F_VEPA 0x02 7507c2aad20Sopenharmony_ci 7517c2aad20Sopenharmony_ci/* Tunnel RTM header */ 7527c2aad20Sopenharmony_cistruct tunnel_msg { 7537c2aad20Sopenharmony_ci __u8 family; 7547c2aad20Sopenharmony_ci __u8 flags; 7557c2aad20Sopenharmony_ci __u16 reserved2; 7567c2aad20Sopenharmony_ci __u32 ifindex; 7577c2aad20Sopenharmony_ci}; 7587c2aad20Sopenharmony_ci 7597c2aad20Sopenharmony_ci/* netkit section */ 7607c2aad20Sopenharmony_cienum netkit_action { 7617c2aad20Sopenharmony_ci NETKIT_NEXT = -1, 7627c2aad20Sopenharmony_ci NETKIT_PASS = 0, 7637c2aad20Sopenharmony_ci NETKIT_DROP = 2, 7647c2aad20Sopenharmony_ci NETKIT_REDIRECT = 7, 7657c2aad20Sopenharmony_ci}; 7667c2aad20Sopenharmony_ci 7677c2aad20Sopenharmony_cienum netkit_mode { 7687c2aad20Sopenharmony_ci NETKIT_L2, 7697c2aad20Sopenharmony_ci NETKIT_L3, 7707c2aad20Sopenharmony_ci}; 7717c2aad20Sopenharmony_ci 7727c2aad20Sopenharmony_cienum { 7737c2aad20Sopenharmony_ci IFLA_NETKIT_UNSPEC, 7747c2aad20Sopenharmony_ci IFLA_NETKIT_PEER_INFO, 7757c2aad20Sopenharmony_ci IFLA_NETKIT_PRIMARY, 7767c2aad20Sopenharmony_ci IFLA_NETKIT_POLICY, 7777c2aad20Sopenharmony_ci IFLA_NETKIT_PEER_POLICY, 7787c2aad20Sopenharmony_ci IFLA_NETKIT_MODE, 7797c2aad20Sopenharmony_ci __IFLA_NETKIT_MAX, 7807c2aad20Sopenharmony_ci}; 7817c2aad20Sopenharmony_ci#define IFLA_NETKIT_MAX (__IFLA_NETKIT_MAX - 1) 7827c2aad20Sopenharmony_ci 7837c2aad20Sopenharmony_ci/* VXLAN section */ 7847c2aad20Sopenharmony_ci 7857c2aad20Sopenharmony_ci/* include statistics in the dump */ 7867c2aad20Sopenharmony_ci#define TUNNEL_MSG_FLAG_STATS 0x01 7877c2aad20Sopenharmony_ci 7887c2aad20Sopenharmony_ci#define TUNNEL_MSG_VALID_USER_FLAGS TUNNEL_MSG_FLAG_STATS 7897c2aad20Sopenharmony_ci 7907c2aad20Sopenharmony_ci/* Embedded inside VXLAN_VNIFILTER_ENTRY_STATS */ 7917c2aad20Sopenharmony_cienum { 7927c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_UNSPEC, 7937c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_RX_BYTES, 7947c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_RX_PKTS, 7957c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_RX_DROPS, 7967c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_RX_ERRORS, 7977c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_TX_BYTES, 7987c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_TX_PKTS, 7997c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_TX_DROPS, 8007c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_TX_ERRORS, 8017c2aad20Sopenharmony_ci VNIFILTER_ENTRY_STATS_PAD, 8027c2aad20Sopenharmony_ci __VNIFILTER_ENTRY_STATS_MAX 8037c2aad20Sopenharmony_ci}; 8047c2aad20Sopenharmony_ci#define VNIFILTER_ENTRY_STATS_MAX (__VNIFILTER_ENTRY_STATS_MAX - 1) 8057c2aad20Sopenharmony_ci 8067c2aad20Sopenharmony_cienum { 8077c2aad20Sopenharmony_ci VXLAN_VNIFILTER_ENTRY_UNSPEC, 8087c2aad20Sopenharmony_ci VXLAN_VNIFILTER_ENTRY_START, 8097c2aad20Sopenharmony_ci VXLAN_VNIFILTER_ENTRY_END, 8107c2aad20Sopenharmony_ci VXLAN_VNIFILTER_ENTRY_GROUP, 8117c2aad20Sopenharmony_ci VXLAN_VNIFILTER_ENTRY_GROUP6, 8127c2aad20Sopenharmony_ci VXLAN_VNIFILTER_ENTRY_STATS, 8137c2aad20Sopenharmony_ci __VXLAN_VNIFILTER_ENTRY_MAX 8147c2aad20Sopenharmony_ci}; 8157c2aad20Sopenharmony_ci#define VXLAN_VNIFILTER_ENTRY_MAX (__VXLAN_VNIFILTER_ENTRY_MAX - 1) 8167c2aad20Sopenharmony_ci 8177c2aad20Sopenharmony_cienum { 8187c2aad20Sopenharmony_ci VXLAN_VNIFILTER_UNSPEC, 8197c2aad20Sopenharmony_ci VXLAN_VNIFILTER_ENTRY, 8207c2aad20Sopenharmony_ci __VXLAN_VNIFILTER_MAX 8217c2aad20Sopenharmony_ci}; 8227c2aad20Sopenharmony_ci#define VXLAN_VNIFILTER_MAX (__VXLAN_VNIFILTER_MAX - 1) 8237c2aad20Sopenharmony_ci 8247c2aad20Sopenharmony_cienum { 8257c2aad20Sopenharmony_ci IFLA_VXLAN_UNSPEC, 8267c2aad20Sopenharmony_ci IFLA_VXLAN_ID, 8277c2aad20Sopenharmony_ci IFLA_VXLAN_GROUP, /* group or remote address */ 8287c2aad20Sopenharmony_ci IFLA_VXLAN_LINK, 8297c2aad20Sopenharmony_ci IFLA_VXLAN_LOCAL, 8307c2aad20Sopenharmony_ci IFLA_VXLAN_TTL, 8317c2aad20Sopenharmony_ci IFLA_VXLAN_TOS, 8327c2aad20Sopenharmony_ci IFLA_VXLAN_LEARNING, 8337c2aad20Sopenharmony_ci IFLA_VXLAN_AGEING, 8347c2aad20Sopenharmony_ci IFLA_VXLAN_LIMIT, 8357c2aad20Sopenharmony_ci IFLA_VXLAN_PORT_RANGE, /* source port */ 8367c2aad20Sopenharmony_ci IFLA_VXLAN_PROXY, 8377c2aad20Sopenharmony_ci IFLA_VXLAN_RSC, 8387c2aad20Sopenharmony_ci IFLA_VXLAN_L2MISS, 8397c2aad20Sopenharmony_ci IFLA_VXLAN_L3MISS, 8407c2aad20Sopenharmony_ci IFLA_VXLAN_PORT, /* destination port */ 8417c2aad20Sopenharmony_ci IFLA_VXLAN_GROUP6, 8427c2aad20Sopenharmony_ci IFLA_VXLAN_LOCAL6, 8437c2aad20Sopenharmony_ci IFLA_VXLAN_UDP_CSUM, 8447c2aad20Sopenharmony_ci IFLA_VXLAN_UDP_ZERO_CSUM6_TX, 8457c2aad20Sopenharmony_ci IFLA_VXLAN_UDP_ZERO_CSUM6_RX, 8467c2aad20Sopenharmony_ci IFLA_VXLAN_REMCSUM_TX, 8477c2aad20Sopenharmony_ci IFLA_VXLAN_REMCSUM_RX, 8487c2aad20Sopenharmony_ci IFLA_VXLAN_GBP, 8497c2aad20Sopenharmony_ci IFLA_VXLAN_REMCSUM_NOPARTIAL, 8507c2aad20Sopenharmony_ci IFLA_VXLAN_COLLECT_METADATA, 8517c2aad20Sopenharmony_ci IFLA_VXLAN_LABEL, 8527c2aad20Sopenharmony_ci IFLA_VXLAN_GPE, 8537c2aad20Sopenharmony_ci IFLA_VXLAN_TTL_INHERIT, 8547c2aad20Sopenharmony_ci IFLA_VXLAN_DF, 8557c2aad20Sopenharmony_ci IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */ 8567c2aad20Sopenharmony_ci IFLA_VXLAN_LOCALBYPASS, 8577c2aad20Sopenharmony_ci __IFLA_VXLAN_MAX 8587c2aad20Sopenharmony_ci}; 8597c2aad20Sopenharmony_ci#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) 8607c2aad20Sopenharmony_ci 8617c2aad20Sopenharmony_cistruct ifla_vxlan_port_range { 8627c2aad20Sopenharmony_ci __be16 low; 8637c2aad20Sopenharmony_ci __be16 high; 8647c2aad20Sopenharmony_ci}; 8657c2aad20Sopenharmony_ci 8667c2aad20Sopenharmony_cienum ifla_vxlan_df { 8677c2aad20Sopenharmony_ci VXLAN_DF_UNSET = 0, 8687c2aad20Sopenharmony_ci VXLAN_DF_SET, 8697c2aad20Sopenharmony_ci VXLAN_DF_INHERIT, 8707c2aad20Sopenharmony_ci __VXLAN_DF_END, 8717c2aad20Sopenharmony_ci VXLAN_DF_MAX = __VXLAN_DF_END - 1, 8727c2aad20Sopenharmony_ci}; 8737c2aad20Sopenharmony_ci 8747c2aad20Sopenharmony_ci/* GENEVE section */ 8757c2aad20Sopenharmony_cienum { 8767c2aad20Sopenharmony_ci IFLA_GENEVE_UNSPEC, 8777c2aad20Sopenharmony_ci IFLA_GENEVE_ID, 8787c2aad20Sopenharmony_ci IFLA_GENEVE_REMOTE, 8797c2aad20Sopenharmony_ci IFLA_GENEVE_TTL, 8807c2aad20Sopenharmony_ci IFLA_GENEVE_TOS, 8817c2aad20Sopenharmony_ci IFLA_GENEVE_PORT, /* destination port */ 8827c2aad20Sopenharmony_ci IFLA_GENEVE_COLLECT_METADATA, 8837c2aad20Sopenharmony_ci IFLA_GENEVE_REMOTE6, 8847c2aad20Sopenharmony_ci IFLA_GENEVE_UDP_CSUM, 8857c2aad20Sopenharmony_ci IFLA_GENEVE_UDP_ZERO_CSUM6_TX, 8867c2aad20Sopenharmony_ci IFLA_GENEVE_UDP_ZERO_CSUM6_RX, 8877c2aad20Sopenharmony_ci IFLA_GENEVE_LABEL, 8887c2aad20Sopenharmony_ci IFLA_GENEVE_TTL_INHERIT, 8897c2aad20Sopenharmony_ci IFLA_GENEVE_DF, 8907c2aad20Sopenharmony_ci IFLA_GENEVE_INNER_PROTO_INHERIT, 8917c2aad20Sopenharmony_ci __IFLA_GENEVE_MAX 8927c2aad20Sopenharmony_ci}; 8937c2aad20Sopenharmony_ci#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) 8947c2aad20Sopenharmony_ci 8957c2aad20Sopenharmony_cienum ifla_geneve_df { 8967c2aad20Sopenharmony_ci GENEVE_DF_UNSET = 0, 8977c2aad20Sopenharmony_ci GENEVE_DF_SET, 8987c2aad20Sopenharmony_ci GENEVE_DF_INHERIT, 8997c2aad20Sopenharmony_ci __GENEVE_DF_END, 9007c2aad20Sopenharmony_ci GENEVE_DF_MAX = __GENEVE_DF_END - 1, 9017c2aad20Sopenharmony_ci}; 9027c2aad20Sopenharmony_ci 9037c2aad20Sopenharmony_ci/* Bareudp section */ 9047c2aad20Sopenharmony_cienum { 9057c2aad20Sopenharmony_ci IFLA_BAREUDP_UNSPEC, 9067c2aad20Sopenharmony_ci IFLA_BAREUDP_PORT, 9077c2aad20Sopenharmony_ci IFLA_BAREUDP_ETHERTYPE, 9087c2aad20Sopenharmony_ci IFLA_BAREUDP_SRCPORT_MIN, 9097c2aad20Sopenharmony_ci IFLA_BAREUDP_MULTIPROTO_MODE, 9107c2aad20Sopenharmony_ci __IFLA_BAREUDP_MAX 9117c2aad20Sopenharmony_ci}; 9127c2aad20Sopenharmony_ci 9137c2aad20Sopenharmony_ci#define IFLA_BAREUDP_MAX (__IFLA_BAREUDP_MAX - 1) 9147c2aad20Sopenharmony_ci 9157c2aad20Sopenharmony_ci/* PPP section */ 9167c2aad20Sopenharmony_cienum { 9177c2aad20Sopenharmony_ci IFLA_PPP_UNSPEC, 9187c2aad20Sopenharmony_ci IFLA_PPP_DEV_FD, 9197c2aad20Sopenharmony_ci __IFLA_PPP_MAX 9207c2aad20Sopenharmony_ci}; 9217c2aad20Sopenharmony_ci#define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1) 9227c2aad20Sopenharmony_ci 9237c2aad20Sopenharmony_ci/* GTP section */ 9247c2aad20Sopenharmony_ci 9257c2aad20Sopenharmony_cienum ifla_gtp_role { 9267c2aad20Sopenharmony_ci GTP_ROLE_GGSN = 0, 9277c2aad20Sopenharmony_ci GTP_ROLE_SGSN, 9287c2aad20Sopenharmony_ci}; 9297c2aad20Sopenharmony_ci 9307c2aad20Sopenharmony_cienum { 9317c2aad20Sopenharmony_ci IFLA_GTP_UNSPEC, 9327c2aad20Sopenharmony_ci IFLA_GTP_FD0, 9337c2aad20Sopenharmony_ci IFLA_GTP_FD1, 9347c2aad20Sopenharmony_ci IFLA_GTP_PDP_HASHSIZE, 9357c2aad20Sopenharmony_ci IFLA_GTP_ROLE, 9367c2aad20Sopenharmony_ci IFLA_GTP_CREATE_SOCKETS, 9377c2aad20Sopenharmony_ci IFLA_GTP_RESTART_COUNT, 9387c2aad20Sopenharmony_ci __IFLA_GTP_MAX, 9397c2aad20Sopenharmony_ci}; 9407c2aad20Sopenharmony_ci#define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1) 9417c2aad20Sopenharmony_ci 9427c2aad20Sopenharmony_ci/* Bonding section */ 9437c2aad20Sopenharmony_ci 9447c2aad20Sopenharmony_cienum { 9457c2aad20Sopenharmony_ci IFLA_BOND_UNSPEC, 9467c2aad20Sopenharmony_ci IFLA_BOND_MODE, 9477c2aad20Sopenharmony_ci IFLA_BOND_ACTIVE_SLAVE, 9487c2aad20Sopenharmony_ci IFLA_BOND_MIIMON, 9497c2aad20Sopenharmony_ci IFLA_BOND_UPDELAY, 9507c2aad20Sopenharmony_ci IFLA_BOND_DOWNDELAY, 9517c2aad20Sopenharmony_ci IFLA_BOND_USE_CARRIER, 9527c2aad20Sopenharmony_ci IFLA_BOND_ARP_INTERVAL, 9537c2aad20Sopenharmony_ci IFLA_BOND_ARP_IP_TARGET, 9547c2aad20Sopenharmony_ci IFLA_BOND_ARP_VALIDATE, 9557c2aad20Sopenharmony_ci IFLA_BOND_ARP_ALL_TARGETS, 9567c2aad20Sopenharmony_ci IFLA_BOND_PRIMARY, 9577c2aad20Sopenharmony_ci IFLA_BOND_PRIMARY_RESELECT, 9587c2aad20Sopenharmony_ci IFLA_BOND_FAIL_OVER_MAC, 9597c2aad20Sopenharmony_ci IFLA_BOND_XMIT_HASH_POLICY, 9607c2aad20Sopenharmony_ci IFLA_BOND_RESEND_IGMP, 9617c2aad20Sopenharmony_ci IFLA_BOND_NUM_PEER_NOTIF, 9627c2aad20Sopenharmony_ci IFLA_BOND_ALL_SLAVES_ACTIVE, 9637c2aad20Sopenharmony_ci IFLA_BOND_MIN_LINKS, 9647c2aad20Sopenharmony_ci IFLA_BOND_LP_INTERVAL, 9657c2aad20Sopenharmony_ci IFLA_BOND_PACKETS_PER_SLAVE, 9667c2aad20Sopenharmony_ci IFLA_BOND_AD_LACP_RATE, 9677c2aad20Sopenharmony_ci IFLA_BOND_AD_SELECT, 9687c2aad20Sopenharmony_ci IFLA_BOND_AD_INFO, 9697c2aad20Sopenharmony_ci IFLA_BOND_AD_ACTOR_SYS_PRIO, 9707c2aad20Sopenharmony_ci IFLA_BOND_AD_USER_PORT_KEY, 9717c2aad20Sopenharmony_ci IFLA_BOND_AD_ACTOR_SYSTEM, 9727c2aad20Sopenharmony_ci IFLA_BOND_TLB_DYNAMIC_LB, 9737c2aad20Sopenharmony_ci IFLA_BOND_PEER_NOTIF_DELAY, 9747c2aad20Sopenharmony_ci IFLA_BOND_AD_LACP_ACTIVE, 9757c2aad20Sopenharmony_ci IFLA_BOND_MISSED_MAX, 9767c2aad20Sopenharmony_ci IFLA_BOND_NS_IP6_TARGET, 9777c2aad20Sopenharmony_ci __IFLA_BOND_MAX, 9787c2aad20Sopenharmony_ci}; 9797c2aad20Sopenharmony_ci 9807c2aad20Sopenharmony_ci#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) 9817c2aad20Sopenharmony_ci 9827c2aad20Sopenharmony_cienum { 9837c2aad20Sopenharmony_ci IFLA_BOND_AD_INFO_UNSPEC, 9847c2aad20Sopenharmony_ci IFLA_BOND_AD_INFO_AGGREGATOR, 9857c2aad20Sopenharmony_ci IFLA_BOND_AD_INFO_NUM_PORTS, 9867c2aad20Sopenharmony_ci IFLA_BOND_AD_INFO_ACTOR_KEY, 9877c2aad20Sopenharmony_ci IFLA_BOND_AD_INFO_PARTNER_KEY, 9887c2aad20Sopenharmony_ci IFLA_BOND_AD_INFO_PARTNER_MAC, 9897c2aad20Sopenharmony_ci __IFLA_BOND_AD_INFO_MAX, 9907c2aad20Sopenharmony_ci}; 9917c2aad20Sopenharmony_ci 9927c2aad20Sopenharmony_ci#define IFLA_BOND_AD_INFO_MAX (__IFLA_BOND_AD_INFO_MAX - 1) 9937c2aad20Sopenharmony_ci 9947c2aad20Sopenharmony_cienum { 9957c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_UNSPEC, 9967c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_STATE, 9977c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_MII_STATUS, 9987c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_LINK_FAILURE_COUNT, 9997c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_PERM_HWADDR, 10007c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_QUEUE_ID, 10017c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_AD_AGGREGATOR_ID, 10027c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE, 10037c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE, 10047c2aad20Sopenharmony_ci IFLA_BOND_SLAVE_PRIO, 10057c2aad20Sopenharmony_ci __IFLA_BOND_SLAVE_MAX, 10067c2aad20Sopenharmony_ci}; 10077c2aad20Sopenharmony_ci 10087c2aad20Sopenharmony_ci#define IFLA_BOND_SLAVE_MAX (__IFLA_BOND_SLAVE_MAX - 1) 10097c2aad20Sopenharmony_ci 10107c2aad20Sopenharmony_ci/* SR-IOV virtual function management section */ 10117c2aad20Sopenharmony_ci 10127c2aad20Sopenharmony_cienum { 10137c2aad20Sopenharmony_ci IFLA_VF_INFO_UNSPEC, 10147c2aad20Sopenharmony_ci IFLA_VF_INFO, 10157c2aad20Sopenharmony_ci __IFLA_VF_INFO_MAX, 10167c2aad20Sopenharmony_ci}; 10177c2aad20Sopenharmony_ci 10187c2aad20Sopenharmony_ci#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1) 10197c2aad20Sopenharmony_ci 10207c2aad20Sopenharmony_cienum { 10217c2aad20Sopenharmony_ci IFLA_VF_UNSPEC, 10227c2aad20Sopenharmony_ci IFLA_VF_MAC, /* Hardware queue specific attributes */ 10237c2aad20Sopenharmony_ci IFLA_VF_VLAN, /* VLAN ID and QoS */ 10247c2aad20Sopenharmony_ci IFLA_VF_TX_RATE, /* Max TX Bandwidth Allocation */ 10257c2aad20Sopenharmony_ci IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */ 10267c2aad20Sopenharmony_ci IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */ 10277c2aad20Sopenharmony_ci IFLA_VF_RATE, /* Min and Max TX Bandwidth Allocation */ 10287c2aad20Sopenharmony_ci IFLA_VF_RSS_QUERY_EN, /* RSS Redirection Table and Hash Key query 10297c2aad20Sopenharmony_ci * on/off switch 10307c2aad20Sopenharmony_ci */ 10317c2aad20Sopenharmony_ci IFLA_VF_STATS, /* network device statistics */ 10327c2aad20Sopenharmony_ci IFLA_VF_TRUST, /* Trust VF */ 10337c2aad20Sopenharmony_ci IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */ 10347c2aad20Sopenharmony_ci IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */ 10357c2aad20Sopenharmony_ci IFLA_VF_VLAN_LIST, /* nested list of vlans, option for QinQ */ 10367c2aad20Sopenharmony_ci IFLA_VF_BROADCAST, /* VF broadcast */ 10377c2aad20Sopenharmony_ci __IFLA_VF_MAX, 10387c2aad20Sopenharmony_ci}; 10397c2aad20Sopenharmony_ci 10407c2aad20Sopenharmony_ci#define IFLA_VF_MAX (__IFLA_VF_MAX - 1) 10417c2aad20Sopenharmony_ci 10427c2aad20Sopenharmony_cistruct ifla_vf_mac { 10437c2aad20Sopenharmony_ci __u32 vf; 10447c2aad20Sopenharmony_ci __u8 mac[32]; /* MAX_ADDR_LEN */ 10457c2aad20Sopenharmony_ci}; 10467c2aad20Sopenharmony_ci 10477c2aad20Sopenharmony_cistruct ifla_vf_broadcast { 10487c2aad20Sopenharmony_ci __u8 broadcast[32]; 10497c2aad20Sopenharmony_ci}; 10507c2aad20Sopenharmony_ci 10517c2aad20Sopenharmony_cistruct ifla_vf_vlan { 10527c2aad20Sopenharmony_ci __u32 vf; 10537c2aad20Sopenharmony_ci __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ 10547c2aad20Sopenharmony_ci __u32 qos; 10557c2aad20Sopenharmony_ci}; 10567c2aad20Sopenharmony_ci 10577c2aad20Sopenharmony_cienum { 10587c2aad20Sopenharmony_ci IFLA_VF_VLAN_INFO_UNSPEC, 10597c2aad20Sopenharmony_ci IFLA_VF_VLAN_INFO, /* VLAN ID, QoS and VLAN protocol */ 10607c2aad20Sopenharmony_ci __IFLA_VF_VLAN_INFO_MAX, 10617c2aad20Sopenharmony_ci}; 10627c2aad20Sopenharmony_ci 10637c2aad20Sopenharmony_ci#define IFLA_VF_VLAN_INFO_MAX (__IFLA_VF_VLAN_INFO_MAX - 1) 10647c2aad20Sopenharmony_ci#define MAX_VLAN_LIST_LEN 1 10657c2aad20Sopenharmony_ci 10667c2aad20Sopenharmony_cistruct ifla_vf_vlan_info { 10677c2aad20Sopenharmony_ci __u32 vf; 10687c2aad20Sopenharmony_ci __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ 10697c2aad20Sopenharmony_ci __u32 qos; 10707c2aad20Sopenharmony_ci __be16 vlan_proto; /* VLAN protocol either 802.1Q or 802.1ad */ 10717c2aad20Sopenharmony_ci}; 10727c2aad20Sopenharmony_ci 10737c2aad20Sopenharmony_cistruct ifla_vf_tx_rate { 10747c2aad20Sopenharmony_ci __u32 vf; 10757c2aad20Sopenharmony_ci __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ 10767c2aad20Sopenharmony_ci}; 10777c2aad20Sopenharmony_ci 10787c2aad20Sopenharmony_cistruct ifla_vf_rate { 10797c2aad20Sopenharmony_ci __u32 vf; 10807c2aad20Sopenharmony_ci __u32 min_tx_rate; /* Min Bandwidth in Mbps */ 10817c2aad20Sopenharmony_ci __u32 max_tx_rate; /* Max Bandwidth in Mbps */ 10827c2aad20Sopenharmony_ci}; 10837c2aad20Sopenharmony_ci 10847c2aad20Sopenharmony_cistruct ifla_vf_spoofchk { 10857c2aad20Sopenharmony_ci __u32 vf; 10867c2aad20Sopenharmony_ci __u32 setting; 10877c2aad20Sopenharmony_ci}; 10887c2aad20Sopenharmony_ci 10897c2aad20Sopenharmony_cistruct ifla_vf_guid { 10907c2aad20Sopenharmony_ci __u32 vf; 10917c2aad20Sopenharmony_ci __u64 guid; 10927c2aad20Sopenharmony_ci}; 10937c2aad20Sopenharmony_ci 10947c2aad20Sopenharmony_cienum { 10957c2aad20Sopenharmony_ci IFLA_VF_LINK_STATE_AUTO, /* link state of the uplink */ 10967c2aad20Sopenharmony_ci IFLA_VF_LINK_STATE_ENABLE, /* link always up */ 10977c2aad20Sopenharmony_ci IFLA_VF_LINK_STATE_DISABLE, /* link always down */ 10987c2aad20Sopenharmony_ci __IFLA_VF_LINK_STATE_MAX, 10997c2aad20Sopenharmony_ci}; 11007c2aad20Sopenharmony_ci 11017c2aad20Sopenharmony_cistruct ifla_vf_link_state { 11027c2aad20Sopenharmony_ci __u32 vf; 11037c2aad20Sopenharmony_ci __u32 link_state; 11047c2aad20Sopenharmony_ci}; 11057c2aad20Sopenharmony_ci 11067c2aad20Sopenharmony_cistruct ifla_vf_rss_query_en { 11077c2aad20Sopenharmony_ci __u32 vf; 11087c2aad20Sopenharmony_ci __u32 setting; 11097c2aad20Sopenharmony_ci}; 11107c2aad20Sopenharmony_ci 11117c2aad20Sopenharmony_cienum { 11127c2aad20Sopenharmony_ci IFLA_VF_STATS_RX_PACKETS, 11137c2aad20Sopenharmony_ci IFLA_VF_STATS_TX_PACKETS, 11147c2aad20Sopenharmony_ci IFLA_VF_STATS_RX_BYTES, 11157c2aad20Sopenharmony_ci IFLA_VF_STATS_TX_BYTES, 11167c2aad20Sopenharmony_ci IFLA_VF_STATS_BROADCAST, 11177c2aad20Sopenharmony_ci IFLA_VF_STATS_MULTICAST, 11187c2aad20Sopenharmony_ci IFLA_VF_STATS_PAD, 11197c2aad20Sopenharmony_ci IFLA_VF_STATS_RX_DROPPED, 11207c2aad20Sopenharmony_ci IFLA_VF_STATS_TX_DROPPED, 11217c2aad20Sopenharmony_ci __IFLA_VF_STATS_MAX, 11227c2aad20Sopenharmony_ci}; 11237c2aad20Sopenharmony_ci 11247c2aad20Sopenharmony_ci#define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1) 11257c2aad20Sopenharmony_ci 11267c2aad20Sopenharmony_cistruct ifla_vf_trust { 11277c2aad20Sopenharmony_ci __u32 vf; 11287c2aad20Sopenharmony_ci __u32 setting; 11297c2aad20Sopenharmony_ci}; 11307c2aad20Sopenharmony_ci 11317c2aad20Sopenharmony_ci/* VF ports management section 11327c2aad20Sopenharmony_ci * 11337c2aad20Sopenharmony_ci * Nested layout of set/get msg is: 11347c2aad20Sopenharmony_ci * 11357c2aad20Sopenharmony_ci * [IFLA_NUM_VF] 11367c2aad20Sopenharmony_ci * [IFLA_VF_PORTS] 11377c2aad20Sopenharmony_ci * [IFLA_VF_PORT] 11387c2aad20Sopenharmony_ci * [IFLA_PORT_*], ... 11397c2aad20Sopenharmony_ci * [IFLA_VF_PORT] 11407c2aad20Sopenharmony_ci * [IFLA_PORT_*], ... 11417c2aad20Sopenharmony_ci * ... 11427c2aad20Sopenharmony_ci * [IFLA_PORT_SELF] 11437c2aad20Sopenharmony_ci * [IFLA_PORT_*], ... 11447c2aad20Sopenharmony_ci */ 11457c2aad20Sopenharmony_ci 11467c2aad20Sopenharmony_cienum { 11477c2aad20Sopenharmony_ci IFLA_VF_PORT_UNSPEC, 11487c2aad20Sopenharmony_ci IFLA_VF_PORT, /* nest */ 11497c2aad20Sopenharmony_ci __IFLA_VF_PORT_MAX, 11507c2aad20Sopenharmony_ci}; 11517c2aad20Sopenharmony_ci 11527c2aad20Sopenharmony_ci#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1) 11537c2aad20Sopenharmony_ci 11547c2aad20Sopenharmony_cienum { 11557c2aad20Sopenharmony_ci IFLA_PORT_UNSPEC, 11567c2aad20Sopenharmony_ci IFLA_PORT_VF, /* __u32 */ 11577c2aad20Sopenharmony_ci IFLA_PORT_PROFILE, /* string */ 11587c2aad20Sopenharmony_ci IFLA_PORT_VSI_TYPE, /* 802.1Qbg (pre-)standard VDP */ 11597c2aad20Sopenharmony_ci IFLA_PORT_INSTANCE_UUID, /* binary UUID */ 11607c2aad20Sopenharmony_ci IFLA_PORT_HOST_UUID, /* binary UUID */ 11617c2aad20Sopenharmony_ci IFLA_PORT_REQUEST, /* __u8 */ 11627c2aad20Sopenharmony_ci IFLA_PORT_RESPONSE, /* __u16, output only */ 11637c2aad20Sopenharmony_ci __IFLA_PORT_MAX, 11647c2aad20Sopenharmony_ci}; 11657c2aad20Sopenharmony_ci 11667c2aad20Sopenharmony_ci#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1) 11677c2aad20Sopenharmony_ci 11687c2aad20Sopenharmony_ci#define PORT_PROFILE_MAX 40 11697c2aad20Sopenharmony_ci#define PORT_UUID_MAX 16 11707c2aad20Sopenharmony_ci#define PORT_SELF_VF -1 11717c2aad20Sopenharmony_ci 11727c2aad20Sopenharmony_cienum { 11737c2aad20Sopenharmony_ci PORT_REQUEST_PREASSOCIATE = 0, 11747c2aad20Sopenharmony_ci PORT_REQUEST_PREASSOCIATE_RR, 11757c2aad20Sopenharmony_ci PORT_REQUEST_ASSOCIATE, 11767c2aad20Sopenharmony_ci PORT_REQUEST_DISASSOCIATE, 11777c2aad20Sopenharmony_ci}; 11787c2aad20Sopenharmony_ci 11797c2aad20Sopenharmony_cienum { 11807c2aad20Sopenharmony_ci PORT_VDP_RESPONSE_SUCCESS = 0, 11817c2aad20Sopenharmony_ci PORT_VDP_RESPONSE_INVALID_FORMAT, 11827c2aad20Sopenharmony_ci PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES, 11837c2aad20Sopenharmony_ci PORT_VDP_RESPONSE_UNUSED_VTID, 11847c2aad20Sopenharmony_ci PORT_VDP_RESPONSE_VTID_VIOLATION, 11857c2aad20Sopenharmony_ci PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION, 11867c2aad20Sopenharmony_ci PORT_VDP_RESPONSE_OUT_OF_SYNC, 11877c2aad20Sopenharmony_ci /* 0x08-0xFF reserved for future VDP use */ 11887c2aad20Sopenharmony_ci PORT_PROFILE_RESPONSE_SUCCESS = 0x100, 11897c2aad20Sopenharmony_ci PORT_PROFILE_RESPONSE_INPROGRESS, 11907c2aad20Sopenharmony_ci PORT_PROFILE_RESPONSE_INVALID, 11917c2aad20Sopenharmony_ci PORT_PROFILE_RESPONSE_BADSTATE, 11927c2aad20Sopenharmony_ci PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES, 11937c2aad20Sopenharmony_ci PORT_PROFILE_RESPONSE_ERROR, 11947c2aad20Sopenharmony_ci}; 11957c2aad20Sopenharmony_ci 11967c2aad20Sopenharmony_cistruct ifla_port_vsi { 11977c2aad20Sopenharmony_ci __u8 vsi_mgr_id; 11987c2aad20Sopenharmony_ci __u8 vsi_type_id[3]; 11997c2aad20Sopenharmony_ci __u8 vsi_type_version; 12007c2aad20Sopenharmony_ci __u8 pad[3]; 12017c2aad20Sopenharmony_ci}; 12027c2aad20Sopenharmony_ci 12037c2aad20Sopenharmony_ci 12047c2aad20Sopenharmony_ci/* IPoIB section */ 12057c2aad20Sopenharmony_ci 12067c2aad20Sopenharmony_cienum { 12077c2aad20Sopenharmony_ci IFLA_IPOIB_UNSPEC, 12087c2aad20Sopenharmony_ci IFLA_IPOIB_PKEY, 12097c2aad20Sopenharmony_ci IFLA_IPOIB_MODE, 12107c2aad20Sopenharmony_ci IFLA_IPOIB_UMCAST, 12117c2aad20Sopenharmony_ci __IFLA_IPOIB_MAX 12127c2aad20Sopenharmony_ci}; 12137c2aad20Sopenharmony_ci 12147c2aad20Sopenharmony_cienum { 12157c2aad20Sopenharmony_ci IPOIB_MODE_DATAGRAM = 0, /* using unreliable datagram QPs */ 12167c2aad20Sopenharmony_ci IPOIB_MODE_CONNECTED = 1, /* using connected QPs */ 12177c2aad20Sopenharmony_ci}; 12187c2aad20Sopenharmony_ci 12197c2aad20Sopenharmony_ci#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1) 12207c2aad20Sopenharmony_ci 12217c2aad20Sopenharmony_ci 12227c2aad20Sopenharmony_ci/* HSR/PRP section, both uses same interface */ 12237c2aad20Sopenharmony_ci 12247c2aad20Sopenharmony_ci/* Different redundancy protocols for hsr device */ 12257c2aad20Sopenharmony_cienum { 12267c2aad20Sopenharmony_ci HSR_PROTOCOL_HSR, 12277c2aad20Sopenharmony_ci HSR_PROTOCOL_PRP, 12287c2aad20Sopenharmony_ci HSR_PROTOCOL_MAX, 12297c2aad20Sopenharmony_ci}; 12307c2aad20Sopenharmony_ci 12317c2aad20Sopenharmony_cienum { 12327c2aad20Sopenharmony_ci IFLA_HSR_UNSPEC, 12337c2aad20Sopenharmony_ci IFLA_HSR_SLAVE1, 12347c2aad20Sopenharmony_ci IFLA_HSR_SLAVE2, 12357c2aad20Sopenharmony_ci IFLA_HSR_MULTICAST_SPEC, /* Last byte of supervision addr */ 12367c2aad20Sopenharmony_ci IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */ 12377c2aad20Sopenharmony_ci IFLA_HSR_SEQ_NR, 12387c2aad20Sopenharmony_ci IFLA_HSR_VERSION, /* HSR version */ 12397c2aad20Sopenharmony_ci IFLA_HSR_PROTOCOL, /* Indicate different protocol than 12407c2aad20Sopenharmony_ci * HSR. For example PRP. 12417c2aad20Sopenharmony_ci */ 12427c2aad20Sopenharmony_ci __IFLA_HSR_MAX, 12437c2aad20Sopenharmony_ci}; 12447c2aad20Sopenharmony_ci 12457c2aad20Sopenharmony_ci#define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1) 12467c2aad20Sopenharmony_ci 12477c2aad20Sopenharmony_ci/* STATS section */ 12487c2aad20Sopenharmony_ci 12497c2aad20Sopenharmony_cistruct if_stats_msg { 12507c2aad20Sopenharmony_ci __u8 family; 12517c2aad20Sopenharmony_ci __u8 pad1; 12527c2aad20Sopenharmony_ci __u16 pad2; 12537c2aad20Sopenharmony_ci __u32 ifindex; 12547c2aad20Sopenharmony_ci __u32 filter_mask; 12557c2aad20Sopenharmony_ci}; 12567c2aad20Sopenharmony_ci 12577c2aad20Sopenharmony_ci/* A stats attribute can be netdev specific or a global stat. 12587c2aad20Sopenharmony_ci * For netdev stats, lets use the prefix IFLA_STATS_LINK_* 12597c2aad20Sopenharmony_ci */ 12607c2aad20Sopenharmony_cienum { 12617c2aad20Sopenharmony_ci IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */ 12627c2aad20Sopenharmony_ci IFLA_STATS_LINK_64, 12637c2aad20Sopenharmony_ci IFLA_STATS_LINK_XSTATS, 12647c2aad20Sopenharmony_ci IFLA_STATS_LINK_XSTATS_SLAVE, 12657c2aad20Sopenharmony_ci IFLA_STATS_LINK_OFFLOAD_XSTATS, 12667c2aad20Sopenharmony_ci IFLA_STATS_AF_SPEC, 12677c2aad20Sopenharmony_ci __IFLA_STATS_MAX, 12687c2aad20Sopenharmony_ci}; 12697c2aad20Sopenharmony_ci 12707c2aad20Sopenharmony_ci#define IFLA_STATS_MAX (__IFLA_STATS_MAX - 1) 12717c2aad20Sopenharmony_ci 12727c2aad20Sopenharmony_ci#define IFLA_STATS_FILTER_BIT(ATTR) (1 << (ATTR - 1)) 12737c2aad20Sopenharmony_ci 12747c2aad20Sopenharmony_cienum { 12757c2aad20Sopenharmony_ci IFLA_STATS_GETSET_UNSPEC, 12767c2aad20Sopenharmony_ci IFLA_STATS_GET_FILTERS, /* Nest of IFLA_STATS_LINK_xxx, each a u32 with 12777c2aad20Sopenharmony_ci * a filter mask for the corresponding group. 12787c2aad20Sopenharmony_ci */ 12797c2aad20Sopenharmony_ci IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS, /* 0 or 1 as u8 */ 12807c2aad20Sopenharmony_ci __IFLA_STATS_GETSET_MAX, 12817c2aad20Sopenharmony_ci}; 12827c2aad20Sopenharmony_ci 12837c2aad20Sopenharmony_ci#define IFLA_STATS_GETSET_MAX (__IFLA_STATS_GETSET_MAX - 1) 12847c2aad20Sopenharmony_ci 12857c2aad20Sopenharmony_ci/* These are embedded into IFLA_STATS_LINK_XSTATS: 12867c2aad20Sopenharmony_ci * [IFLA_STATS_LINK_XSTATS] 12877c2aad20Sopenharmony_ci * -> [LINK_XSTATS_TYPE_xxx] 12887c2aad20Sopenharmony_ci * -> [rtnl link type specific attributes] 12897c2aad20Sopenharmony_ci */ 12907c2aad20Sopenharmony_cienum { 12917c2aad20Sopenharmony_ci LINK_XSTATS_TYPE_UNSPEC, 12927c2aad20Sopenharmony_ci LINK_XSTATS_TYPE_BRIDGE, 12937c2aad20Sopenharmony_ci LINK_XSTATS_TYPE_BOND, 12947c2aad20Sopenharmony_ci __LINK_XSTATS_TYPE_MAX 12957c2aad20Sopenharmony_ci}; 12967c2aad20Sopenharmony_ci#define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1) 12977c2aad20Sopenharmony_ci 12987c2aad20Sopenharmony_ci/* These are stats embedded into IFLA_STATS_LINK_OFFLOAD_XSTATS */ 12997c2aad20Sopenharmony_cienum { 13007c2aad20Sopenharmony_ci IFLA_OFFLOAD_XSTATS_UNSPEC, 13017c2aad20Sopenharmony_ci IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */ 13027c2aad20Sopenharmony_ci IFLA_OFFLOAD_XSTATS_HW_S_INFO, /* HW stats info. A nest */ 13037c2aad20Sopenharmony_ci IFLA_OFFLOAD_XSTATS_L3_STATS, /* struct rtnl_hw_stats64 */ 13047c2aad20Sopenharmony_ci __IFLA_OFFLOAD_XSTATS_MAX 13057c2aad20Sopenharmony_ci}; 13067c2aad20Sopenharmony_ci#define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1) 13077c2aad20Sopenharmony_ci 13087c2aad20Sopenharmony_cienum { 13097c2aad20Sopenharmony_ci IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC, 13107c2aad20Sopenharmony_ci IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST, /* u8 */ 13117c2aad20Sopenharmony_ci IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED, /* u8 */ 13127c2aad20Sopenharmony_ci __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX, 13137c2aad20Sopenharmony_ci}; 13147c2aad20Sopenharmony_ci#define IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX \ 13157c2aad20Sopenharmony_ci (__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX - 1) 13167c2aad20Sopenharmony_ci 13177c2aad20Sopenharmony_ci/* XDP section */ 13187c2aad20Sopenharmony_ci 13197c2aad20Sopenharmony_ci#define XDP_FLAGS_UPDATE_IF_NOEXIST (1U << 0) 13207c2aad20Sopenharmony_ci#define XDP_FLAGS_SKB_MODE (1U << 1) 13217c2aad20Sopenharmony_ci#define XDP_FLAGS_DRV_MODE (1U << 2) 13227c2aad20Sopenharmony_ci#define XDP_FLAGS_HW_MODE (1U << 3) 13237c2aad20Sopenharmony_ci#define XDP_FLAGS_REPLACE (1U << 4) 13247c2aad20Sopenharmony_ci#define XDP_FLAGS_MODES (XDP_FLAGS_SKB_MODE | \ 13257c2aad20Sopenharmony_ci XDP_FLAGS_DRV_MODE | \ 13267c2aad20Sopenharmony_ci XDP_FLAGS_HW_MODE) 13277c2aad20Sopenharmony_ci#define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST | \ 13287c2aad20Sopenharmony_ci XDP_FLAGS_MODES | XDP_FLAGS_REPLACE) 13297c2aad20Sopenharmony_ci 13307c2aad20Sopenharmony_ci/* These are stored into IFLA_XDP_ATTACHED on dump. */ 13317c2aad20Sopenharmony_cienum { 13327c2aad20Sopenharmony_ci XDP_ATTACHED_NONE = 0, 13337c2aad20Sopenharmony_ci XDP_ATTACHED_DRV, 13347c2aad20Sopenharmony_ci XDP_ATTACHED_SKB, 13357c2aad20Sopenharmony_ci XDP_ATTACHED_HW, 13367c2aad20Sopenharmony_ci XDP_ATTACHED_MULTI, 13377c2aad20Sopenharmony_ci}; 13387c2aad20Sopenharmony_ci 13397c2aad20Sopenharmony_cienum { 13407c2aad20Sopenharmony_ci IFLA_XDP_UNSPEC, 13417c2aad20Sopenharmony_ci IFLA_XDP_FD, 13427c2aad20Sopenharmony_ci IFLA_XDP_ATTACHED, 13437c2aad20Sopenharmony_ci IFLA_XDP_FLAGS, 13447c2aad20Sopenharmony_ci IFLA_XDP_PROG_ID, 13457c2aad20Sopenharmony_ci IFLA_XDP_DRV_PROG_ID, 13467c2aad20Sopenharmony_ci IFLA_XDP_SKB_PROG_ID, 13477c2aad20Sopenharmony_ci IFLA_XDP_HW_PROG_ID, 13487c2aad20Sopenharmony_ci IFLA_XDP_EXPECTED_FD, 13497c2aad20Sopenharmony_ci __IFLA_XDP_MAX, 13507c2aad20Sopenharmony_ci}; 13517c2aad20Sopenharmony_ci 13527c2aad20Sopenharmony_ci#define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1) 13537c2aad20Sopenharmony_ci 13547c2aad20Sopenharmony_cienum { 13557c2aad20Sopenharmony_ci IFLA_EVENT_NONE, 13567c2aad20Sopenharmony_ci IFLA_EVENT_REBOOT, /* internal reset / reboot */ 13577c2aad20Sopenharmony_ci IFLA_EVENT_FEATURES, /* change in offload features */ 13587c2aad20Sopenharmony_ci IFLA_EVENT_BONDING_FAILOVER, /* change in active slave */ 13597c2aad20Sopenharmony_ci IFLA_EVENT_NOTIFY_PEERS, /* re-sent grat. arp/ndisc */ 13607c2aad20Sopenharmony_ci IFLA_EVENT_IGMP_RESEND, /* re-sent IGMP JOIN */ 13617c2aad20Sopenharmony_ci IFLA_EVENT_BONDING_OPTIONS, /* change in bonding options */ 13627c2aad20Sopenharmony_ci}; 13637c2aad20Sopenharmony_ci 13647c2aad20Sopenharmony_ci/* tun section */ 13657c2aad20Sopenharmony_ci 13667c2aad20Sopenharmony_cienum { 13677c2aad20Sopenharmony_ci IFLA_TUN_UNSPEC, 13687c2aad20Sopenharmony_ci IFLA_TUN_OWNER, 13697c2aad20Sopenharmony_ci IFLA_TUN_GROUP, 13707c2aad20Sopenharmony_ci IFLA_TUN_TYPE, 13717c2aad20Sopenharmony_ci IFLA_TUN_PI, 13727c2aad20Sopenharmony_ci IFLA_TUN_VNET_HDR, 13737c2aad20Sopenharmony_ci IFLA_TUN_PERSIST, 13747c2aad20Sopenharmony_ci IFLA_TUN_MULTI_QUEUE, 13757c2aad20Sopenharmony_ci IFLA_TUN_NUM_QUEUES, 13767c2aad20Sopenharmony_ci IFLA_TUN_NUM_DISABLED_QUEUES, 13777c2aad20Sopenharmony_ci __IFLA_TUN_MAX, 13787c2aad20Sopenharmony_ci}; 13797c2aad20Sopenharmony_ci 13807c2aad20Sopenharmony_ci#define IFLA_TUN_MAX (__IFLA_TUN_MAX - 1) 13817c2aad20Sopenharmony_ci 13827c2aad20Sopenharmony_ci/* rmnet section */ 13837c2aad20Sopenharmony_ci 13847c2aad20Sopenharmony_ci#define RMNET_FLAGS_INGRESS_DEAGGREGATION (1U << 0) 13857c2aad20Sopenharmony_ci#define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1) 13867c2aad20Sopenharmony_ci#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2) 13877c2aad20Sopenharmony_ci#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3) 13887c2aad20Sopenharmony_ci#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4) 13897c2aad20Sopenharmony_ci#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5) 13907c2aad20Sopenharmony_ci 13917c2aad20Sopenharmony_cienum { 13927c2aad20Sopenharmony_ci IFLA_RMNET_UNSPEC, 13937c2aad20Sopenharmony_ci IFLA_RMNET_MUX_ID, 13947c2aad20Sopenharmony_ci IFLA_RMNET_FLAGS, 13957c2aad20Sopenharmony_ci __IFLA_RMNET_MAX, 13967c2aad20Sopenharmony_ci}; 13977c2aad20Sopenharmony_ci 13987c2aad20Sopenharmony_ci#define IFLA_RMNET_MAX (__IFLA_RMNET_MAX - 1) 13997c2aad20Sopenharmony_ci 14007c2aad20Sopenharmony_cistruct ifla_rmnet_flags { 14017c2aad20Sopenharmony_ci __u32 flags; 14027c2aad20Sopenharmony_ci __u32 mask; 14037c2aad20Sopenharmony_ci}; 14047c2aad20Sopenharmony_ci 14057c2aad20Sopenharmony_ci/* MCTP section */ 14067c2aad20Sopenharmony_ci 14077c2aad20Sopenharmony_cienum { 14087c2aad20Sopenharmony_ci IFLA_MCTP_UNSPEC, 14097c2aad20Sopenharmony_ci IFLA_MCTP_NET, 14107c2aad20Sopenharmony_ci __IFLA_MCTP_MAX, 14117c2aad20Sopenharmony_ci}; 14127c2aad20Sopenharmony_ci 14137c2aad20Sopenharmony_ci#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1) 14147c2aad20Sopenharmony_ci 14157c2aad20Sopenharmony_ci/* DSA section */ 14167c2aad20Sopenharmony_ci 14177c2aad20Sopenharmony_cienum { 14187c2aad20Sopenharmony_ci IFLA_DSA_UNSPEC, 14197c2aad20Sopenharmony_ci IFLA_DSA_MASTER, 14207c2aad20Sopenharmony_ci __IFLA_DSA_MAX, 14217c2aad20Sopenharmony_ci}; 14227c2aad20Sopenharmony_ci 14237c2aad20Sopenharmony_ci#define IFLA_DSA_MAX (__IFLA_DSA_MAX - 1) 14247c2aad20Sopenharmony_ci 14257c2aad20Sopenharmony_ci#endif /* _UAPI_LINUX_IF_LINK_H */ 1426