| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | 
|---|
| 2 | #ifndef _UAPI_LINUX_IF_LINK_H | 
|---|
| 3 | #define _UAPI_LINUX_IF_LINK_H | 
|---|
| 4 |  | 
|---|
| 5 | #include <linux/types.h> | 
|---|
| 6 | #include <linux/netlink.h> | 
|---|
| 7 |  | 
|---|
| 8 | /* This struct should be in sync with struct rtnl_link_stats64 */ | 
|---|
| 9 | struct rtnl_link_stats { | 
|---|
| 10 | __u32	rx_packets; | 
|---|
| 11 | __u32	tx_packets; | 
|---|
| 12 | __u32	rx_bytes; | 
|---|
| 13 | __u32	tx_bytes; | 
|---|
| 14 | __u32	rx_errors; | 
|---|
| 15 | __u32	tx_errors; | 
|---|
| 16 | __u32	rx_dropped; | 
|---|
| 17 | __u32	tx_dropped; | 
|---|
| 18 | __u32	multicast; | 
|---|
| 19 | __u32	collisions; | 
|---|
| 20 | /* detailed rx_errors: */ | 
|---|
| 21 | __u32	rx_length_errors; | 
|---|
| 22 | __u32	rx_over_errors; | 
|---|
| 23 | __u32	rx_crc_errors; | 
|---|
| 24 | __u32	rx_frame_errors; | 
|---|
| 25 | __u32	rx_fifo_errors; | 
|---|
| 26 | __u32	rx_missed_errors; | 
|---|
| 27 |  | 
|---|
| 28 | /* detailed tx_errors */ | 
|---|
| 29 | __u32	tx_aborted_errors; | 
|---|
| 30 | __u32	tx_carrier_errors; | 
|---|
| 31 | __u32	tx_fifo_errors; | 
|---|
| 32 | __u32	tx_heartbeat_errors; | 
|---|
| 33 | __u32	tx_window_errors; | 
|---|
| 34 |  | 
|---|
| 35 | /* for cslip etc */ | 
|---|
| 36 | __u32	rx_compressed; | 
|---|
| 37 | __u32	tx_compressed; | 
|---|
| 38 |  | 
|---|
| 39 | __u32	rx_nohandler; | 
|---|
| 40 | }; | 
|---|
| 41 |  | 
|---|
| 42 | /** | 
|---|
| 43 | * struct rtnl_link_stats64 - The main device statistics structure. | 
|---|
| 44 | * | 
|---|
| 45 | * @rx_packets: Number of good packets received by the interface. | 
|---|
| 46 | *   For hardware interfaces counts all good packets received from the device | 
|---|
| 47 | *   by the host, including packets which host had to drop at various stages | 
|---|
| 48 | *   of processing (even in the driver). | 
|---|
| 49 | * | 
|---|
| 50 | * @tx_packets: Number of packets successfully transmitted. | 
|---|
| 51 | *   For hardware interfaces counts packets which host was able to successfully | 
|---|
| 52 | *   hand over to the device, which does not necessarily mean that packets | 
|---|
| 53 | *   had been successfully transmitted out of the device, only that device | 
|---|
| 54 | *   acknowledged it copied them out of host memory. | 
|---|
| 55 | * | 
|---|
| 56 | * @rx_bytes: Number of good received bytes, corresponding to @rx_packets. | 
|---|
| 57 | * | 
|---|
| 58 | *   For IEEE 802.3 devices should count the length of Ethernet Frames | 
|---|
| 59 | *   excluding the FCS. | 
|---|
| 60 | * | 
|---|
| 61 | * @tx_bytes: Number of good transmitted bytes, corresponding to @tx_packets. | 
|---|
| 62 | * | 
|---|
| 63 | *   For IEEE 802.3 devices should count the length of Ethernet Frames | 
|---|
| 64 | *   excluding the FCS. | 
|---|
| 65 | * | 
|---|
| 66 | * @rx_errors: Total number of bad packets received on this network device. | 
|---|
| 67 | *   This counter must include events counted by @rx_length_errors, | 
|---|
| 68 | *   @rx_crc_errors, @rx_frame_errors and other errors not otherwise | 
|---|
| 69 | *   counted. | 
|---|
| 70 | * | 
|---|
| 71 | * @tx_errors: Total number of transmit problems. | 
|---|
| 72 | *   This counter must include events counter by @tx_aborted_errors, | 
|---|
| 73 | *   @tx_carrier_errors, @tx_fifo_errors, @tx_heartbeat_errors, | 
|---|
| 74 | *   @tx_window_errors and other errors not otherwise counted. | 
|---|
| 75 | * | 
|---|
| 76 | * @rx_dropped: Number of packets received but not processed, | 
|---|
| 77 | *   e.g. due to lack of resources or unsupported protocol. | 
|---|
| 78 | *   For hardware interfaces this counter may include packets discarded | 
|---|
| 79 | *   due to L2 address filtering but should not include packets dropped | 
|---|
| 80 | *   by the device due to buffer exhaustion which are counted separately in | 
|---|
| 81 | *   @rx_missed_errors (since procfs folds those two counters together). | 
|---|
| 82 | * | 
|---|
| 83 | * @tx_dropped: Number of packets dropped on their way to transmission, | 
|---|
| 84 | *   e.g. due to lack of resources. | 
|---|
| 85 | * | 
|---|
| 86 | * @multicast: Multicast packets received. | 
|---|
| 87 | *   For hardware interfaces this statistic is commonly calculated | 
|---|
| 88 | *   at the device level (unlike @rx_packets) and therefore may include | 
|---|
| 89 | *   packets which did not reach the host. | 
|---|
| 90 | * | 
|---|
| 91 | *   For IEEE 802.3 devices this counter may be equivalent to: | 
|---|
| 92 | * | 
|---|
| 93 | *    - 30.3.1.1.21 aMulticastFramesReceivedOK | 
|---|
| 94 | * | 
|---|
| 95 | * @collisions: Number of collisions during packet transmissions. | 
|---|
| 96 | * | 
|---|
| 97 | * @rx_length_errors: Number of packets dropped due to invalid length. | 
|---|
| 98 | *   Part of aggregate "frame" errors in `/proc/net/dev`. | 
|---|
| 99 | * | 
|---|
| 100 | *   For IEEE 802.3 devices this counter should be equivalent to a sum | 
|---|
| 101 | *   of the following attributes: | 
|---|
| 102 | * | 
|---|
| 103 | *    - 30.3.1.1.23 aInRangeLengthErrors | 
|---|
| 104 | *    - 30.3.1.1.24 aOutOfRangeLengthField | 
|---|
| 105 | *    - 30.3.1.1.25 aFrameTooLongErrors | 
|---|
| 106 | * | 
|---|
| 107 | * @rx_over_errors: Receiver FIFO overflow event counter. | 
|---|
| 108 | * | 
|---|
| 109 | *   Historically the count of overflow events. Such events may be | 
|---|
| 110 | *   reported in the receive descriptors or via interrupts, and may | 
|---|
| 111 | *   not correspond one-to-one with dropped packets. | 
|---|
| 112 | * | 
|---|
| 113 | *   The recommended interpretation for high speed interfaces is - | 
|---|
| 114 | *   number of packets dropped because they did not fit into buffers | 
|---|
| 115 | *   provided by the host, e.g. packets larger than MTU or next buffer | 
|---|
| 116 | *   in the ring was not available for a scatter transfer. | 
|---|
| 117 | * | 
|---|
| 118 | *   Part of aggregate "frame" errors in `/proc/net/dev`. | 
|---|
| 119 | * | 
|---|
| 120 | *   This statistics was historically used interchangeably with | 
|---|
| 121 | *   @rx_fifo_errors. | 
|---|
| 122 | * | 
|---|
| 123 | *   This statistic corresponds to hardware events and is not commonly used | 
|---|
| 124 | *   on software devices. | 
|---|
| 125 | * | 
|---|
| 126 | * @rx_crc_errors: Number of packets received with a CRC error. | 
|---|
| 127 | *   Part of aggregate "frame" errors in `/proc/net/dev`. | 
|---|
| 128 | * | 
|---|
| 129 | *   For IEEE 802.3 devices this counter must be equivalent to: | 
|---|
| 130 | * | 
|---|
| 131 | *    - 30.3.1.1.6 aFrameCheckSequenceErrors | 
|---|
| 132 | * | 
|---|
| 133 | * @rx_frame_errors: Receiver frame alignment errors. | 
|---|
| 134 | *   Part of aggregate "frame" errors in `/proc/net/dev`. | 
|---|
| 135 | * | 
|---|
| 136 | *   For IEEE 802.3 devices this counter should be equivalent to: | 
|---|
| 137 | * | 
|---|
| 138 | *    - 30.3.1.1.7 aAlignmentErrors | 
|---|
| 139 | * | 
|---|
| 140 | * @rx_fifo_errors: Receiver FIFO error counter. | 
|---|
| 141 | * | 
|---|
| 142 | *   Historically the count of overflow events. Those events may be | 
|---|
| 143 | *   reported in the receive descriptors or via interrupts, and may | 
|---|
| 144 | *   not correspond one-to-one with dropped packets. | 
|---|
| 145 | * | 
|---|
| 146 | *   This statistics was used interchangeably with @rx_over_errors. | 
|---|
| 147 | *   Not recommended for use in drivers for high speed interfaces. | 
|---|
| 148 | * | 
|---|
| 149 | *   This statistic is used on software devices, e.g. to count software | 
|---|
| 150 | *   packet queue overflow (can) or sequencing errors (GRE). | 
|---|
| 151 | * | 
|---|
| 152 | * @rx_missed_errors: Count of packets missed by the host. | 
|---|
| 153 | *   Folded into the "drop" counter in `/proc/net/dev`. | 
|---|
| 154 | * | 
|---|
| 155 | *   Counts number of packets dropped by the device due to lack | 
|---|
| 156 | *   of buffer space. This usually indicates that the host interface | 
|---|
| 157 | *   is slower than the network interface, or host is not keeping up | 
|---|
| 158 | *   with the receive packet rate. | 
|---|
| 159 | * | 
|---|
| 160 | *   This statistic corresponds to hardware events and is not used | 
|---|
| 161 | *   on software devices. | 
|---|
| 162 | * | 
|---|
| 163 | * @tx_aborted_errors: | 
|---|
| 164 | *   Part of aggregate "carrier" errors in `/proc/net/dev`. | 
|---|
| 165 | *   For IEEE 802.3 devices capable of half-duplex operation this counter | 
|---|
| 166 | *   must be equivalent to: | 
|---|
| 167 | * | 
|---|
| 168 | *    - 30.3.1.1.11 aFramesAbortedDueToXSColls | 
|---|
| 169 | * | 
|---|
| 170 | *   High speed interfaces may use this counter as a general device | 
|---|
| 171 | *   discard counter. | 
|---|
| 172 | * | 
|---|
| 173 | * @tx_carrier_errors: Number of frame transmission errors due to loss | 
|---|
| 174 | *   of carrier during transmission. | 
|---|
| 175 | *   Part of aggregate "carrier" errors in `/proc/net/dev`. | 
|---|
| 176 | * | 
|---|
| 177 | *   For IEEE 802.3 devices this counter must be equivalent to: | 
|---|
| 178 | * | 
|---|
| 179 | *    - 30.3.1.1.13 aCarrierSenseErrors | 
|---|
| 180 | * | 
|---|
| 181 | * @tx_fifo_errors: Number of frame transmission errors due to device | 
|---|
| 182 | *   FIFO underrun / underflow. This condition occurs when the device | 
|---|
| 183 | *   begins transmission of a frame but is unable to deliver the | 
|---|
| 184 | *   entire frame to the transmitter in time for transmission. | 
|---|
| 185 | *   Part of aggregate "carrier" errors in `/proc/net/dev`. | 
|---|
| 186 | * | 
|---|
| 187 | * @tx_heartbeat_errors: Number of Heartbeat / SQE Test errors for | 
|---|
| 188 | *   old half-duplex Ethernet. | 
|---|
| 189 | *   Part of aggregate "carrier" errors in `/proc/net/dev`. | 
|---|
| 190 | * | 
|---|
| 191 | *   For IEEE 802.3 devices possibly equivalent to: | 
|---|
| 192 | * | 
|---|
| 193 | *    - 30.3.2.1.4 aSQETestErrors | 
|---|
| 194 | * | 
|---|
| 195 | * @tx_window_errors: Number of frame transmission errors due | 
|---|
| 196 | *   to late collisions (for Ethernet - after the first 64B of transmission). | 
|---|
| 197 | *   Part of aggregate "carrier" errors in `/proc/net/dev`. | 
|---|
| 198 | * | 
|---|
| 199 | *   For IEEE 802.3 devices this counter must be equivalent to: | 
|---|
| 200 | * | 
|---|
| 201 | *    - 30.3.1.1.10 aLateCollisions | 
|---|
| 202 | * | 
|---|
| 203 | * @rx_compressed: Number of correctly received compressed packets. | 
|---|
| 204 | *   This counters is only meaningful for interfaces which support | 
|---|
| 205 | *   packet compression (e.g. CSLIP, PPP). | 
|---|
| 206 | * | 
|---|
| 207 | * @tx_compressed: Number of transmitted compressed packets. | 
|---|
| 208 | *   This counters is only meaningful for interfaces which support | 
|---|
| 209 | *   packet compression (e.g. CSLIP, PPP). | 
|---|
| 210 | * | 
|---|
| 211 | * @rx_nohandler: Number of packets received on the interface | 
|---|
| 212 | *   but dropped by the networking stack because the device is | 
|---|
| 213 | *   not designated to receive packets (e.g. backup link in a bond). | 
|---|
| 214 | * | 
|---|
| 215 | * @rx_otherhost_dropped: Number of packets dropped due to mismatch | 
|---|
| 216 | *   in destination MAC address. | 
|---|
| 217 | */ | 
|---|
| 218 | struct rtnl_link_stats64 { | 
|---|
| 219 | __u64	rx_packets; | 
|---|
| 220 | __u64	tx_packets; | 
|---|
| 221 | __u64	rx_bytes; | 
|---|
| 222 | __u64	tx_bytes; | 
|---|
| 223 | __u64	rx_errors; | 
|---|
| 224 | __u64	tx_errors; | 
|---|
| 225 | __u64	rx_dropped; | 
|---|
| 226 | __u64	tx_dropped; | 
|---|
| 227 | __u64	multicast; | 
|---|
| 228 | __u64	collisions; | 
|---|
| 229 |  | 
|---|
| 230 | /* detailed rx_errors: */ | 
|---|
| 231 | __u64	rx_length_errors; | 
|---|
| 232 | __u64	rx_over_errors; | 
|---|
| 233 | __u64	rx_crc_errors; | 
|---|
| 234 | __u64	rx_frame_errors; | 
|---|
| 235 | __u64	rx_fifo_errors; | 
|---|
| 236 | __u64	rx_missed_errors; | 
|---|
| 237 |  | 
|---|
| 238 | /* detailed tx_errors */ | 
|---|
| 239 | __u64	tx_aborted_errors; | 
|---|
| 240 | __u64	tx_carrier_errors; | 
|---|
| 241 | __u64	tx_fifo_errors; | 
|---|
| 242 | __u64	tx_heartbeat_errors; | 
|---|
| 243 | __u64	tx_window_errors; | 
|---|
| 244 |  | 
|---|
| 245 | /* for cslip etc */ | 
|---|
| 246 | __u64	rx_compressed; | 
|---|
| 247 | __u64	tx_compressed; | 
|---|
| 248 | __u64	rx_nohandler; | 
|---|
| 249 |  | 
|---|
| 250 | __u64	rx_otherhost_dropped; | 
|---|
| 251 | }; | 
|---|
| 252 |  | 
|---|
| 253 | /* Subset of link stats useful for in-HW collection. Meaning of the fields is as | 
|---|
| 254 | * for struct rtnl_link_stats64. | 
|---|
| 255 | */ | 
|---|
| 256 | struct rtnl_hw_stats64 { | 
|---|
| 257 | __u64	rx_packets; | 
|---|
| 258 | __u64	tx_packets; | 
|---|
| 259 | __u64	rx_bytes; | 
|---|
| 260 | __u64	tx_bytes; | 
|---|
| 261 | __u64	rx_errors; | 
|---|
| 262 | __u64	tx_errors; | 
|---|
| 263 | __u64	rx_dropped; | 
|---|
| 264 | __u64	tx_dropped; | 
|---|
| 265 | __u64	multicast; | 
|---|
| 266 | }; | 
|---|
| 267 |  | 
|---|
| 268 | /* The struct should be in sync with struct ifmap */ | 
|---|
| 269 | struct rtnl_link_ifmap { | 
|---|
| 270 | __u64	mem_start; | 
|---|
| 271 | __u64	mem_end; | 
|---|
| 272 | __u64	base_addr; | 
|---|
| 273 | __u16	irq; | 
|---|
| 274 | __u8	dma; | 
|---|
| 275 | __u8	port; | 
|---|
| 276 | }; | 
|---|
| 277 |  | 
|---|
| 278 | /* | 
|---|
| 279 | * IFLA_AF_SPEC | 
|---|
| 280 | *   Contains nested attributes for address family specific attributes. | 
|---|
| 281 | *   Each address family may create a attribute with the address family | 
|---|
| 282 | *   number as type and create its own attribute structure in it. | 
|---|
| 283 | * | 
|---|
| 284 | *   Example: | 
|---|
| 285 | *   [IFLA_AF_SPEC] = { | 
|---|
| 286 | *       [AF_INET] = { | 
|---|
| 287 | *           [IFLA_INET_CONF] = ..., | 
|---|
| 288 | *       }, | 
|---|
| 289 | *       [AF_INET6] = { | 
|---|
| 290 | *           [IFLA_INET6_FLAGS] = ..., | 
|---|
| 291 | *           [IFLA_INET6_CONF] = ..., | 
|---|
| 292 | *       } | 
|---|
| 293 | *   } | 
|---|
| 294 | */ | 
|---|
| 295 |  | 
|---|
| 296 | enum { | 
|---|
| 297 | IFLA_UNSPEC, | 
|---|
| 298 | IFLA_ADDRESS, | 
|---|
| 299 | IFLA_BROADCAST, | 
|---|
| 300 | IFLA_IFNAME, | 
|---|
| 301 | IFLA_MTU, | 
|---|
| 302 | IFLA_LINK, | 
|---|
| 303 | IFLA_QDISC, | 
|---|
| 304 | IFLA_STATS, | 
|---|
| 305 | IFLA_COST, | 
|---|
| 306 | #define IFLA_COST IFLA_COST | 
|---|
| 307 | IFLA_PRIORITY, | 
|---|
| 308 | #define IFLA_PRIORITY IFLA_PRIORITY | 
|---|
| 309 | IFLA_MASTER, | 
|---|
| 310 | #define IFLA_MASTER IFLA_MASTER | 
|---|
| 311 | IFLA_WIRELESS,		/* Wireless Extension event - see wireless.h */ | 
|---|
| 312 | #define IFLA_WIRELESS IFLA_WIRELESS | 
|---|
| 313 | IFLA_PROTINFO,		/* Protocol specific information for a link */ | 
|---|
| 314 | #define IFLA_PROTINFO IFLA_PROTINFO | 
|---|
| 315 | IFLA_TXQLEN, | 
|---|
| 316 | #define IFLA_TXQLEN IFLA_TXQLEN | 
|---|
| 317 | IFLA_MAP, | 
|---|
| 318 | #define IFLA_MAP IFLA_MAP | 
|---|
| 319 | IFLA_WEIGHT, | 
|---|
| 320 | #define IFLA_WEIGHT IFLA_WEIGHT | 
|---|
| 321 | IFLA_OPERSTATE, | 
|---|
| 322 | IFLA_LINKMODE, | 
|---|
| 323 | IFLA_LINKINFO, | 
|---|
| 324 | #define IFLA_LINKINFO IFLA_LINKINFO | 
|---|
| 325 | IFLA_NET_NS_PID, | 
|---|
| 326 | IFLA_IFALIAS, | 
|---|
| 327 | IFLA_NUM_VF,		/* Number of VFs if device is SR-IOV PF */ | 
|---|
| 328 | IFLA_VFINFO_LIST, | 
|---|
| 329 | IFLA_STATS64, | 
|---|
| 330 | IFLA_VF_PORTS, | 
|---|
| 331 | IFLA_PORT_SELF, | 
|---|
| 332 | IFLA_AF_SPEC, | 
|---|
| 333 | IFLA_GROUP,		/* Group the device belongs to */ | 
|---|
| 334 | IFLA_NET_NS_FD, | 
|---|
| 335 | IFLA_EXT_MASK,		/* Extended info mask, VFs, etc */ | 
|---|
| 336 | IFLA_PROMISCUITY,	/* Promiscuity count: > 0 means acts PROMISC */ | 
|---|
| 337 | #define IFLA_PROMISCUITY IFLA_PROMISCUITY | 
|---|
| 338 | IFLA_NUM_TX_QUEUES, | 
|---|
| 339 | IFLA_NUM_RX_QUEUES, | 
|---|
| 340 | IFLA_CARRIER, | 
|---|
| 341 | IFLA_PHYS_PORT_ID, | 
|---|
| 342 | IFLA_CARRIER_CHANGES, | 
|---|
| 343 | IFLA_PHYS_SWITCH_ID, | 
|---|
| 344 | IFLA_LINK_NETNSID, | 
|---|
| 345 | IFLA_PHYS_PORT_NAME, | 
|---|
| 346 | IFLA_PROTO_DOWN, | 
|---|
| 347 | IFLA_GSO_MAX_SEGS, | 
|---|
| 348 | IFLA_GSO_MAX_SIZE, | 
|---|
| 349 | IFLA_PAD, | 
|---|
| 350 | IFLA_XDP, | 
|---|
| 351 | IFLA_EVENT, | 
|---|
| 352 | IFLA_NEW_NETNSID, | 
|---|
| 353 | IFLA_IF_NETNSID, | 
|---|
| 354 | IFLA_TARGET_NETNSID = IFLA_IF_NETNSID, /* new alias */ | 
|---|
| 355 | IFLA_CARRIER_UP_COUNT, | 
|---|
| 356 | IFLA_CARRIER_DOWN_COUNT, | 
|---|
| 357 | IFLA_NEW_IFINDEX, | 
|---|
| 358 | IFLA_MIN_MTU, | 
|---|
| 359 | IFLA_MAX_MTU, | 
|---|
| 360 | IFLA_PROP_LIST, | 
|---|
| 361 | IFLA_ALT_IFNAME, /* Alternative ifname */ | 
|---|
| 362 | IFLA_PERM_ADDRESS, | 
|---|
| 363 | IFLA_PROTO_DOWN_REASON, | 
|---|
| 364 |  | 
|---|
| 365 | /* device (sysfs) name as parent, used instead | 
|---|
| 366 | * of IFLA_LINK where there's no parent netdev | 
|---|
| 367 | */ | 
|---|
| 368 | IFLA_PARENT_DEV_NAME, | 
|---|
| 369 | IFLA_PARENT_DEV_BUS_NAME, | 
|---|
| 370 | IFLA_GRO_MAX_SIZE, | 
|---|
| 371 | IFLA_TSO_MAX_SIZE, | 
|---|
| 372 | IFLA_TSO_MAX_SEGS, | 
|---|
| 373 | IFLA_ALLMULTI,		/* Allmulti count: > 0 means acts ALLMULTI */ | 
|---|
| 374 |  | 
|---|
| 375 | IFLA_DEVLINK_PORT, | 
|---|
| 376 |  | 
|---|
| 377 | IFLA_GSO_IPV4_MAX_SIZE, | 
|---|
| 378 | IFLA_GRO_IPV4_MAX_SIZE, | 
|---|
| 379 | IFLA_DPLL_PIN, | 
|---|
| 380 | IFLA_MAX_PACING_OFFLOAD_HORIZON, | 
|---|
| 381 | IFLA_NETNS_IMMUTABLE, | 
|---|
| 382 | IFLA_HEADROOM, | 
|---|
| 383 | IFLA_TAILROOM, | 
|---|
| 384 | __IFLA_MAX | 
|---|
| 385 | }; | 
|---|
| 386 |  | 
|---|
| 387 |  | 
|---|
| 388 | #define IFLA_MAX (__IFLA_MAX - 1) | 
|---|
| 389 |  | 
|---|
| 390 | enum { | 
|---|
| 391 | IFLA_PROTO_DOWN_REASON_UNSPEC, | 
|---|
| 392 | IFLA_PROTO_DOWN_REASON_MASK,	/* u32, mask for reason bits */ | 
|---|
| 393 | IFLA_PROTO_DOWN_REASON_VALUE,   /* u32, reason bit value */ | 
|---|
| 394 |  | 
|---|
| 395 | __IFLA_PROTO_DOWN_REASON_CNT, | 
|---|
| 396 | IFLA_PROTO_DOWN_REASON_MAX = __IFLA_PROTO_DOWN_REASON_CNT - 1 | 
|---|
| 397 | }; | 
|---|
| 398 |  | 
|---|
| 399 | /* backwards compatibility for userspace */ | 
|---|
| 400 | #ifndef __KERNEL__ | 
|---|
| 401 | #define IFLA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) | 
|---|
| 402 | #define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg)) | 
|---|
| 403 | #endif | 
|---|
| 404 |  | 
|---|
| 405 | enum { | 
|---|
| 406 | IFLA_INET_UNSPEC, | 
|---|
| 407 | IFLA_INET_CONF, | 
|---|
| 408 | __IFLA_INET_MAX, | 
|---|
| 409 | }; | 
|---|
| 410 |  | 
|---|
| 411 | #define IFLA_INET_MAX (__IFLA_INET_MAX - 1) | 
|---|
| 412 |  | 
|---|
| 413 | /* ifi_flags. | 
|---|
| 414 |  | 
|---|
| 415 | IFF_* flags. | 
|---|
| 416 |  | 
|---|
| 417 | The only change is: | 
|---|
| 418 | IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are | 
|---|
| 419 | more not changeable by user. They describe link media | 
|---|
| 420 | characteristics and set by device driver. | 
|---|
| 421 |  | 
|---|
| 422 | Comments: | 
|---|
| 423 | - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid | 
|---|
| 424 | - If neither of these three flags are set; | 
|---|
| 425 | the interface is NBMA. | 
|---|
| 426 |  | 
|---|
| 427 | - IFF_MULTICAST does not mean anything special: | 
|---|
| 428 | multicasts can be used on all not-NBMA links. | 
|---|
| 429 | IFF_MULTICAST means that this media uses special encapsulation | 
|---|
| 430 | for multicast frames. Apparently, all IFF_POINTOPOINT and | 
|---|
| 431 | IFF_BROADCAST devices are able to use multicasts too. | 
|---|
| 432 | */ | 
|---|
| 433 |  | 
|---|
| 434 | /* IFLA_LINK. | 
|---|
| 435 | For usual devices it is equal ifi_index. | 
|---|
| 436 | If it is a "virtual interface" (f.e. tunnel), ifi_link | 
|---|
| 437 | can point to real physical interface (f.e. for bandwidth calculations), | 
|---|
| 438 | or maybe 0, what means, that real media is unknown (usual | 
|---|
| 439 | for IPIP tunnels, when route to endpoint is allowed to change) | 
|---|
| 440 | */ | 
|---|
| 441 |  | 
|---|
| 442 | /* Subtype attributes for IFLA_PROTINFO */ | 
|---|
| 443 | enum { | 
|---|
| 444 | IFLA_INET6_UNSPEC, | 
|---|
| 445 | IFLA_INET6_FLAGS,	/* link flags			*/ | 
|---|
| 446 | IFLA_INET6_CONF,	/* sysctl parameters		*/ | 
|---|
| 447 | IFLA_INET6_STATS,	/* statistics			*/ | 
|---|
| 448 | IFLA_INET6_MCAST,	/* MC things. What of them?	*/ | 
|---|
| 449 | IFLA_INET6_CACHEINFO,	/* time values and max reasm size */ | 
|---|
| 450 | IFLA_INET6_ICMP6STATS,	/* statistics (icmpv6)		*/ | 
|---|
| 451 | IFLA_INET6_TOKEN,	/* device token			*/ | 
|---|
| 452 | IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */ | 
|---|
| 453 | IFLA_INET6_RA_MTU,	/* mtu carried in the RA message */ | 
|---|
| 454 | __IFLA_INET6_MAX | 
|---|
| 455 | }; | 
|---|
| 456 |  | 
|---|
| 457 | #define IFLA_INET6_MAX	(__IFLA_INET6_MAX - 1) | 
|---|
| 458 |  | 
|---|
| 459 | enum in6_addr_gen_mode { | 
|---|
| 460 | IN6_ADDR_GEN_MODE_EUI64, | 
|---|
| 461 | IN6_ADDR_GEN_MODE_NONE, | 
|---|
| 462 | IN6_ADDR_GEN_MODE_STABLE_PRIVACY, | 
|---|
| 463 | IN6_ADDR_GEN_MODE_RANDOM, | 
|---|
| 464 | }; | 
|---|
| 465 |  | 
|---|
| 466 | /* Bridge section */ | 
|---|
| 467 |  | 
|---|
| 468 | /** | 
|---|
| 469 | * DOC: Bridge enum definition | 
|---|
| 470 | * | 
|---|
| 471 | * Please *note* that the timer values in the following section are expected | 
|---|
| 472 | * in clock_t format, which is seconds multiplied by USER_HZ (generally | 
|---|
| 473 | * defined as 100). | 
|---|
| 474 | * | 
|---|
| 475 | * @IFLA_BR_FORWARD_DELAY | 
|---|
| 476 | *   The bridge forwarding delay is the time spent in LISTENING state | 
|---|
| 477 | *   (before moving to LEARNING) and in LEARNING state (before moving | 
|---|
| 478 | *   to FORWARDING). Only relevant if STP is enabled. | 
|---|
| 479 | * | 
|---|
| 480 | *   The valid values are between (2 * USER_HZ) and (30 * USER_HZ). | 
|---|
| 481 | *   The default value is (15 * USER_HZ). | 
|---|
| 482 | * | 
|---|
| 483 | * @IFLA_BR_HELLO_TIME | 
|---|
| 484 | *   The time between hello packets sent by the bridge, when it is a root | 
|---|
| 485 | *   bridge or a designated bridge. Only relevant if STP is enabled. | 
|---|
| 486 | * | 
|---|
| 487 | *   The valid values are between (1 * USER_HZ) and (10 * USER_HZ). | 
|---|
| 488 | *   The default value is (2 * USER_HZ). | 
|---|
| 489 | * | 
|---|
| 490 | * @IFLA_BR_MAX_AGE | 
|---|
| 491 | *   The hello packet timeout is the time until another bridge in the | 
|---|
| 492 | *   spanning tree is assumed to be dead, after reception of its last hello | 
|---|
| 493 | *   message. Only relevant if STP is enabled. | 
|---|
| 494 | * | 
|---|
| 495 | *   The valid values are between (6 * USER_HZ) and (40 * USER_HZ). | 
|---|
| 496 | *   The default value is (20 * USER_HZ). | 
|---|
| 497 | * | 
|---|
| 498 | * @IFLA_BR_AGEING_TIME | 
|---|
| 499 | *   Configure the bridge's FDB entries aging time. It is the time a MAC | 
|---|
| 500 | *   address will be kept in the FDB after a packet has been received from | 
|---|
| 501 | *   that address. After this time has passed, entries are cleaned up. | 
|---|
| 502 | *   Allow values outside the 802.1 standard specification for special cases: | 
|---|
| 503 | * | 
|---|
| 504 | *     * 0 - entry never ages (all permanent) | 
|---|
| 505 | *     * 1 - entry disappears (no persistence) | 
|---|
| 506 | * | 
|---|
| 507 | *   The default value is (300 * USER_HZ). | 
|---|
| 508 | * | 
|---|
| 509 | * @IFLA_BR_STP_STATE | 
|---|
| 510 | *   Turn spanning tree protocol on (*IFLA_BR_STP_STATE* > 0) or off | 
|---|
| 511 | *   (*IFLA_BR_STP_STATE* == 0) for this bridge. | 
|---|
| 512 | * | 
|---|
| 513 | *   The default value is 0 (disabled). | 
|---|
| 514 | * | 
|---|
| 515 | * @IFLA_BR_PRIORITY | 
|---|
| 516 | *   Set this bridge's spanning tree priority, used during STP root bridge | 
|---|
| 517 | *   election. | 
|---|
| 518 | * | 
|---|
| 519 | *   The valid values are between 0 and 65535. | 
|---|
| 520 | * | 
|---|
| 521 | * @IFLA_BR_VLAN_FILTERING | 
|---|
| 522 | *   Turn VLAN filtering on (*IFLA_BR_VLAN_FILTERING* > 0) or off | 
|---|
| 523 | *   (*IFLA_BR_VLAN_FILTERING* == 0). When disabled, the bridge will not | 
|---|
| 524 | *   consider the VLAN tag when handling packets. | 
|---|
| 525 | * | 
|---|
| 526 | *   The default value is 0 (disabled). | 
|---|
| 527 | * | 
|---|
| 528 | * @IFLA_BR_VLAN_PROTOCOL | 
|---|
| 529 | *   Set the protocol used for VLAN filtering. | 
|---|
| 530 | * | 
|---|
| 531 | *   The valid values are 0x8100(802.1Q) or 0x88A8(802.1AD). The default value | 
|---|
| 532 | *   is 0x8100(802.1Q). | 
|---|
| 533 | * | 
|---|
| 534 | * @IFLA_BR_GROUP_FWD_MASK | 
|---|
| 535 | *   The group forwarding mask. This is the bitmask that is applied to | 
|---|
| 536 | *   decide whether to forward incoming frames destined to link-local | 
|---|
| 537 | *   addresses (of the form 01:80:C2:00:00:0X). | 
|---|
| 538 | * | 
|---|
| 539 | *   The default value is 0, which means the bridge does not forward any | 
|---|
| 540 | *   link-local frames coming on this port. | 
|---|
| 541 | * | 
|---|
| 542 | * @IFLA_BR_ROOT_ID | 
|---|
| 543 | *   The bridge root id, read only. | 
|---|
| 544 | * | 
|---|
| 545 | * @IFLA_BR_BRIDGE_ID | 
|---|
| 546 | *   The bridge id, read only. | 
|---|
| 547 | * | 
|---|
| 548 | * @IFLA_BR_ROOT_PORT | 
|---|
| 549 | *   The bridge root port, read only. | 
|---|
| 550 | * | 
|---|
| 551 | * @IFLA_BR_ROOT_PATH_COST | 
|---|
| 552 | *   The bridge root path cost, read only. | 
|---|
| 553 | * | 
|---|
| 554 | * @IFLA_BR_TOPOLOGY_CHANGE | 
|---|
| 555 | *   The bridge topology change, read only. | 
|---|
| 556 | * | 
|---|
| 557 | * @IFLA_BR_TOPOLOGY_CHANGE_DETECTED | 
|---|
| 558 | *   The bridge topology change detected, read only. | 
|---|
| 559 | * | 
|---|
| 560 | * @IFLA_BR_HELLO_TIMER | 
|---|
| 561 | *   The bridge hello timer, read only. | 
|---|
| 562 | * | 
|---|
| 563 | * @IFLA_BR_TCN_TIMER | 
|---|
| 564 | *   The bridge tcn timer, read only. | 
|---|
| 565 | * | 
|---|
| 566 | * @IFLA_BR_TOPOLOGY_CHANGE_TIMER | 
|---|
| 567 | *   The bridge topology change timer, read only. | 
|---|
| 568 | * | 
|---|
| 569 | * @IFLA_BR_GC_TIMER | 
|---|
| 570 | *   The bridge gc timer, read only. | 
|---|
| 571 | * | 
|---|
| 572 | * @IFLA_BR_GROUP_ADDR | 
|---|
| 573 | *   Set the MAC address of the multicast group this bridge uses for STP. | 
|---|
| 574 | *   The address must be a link-local address in standard Ethernet MAC address | 
|---|
| 575 | *   format. It is an address of the form 01:80:C2:00:00:0X, with X in [0, 4..f]. | 
|---|
| 576 | * | 
|---|
| 577 | *   The default value is 0. | 
|---|
| 578 | * | 
|---|
| 579 | * @IFLA_BR_FDB_FLUSH | 
|---|
| 580 | *   Flush bridge's fdb dynamic entries. | 
|---|
| 581 | * | 
|---|
| 582 | * @IFLA_BR_MCAST_ROUTER | 
|---|
| 583 | *   Set bridge's multicast router if IGMP snooping is enabled. | 
|---|
| 584 | *   The valid values are: | 
|---|
| 585 | * | 
|---|
| 586 | *     * 0 - disabled. | 
|---|
| 587 | *     * 1 - automatic (queried). | 
|---|
| 588 | *     * 2 - permanently enabled. | 
|---|
| 589 | * | 
|---|
| 590 | *   The default value is 1. | 
|---|
| 591 | * | 
|---|
| 592 | * @IFLA_BR_MCAST_SNOOPING | 
|---|
| 593 | *   Turn multicast snooping on (*IFLA_BR_MCAST_SNOOPING* > 0) or off | 
|---|
| 594 | *   (*IFLA_BR_MCAST_SNOOPING* == 0). | 
|---|
| 595 | * | 
|---|
| 596 | *   The default value is 1. | 
|---|
| 597 | * | 
|---|
| 598 | * @IFLA_BR_MCAST_QUERY_USE_IFADDR | 
|---|
| 599 | *   If enabled use the bridge's own IP address as source address for IGMP | 
|---|
| 600 | *   queries (*IFLA_BR_MCAST_QUERY_USE_IFADDR* > 0) or the default of 0.0.0.0 | 
|---|
| 601 | *   (*IFLA_BR_MCAST_QUERY_USE_IFADDR* == 0). | 
|---|
| 602 | * | 
|---|
| 603 | *   The default value is 0 (disabled). | 
|---|
| 604 | * | 
|---|
| 605 | * @IFLA_BR_MCAST_QUERIER | 
|---|
| 606 | *   Enable (*IFLA_BR_MULTICAST_QUERIER* > 0) or disable | 
|---|
| 607 | *   (*IFLA_BR_MULTICAST_QUERIER* == 0) IGMP querier, ie sending of multicast | 
|---|
| 608 | *   queries by the bridge. | 
|---|
| 609 | * | 
|---|
| 610 | *   The default value is 0 (disabled). | 
|---|
| 611 | * | 
|---|
| 612 | * @IFLA_BR_MCAST_HASH_ELASTICITY | 
|---|
| 613 | *   Set multicast database hash elasticity, It is the maximum chain length in | 
|---|
| 614 | *   the multicast hash table. This attribute is *deprecated* and the value | 
|---|
| 615 | *   is always 16. | 
|---|
| 616 | * | 
|---|
| 617 | * @IFLA_BR_MCAST_HASH_MAX | 
|---|
| 618 | *   Set maximum size of the multicast hash table | 
|---|
| 619 | * | 
|---|
| 620 | *   The default value is 4096, the value must be a power of 2. | 
|---|
| 621 | * | 
|---|
| 622 | * @IFLA_BR_MCAST_LAST_MEMBER_CNT | 
|---|
| 623 | *   The Last Member Query Count is the number of Group-Specific Queries | 
|---|
| 624 | *   sent before the router assumes there are no local members. The Last | 
|---|
| 625 | *   Member Query Count is also the number of Group-and-Source-Specific | 
|---|
| 626 | *   Queries sent before the router assumes there are no listeners for a | 
|---|
| 627 | *   particular source. | 
|---|
| 628 | * | 
|---|
| 629 | *   The default value is 2. | 
|---|
| 630 | * | 
|---|
| 631 | * @IFLA_BR_MCAST_STARTUP_QUERY_CNT | 
|---|
| 632 | *   The Startup Query Count is the number of Queries sent out on startup, | 
|---|
| 633 | *   separated by the Startup Query Interval. | 
|---|
| 634 | * | 
|---|
| 635 | *   The default value is 2. | 
|---|
| 636 | * | 
|---|
| 637 | * @IFLA_BR_MCAST_LAST_MEMBER_INTVL | 
|---|
| 638 | *   The Last Member Query Interval is the Max Response Time inserted into | 
|---|
| 639 | *   Group-Specific Queries sent in response to Leave Group messages, and | 
|---|
| 640 | *   is also the amount of time between Group-Specific Query messages. | 
|---|
| 641 | * | 
|---|
| 642 | *   The default value is (1 * USER_HZ). | 
|---|
| 643 | * | 
|---|
| 644 | * @IFLA_BR_MCAST_MEMBERSHIP_INTVL | 
|---|
| 645 | *   The interval after which the bridge will leave a group, if no membership | 
|---|
| 646 | *   reports for this group are received. | 
|---|
| 647 | * | 
|---|
| 648 | *   The default value is (260 * USER_HZ). | 
|---|
| 649 | * | 
|---|
| 650 | * @IFLA_BR_MCAST_QUERIER_INTVL | 
|---|
| 651 | *   The interval between queries sent by other routers. if no queries are | 
|---|
| 652 | *   seen after this delay has passed, the bridge will start to send its own | 
|---|
| 653 | *   queries (as if *IFLA_BR_MCAST_QUERIER_INTVL* was enabled). | 
|---|
| 654 | * | 
|---|
| 655 | *   The default value is (255 * USER_HZ). | 
|---|
| 656 | * | 
|---|
| 657 | * @IFLA_BR_MCAST_QUERY_INTVL | 
|---|
| 658 | *   The Query Interval is the interval between General Queries sent by | 
|---|
| 659 | *   the Querier. | 
|---|
| 660 | * | 
|---|
| 661 | *   The default value is (125 * USER_HZ). The minimum value is (1 * USER_HZ). | 
|---|
| 662 | * | 
|---|
| 663 | * @IFLA_BR_MCAST_QUERY_RESPONSE_INTVL | 
|---|
| 664 | *   The Max Response Time used to calculate the Max Resp Code inserted | 
|---|
| 665 | *   into the periodic General Queries. | 
|---|
| 666 | * | 
|---|
| 667 | *   The default value is (10 * USER_HZ). | 
|---|
| 668 | * | 
|---|
| 669 | * @IFLA_BR_MCAST_STARTUP_QUERY_INTVL | 
|---|
| 670 | *   The interval between queries in the startup phase. | 
|---|
| 671 | * | 
|---|
| 672 | *   The default value is (125 * USER_HZ) / 4. The minimum value is (1 * USER_HZ). | 
|---|
| 673 | * | 
|---|
| 674 | * @IFLA_BR_NF_CALL_IPTABLES | 
|---|
| 675 | *   Enable (*NF_CALL_IPTABLES* > 0) or disable (*NF_CALL_IPTABLES* == 0) | 
|---|
| 676 | *   iptables hooks on the bridge. | 
|---|
| 677 | * | 
|---|
| 678 | *   The default value is 0 (disabled). | 
|---|
| 679 | * | 
|---|
| 680 | * @IFLA_BR_NF_CALL_IP6TABLES | 
|---|
| 681 | *   Enable (*NF_CALL_IP6TABLES* > 0) or disable (*NF_CALL_IP6TABLES* == 0) | 
|---|
| 682 | *   ip6tables hooks on the bridge. | 
|---|
| 683 | * | 
|---|
| 684 | *   The default value is 0 (disabled). | 
|---|
| 685 | * | 
|---|
| 686 | * @IFLA_BR_NF_CALL_ARPTABLES | 
|---|
| 687 | *   Enable (*NF_CALL_ARPTABLES* > 0) or disable (*NF_CALL_ARPTABLES* == 0) | 
|---|
| 688 | *   arptables hooks on the bridge. | 
|---|
| 689 | * | 
|---|
| 690 | *   The default value is 0 (disabled). | 
|---|
| 691 | * | 
|---|
| 692 | * @IFLA_BR_VLAN_DEFAULT_PVID | 
|---|
| 693 | *   VLAN ID applied to untagged and priority-tagged incoming packets. | 
|---|
| 694 | * | 
|---|
| 695 | *   The default value is 1. Setting to the special value 0 makes all ports of | 
|---|
| 696 | *   this bridge not have a PVID by default, which means that they will | 
|---|
| 697 | *   not accept VLAN-untagged traffic. | 
|---|
| 698 | * | 
|---|
| 699 | * @IFLA_BR_PAD | 
|---|
| 700 | *   Bridge attribute padding type for netlink message. | 
|---|
| 701 | * | 
|---|
| 702 | * @IFLA_BR_VLAN_STATS_ENABLED | 
|---|
| 703 | *   Enable (*IFLA_BR_VLAN_STATS_ENABLED* == 1) or disable | 
|---|
| 704 | *   (*IFLA_BR_VLAN_STATS_ENABLED* == 0) per-VLAN stats accounting. | 
|---|
| 705 | * | 
|---|
| 706 | *   The default value is 0 (disabled). | 
|---|
| 707 | * | 
|---|
| 708 | * @IFLA_BR_MCAST_STATS_ENABLED | 
|---|
| 709 | *   Enable (*IFLA_BR_MCAST_STATS_ENABLED* > 0) or disable | 
|---|
| 710 | *   (*IFLA_BR_MCAST_STATS_ENABLED* == 0) multicast (IGMP/MLD) stats | 
|---|
| 711 | *   accounting. | 
|---|
| 712 | * | 
|---|
| 713 | *   The default value is 0 (disabled). | 
|---|
| 714 | * | 
|---|
| 715 | * @IFLA_BR_MCAST_IGMP_VERSION | 
|---|
| 716 | *   Set the IGMP version. | 
|---|
| 717 | * | 
|---|
| 718 | *   The valid values are 2 and 3. The default value is 2. | 
|---|
| 719 | * | 
|---|
| 720 | * @IFLA_BR_MCAST_MLD_VERSION | 
|---|
| 721 | *   Set the MLD version. | 
|---|
| 722 | * | 
|---|
| 723 | *   The valid values are 1 and 2. The default value is 1. | 
|---|
| 724 | * | 
|---|
| 725 | * @IFLA_BR_VLAN_STATS_PER_PORT | 
|---|
| 726 | *   Enable (*IFLA_BR_VLAN_STATS_PER_PORT* == 1) or disable | 
|---|
| 727 | *   (*IFLA_BR_VLAN_STATS_PER_PORT* == 0) per-VLAN per-port stats accounting. | 
|---|
| 728 | *   Can be changed only when there are no port VLANs configured. | 
|---|
| 729 | * | 
|---|
| 730 | *   The default value is 0 (disabled). | 
|---|
| 731 | * | 
|---|
| 732 | * @IFLA_BR_MULTI_BOOLOPT | 
|---|
| 733 | *   The multi_boolopt is used to control new boolean options to avoid adding | 
|---|
| 734 | *   new netlink attributes. You can look at ``enum br_boolopt_id`` for those | 
|---|
| 735 | *   options. | 
|---|
| 736 | * | 
|---|
| 737 | * @IFLA_BR_MCAST_QUERIER_STATE | 
|---|
| 738 | *   Bridge mcast querier states, read only. | 
|---|
| 739 | * | 
|---|
| 740 | * @IFLA_BR_FDB_N_LEARNED | 
|---|
| 741 | *   The number of dynamically learned FDB entries for the current bridge, | 
|---|
| 742 | *   read only. | 
|---|
| 743 | * | 
|---|
| 744 | * @IFLA_BR_FDB_MAX_LEARNED | 
|---|
| 745 | *   Set the number of max dynamically learned FDB entries for the current | 
|---|
| 746 | *   bridge. | 
|---|
| 747 | */ | 
|---|
| 748 | enum { | 
|---|
| 749 | IFLA_BR_UNSPEC, | 
|---|
| 750 | IFLA_BR_FORWARD_DELAY, | 
|---|
| 751 | IFLA_BR_HELLO_TIME, | 
|---|
| 752 | IFLA_BR_MAX_AGE, | 
|---|
| 753 | IFLA_BR_AGEING_TIME, | 
|---|
| 754 | IFLA_BR_STP_STATE, | 
|---|
| 755 | IFLA_BR_PRIORITY, | 
|---|
| 756 | IFLA_BR_VLAN_FILTERING, | 
|---|
| 757 | IFLA_BR_VLAN_PROTOCOL, | 
|---|
| 758 | IFLA_BR_GROUP_FWD_MASK, | 
|---|
| 759 | IFLA_BR_ROOT_ID, | 
|---|
| 760 | IFLA_BR_BRIDGE_ID, | 
|---|
| 761 | IFLA_BR_ROOT_PORT, | 
|---|
| 762 | IFLA_BR_ROOT_PATH_COST, | 
|---|
| 763 | IFLA_BR_TOPOLOGY_CHANGE, | 
|---|
| 764 | IFLA_BR_TOPOLOGY_CHANGE_DETECTED, | 
|---|
| 765 | IFLA_BR_HELLO_TIMER, | 
|---|
| 766 | IFLA_BR_TCN_TIMER, | 
|---|
| 767 | IFLA_BR_TOPOLOGY_CHANGE_TIMER, | 
|---|
| 768 | IFLA_BR_GC_TIMER, | 
|---|
| 769 | IFLA_BR_GROUP_ADDR, | 
|---|
| 770 | IFLA_BR_FDB_FLUSH, | 
|---|
| 771 | IFLA_BR_MCAST_ROUTER, | 
|---|
| 772 | IFLA_BR_MCAST_SNOOPING, | 
|---|
| 773 | IFLA_BR_MCAST_QUERY_USE_IFADDR, | 
|---|
| 774 | IFLA_BR_MCAST_QUERIER, | 
|---|
| 775 | IFLA_BR_MCAST_HASH_ELASTICITY, | 
|---|
| 776 | IFLA_BR_MCAST_HASH_MAX, | 
|---|
| 777 | IFLA_BR_MCAST_LAST_MEMBER_CNT, | 
|---|
| 778 | IFLA_BR_MCAST_STARTUP_QUERY_CNT, | 
|---|
| 779 | IFLA_BR_MCAST_LAST_MEMBER_INTVL, | 
|---|
| 780 | IFLA_BR_MCAST_MEMBERSHIP_INTVL, | 
|---|
| 781 | IFLA_BR_MCAST_QUERIER_INTVL, | 
|---|
| 782 | IFLA_BR_MCAST_QUERY_INTVL, | 
|---|
| 783 | IFLA_BR_MCAST_QUERY_RESPONSE_INTVL, | 
|---|
| 784 | IFLA_BR_MCAST_STARTUP_QUERY_INTVL, | 
|---|
| 785 | IFLA_BR_NF_CALL_IPTABLES, | 
|---|
| 786 | IFLA_BR_NF_CALL_IP6TABLES, | 
|---|
| 787 | IFLA_BR_NF_CALL_ARPTABLES, | 
|---|
| 788 | IFLA_BR_VLAN_DEFAULT_PVID, | 
|---|
| 789 | IFLA_BR_PAD, | 
|---|
| 790 | IFLA_BR_VLAN_STATS_ENABLED, | 
|---|
| 791 | IFLA_BR_MCAST_STATS_ENABLED, | 
|---|
| 792 | IFLA_BR_MCAST_IGMP_VERSION, | 
|---|
| 793 | IFLA_BR_MCAST_MLD_VERSION, | 
|---|
| 794 | IFLA_BR_VLAN_STATS_PER_PORT, | 
|---|
| 795 | IFLA_BR_MULTI_BOOLOPT, | 
|---|
| 796 | IFLA_BR_MCAST_QUERIER_STATE, | 
|---|
| 797 | IFLA_BR_FDB_N_LEARNED, | 
|---|
| 798 | IFLA_BR_FDB_MAX_LEARNED, | 
|---|
| 799 | __IFLA_BR_MAX, | 
|---|
| 800 | }; | 
|---|
| 801 |  | 
|---|
| 802 | #define IFLA_BR_MAX	(__IFLA_BR_MAX - 1) | 
|---|
| 803 |  | 
|---|
| 804 | struct ifla_bridge_id { | 
|---|
| 805 | __u8	prio[2]; | 
|---|
| 806 | __u8	addr[6]; /* ETH_ALEN */ | 
|---|
| 807 | }; | 
|---|
| 808 |  | 
|---|
| 809 | /** | 
|---|
| 810 | * DOC: Bridge mode enum definition | 
|---|
| 811 | * | 
|---|
| 812 | * @BRIDGE_MODE_HAIRPIN | 
|---|
| 813 | *   Controls whether traffic may be sent back out of the port on which it | 
|---|
| 814 | *   was received. This option is also called reflective relay mode, and is | 
|---|
| 815 | *   used to support basic VEPA (Virtual Ethernet Port Aggregator) | 
|---|
| 816 | *   capabilities. By default, this flag is turned off and the bridge will | 
|---|
| 817 | *   not forward traffic back out of the receiving port. | 
|---|
| 818 | */ | 
|---|
| 819 | enum { | 
|---|
| 820 | BRIDGE_MODE_UNSPEC, | 
|---|
| 821 | BRIDGE_MODE_HAIRPIN, | 
|---|
| 822 | }; | 
|---|
| 823 |  | 
|---|
| 824 | /** | 
|---|
| 825 | * DOC: Bridge port enum definition | 
|---|
| 826 | * | 
|---|
| 827 | * @IFLA_BRPORT_STATE | 
|---|
| 828 | *   The operation state of the port. Here are the valid values. | 
|---|
| 829 | * | 
|---|
| 830 | *     * 0 - port is in STP *DISABLED* state. Make this port completely | 
|---|
| 831 | *       inactive for STP. This is also called BPDU filter and could be used | 
|---|
| 832 | *       to disable STP on an untrusted port, like a leaf virtual device. | 
|---|
| 833 | *       The traffic forwarding is also stopped on this port. | 
|---|
| 834 | *     * 1 - port is in STP *LISTENING* state. Only valid if STP is enabled | 
|---|
| 835 | *       on the bridge. In this state the port listens for STP BPDUs and | 
|---|
| 836 | *       drops all other traffic frames. | 
|---|
| 837 | *     * 2 - port is in STP *LEARNING* state. Only valid if STP is enabled on | 
|---|
| 838 | *       the bridge. In this state the port will accept traffic only for the | 
|---|
| 839 | *       purpose of updating MAC address tables. | 
|---|
| 840 | *     * 3 - port is in STP *FORWARDING* state. Port is fully active. | 
|---|
| 841 | *     * 4 - port is in STP *BLOCKING* state. Only valid if STP is enabled on | 
|---|
| 842 | *       the bridge. This state is used during the STP election process. | 
|---|
| 843 | *       In this state, port will only process STP BPDUs. | 
|---|
| 844 | * | 
|---|
| 845 | * @IFLA_BRPORT_PRIORITY | 
|---|
| 846 | *   The STP port priority. The valid values are between 0 and 255. | 
|---|
| 847 | * | 
|---|
| 848 | * @IFLA_BRPORT_COST | 
|---|
| 849 | *   The STP path cost of the port. The valid values are between 1 and 65535. | 
|---|
| 850 | * | 
|---|
| 851 | * @IFLA_BRPORT_MODE | 
|---|
| 852 | *   Set the bridge port mode. See *BRIDGE_MODE_HAIRPIN* for more details. | 
|---|
| 853 | * | 
|---|
| 854 | * @IFLA_BRPORT_GUARD | 
|---|
| 855 | *   Controls whether STP BPDUs will be processed by the bridge port. By | 
|---|
| 856 | *   default, the flag is turned off to allow BPDU processing. Turning this | 
|---|
| 857 | *   flag on will disable the bridge port if a STP BPDU packet is received. | 
|---|
| 858 | * | 
|---|
| 859 | *   If the bridge has Spanning Tree enabled, hostile devices on the network | 
|---|
| 860 | *   may send BPDU on a port and cause network failure. Setting *guard on* | 
|---|
| 861 | *   will detect and stop this by disabling the port. The port will be | 
|---|
| 862 | *   restarted if the link is brought down, or removed and reattached. | 
|---|
| 863 | * | 
|---|
| 864 | * @IFLA_BRPORT_PROTECT | 
|---|
| 865 | *   Controls whether a given port is allowed to become a root port or not. | 
|---|
| 866 | *   Only used when STP is enabled on the bridge. By default the flag is off. | 
|---|
| 867 | * | 
|---|
| 868 | *   This feature is also called root port guard. If BPDU is received from a | 
|---|
| 869 | *   leaf (edge) port, it should not be elected as root port. This could | 
|---|
| 870 | *   be used if using STP on a bridge and the downstream bridges are not fully | 
|---|
| 871 | *   trusted; this prevents a hostile guest from rerouting traffic. | 
|---|
| 872 | * | 
|---|
| 873 | * @IFLA_BRPORT_FAST_LEAVE | 
|---|
| 874 | *   This flag allows the bridge to immediately stop multicast traffic | 
|---|
| 875 | *   forwarding on a port that receives an IGMP Leave message. It is only used | 
|---|
| 876 | *   when IGMP snooping is enabled on the bridge. By default the flag is off. | 
|---|
| 877 | * | 
|---|
| 878 | * @IFLA_BRPORT_LEARNING | 
|---|
| 879 | *   Controls whether a given port will learn *source* MAC addresses from | 
|---|
| 880 | *   received traffic or not. Also controls whether dynamic FDB entries | 
|---|
| 881 | *   (which can also be added by software) will be refreshed by incoming | 
|---|
| 882 | *   traffic. By default this flag is on. | 
|---|
| 883 | * | 
|---|
| 884 | * @IFLA_BRPORT_UNICAST_FLOOD | 
|---|
| 885 | *   Controls whether unicast traffic for which there is no FDB entry will | 
|---|
| 886 | *   be flooded towards this port. By default this flag is on. | 
|---|
| 887 | * | 
|---|
| 888 | * @IFLA_BRPORT_PROXYARP | 
|---|
| 889 | *   Enable proxy ARP on this port. | 
|---|
| 890 | * | 
|---|
| 891 | * @IFLA_BRPORT_LEARNING_SYNC | 
|---|
| 892 | *   Controls whether a given port will sync MAC addresses learned on device | 
|---|
| 893 | *   port to bridge FDB. | 
|---|
| 894 | * | 
|---|
| 895 | * @IFLA_BRPORT_PROXYARP_WIFI | 
|---|
| 896 | *   Enable proxy ARP on this port which meets extended requirements by | 
|---|
| 897 | *   IEEE 802.11 and Hotspot 2.0 specifications. | 
|---|
| 898 | * | 
|---|
| 899 | * @IFLA_BRPORT_ROOT_ID | 
|---|
| 900 | * | 
|---|
| 901 | * @IFLA_BRPORT_BRIDGE_ID | 
|---|
| 902 | * | 
|---|
| 903 | * @IFLA_BRPORT_DESIGNATED_PORT | 
|---|
| 904 | * | 
|---|
| 905 | * @IFLA_BRPORT_DESIGNATED_COST | 
|---|
| 906 | * | 
|---|
| 907 | * @IFLA_BRPORT_ID | 
|---|
| 908 | * | 
|---|
| 909 | * @IFLA_BRPORT_NO | 
|---|
| 910 | * | 
|---|
| 911 | * @IFLA_BRPORT_TOPOLOGY_CHANGE_ACK | 
|---|
| 912 | * | 
|---|
| 913 | * @IFLA_BRPORT_CONFIG_PENDING | 
|---|
| 914 | * | 
|---|
| 915 | * @IFLA_BRPORT_MESSAGE_AGE_TIMER | 
|---|
| 916 | * | 
|---|
| 917 | * @IFLA_BRPORT_FORWARD_DELAY_TIMER | 
|---|
| 918 | * | 
|---|
| 919 | * @IFLA_BRPORT_HOLD_TIMER | 
|---|
| 920 | * | 
|---|
| 921 | * @IFLA_BRPORT_FLUSH | 
|---|
| 922 | *   Flush bridge ports' fdb dynamic entries. | 
|---|
| 923 | * | 
|---|
| 924 | * @IFLA_BRPORT_MULTICAST_ROUTER | 
|---|
| 925 | *   Configure the port's multicast router presence. A port with | 
|---|
| 926 | *   a multicast router will receive all multicast traffic. | 
|---|
| 927 | *   The valid values are: | 
|---|
| 928 | * | 
|---|
| 929 | *     * 0 disable multicast routers on this port | 
|---|
| 930 | *     * 1 let the system detect the presence of routers (default) | 
|---|
| 931 | *     * 2 permanently enable multicast traffic forwarding on this port | 
|---|
| 932 | *     * 3 enable multicast routers temporarily on this port, not depending | 
|---|
| 933 | *         on incoming queries. | 
|---|
| 934 | * | 
|---|
| 935 | * @IFLA_BRPORT_PAD | 
|---|
| 936 | * | 
|---|
| 937 | * @IFLA_BRPORT_MCAST_FLOOD | 
|---|
| 938 | *   Controls whether a given port will flood multicast traffic for which | 
|---|
| 939 | *   there is no MDB entry. By default this flag is on. | 
|---|
| 940 | * | 
|---|
| 941 | * @IFLA_BRPORT_MCAST_TO_UCAST | 
|---|
| 942 | *   Controls whether a given port will replicate packets using unicast | 
|---|
| 943 | *   instead of multicast. By default this flag is off. | 
|---|
| 944 | * | 
|---|
| 945 | *   This is done by copying the packet per host and changing the multicast | 
|---|
| 946 | *   destination MAC to a unicast one accordingly. | 
|---|
| 947 | * | 
|---|
| 948 | *   *mcast_to_unicast* works on top of the multicast snooping feature of the | 
|---|
| 949 | *   bridge. Which means unicast copies are only delivered to hosts which | 
|---|
| 950 | *   are interested in unicast and signaled this via IGMP/MLD reports previously. | 
|---|
| 951 | * | 
|---|
| 952 | *   This feature is intended for interface types which have a more reliable | 
|---|
| 953 | *   and/or efficient way to deliver unicast packets than broadcast ones | 
|---|
| 954 | *   (e.g. WiFi). | 
|---|
| 955 | * | 
|---|
| 956 | *   However, it should only be enabled on interfaces where no IGMPv2/MLDv1 | 
|---|
| 957 | *   report suppression takes place. IGMP/MLD report suppression issue is | 
|---|
| 958 | *   usually overcome by the network daemon (supplicant) enabling AP isolation | 
|---|
| 959 | *   and by that separating all STAs. | 
|---|
| 960 | * | 
|---|
| 961 | *   Delivery of STA-to-STA IP multicast is made possible again by enabling | 
|---|
| 962 | *   and utilizing the bridge hairpin mode, which considers the incoming port | 
|---|
| 963 | *   as a potential outgoing port, too (see *BRIDGE_MODE_HAIRPIN* option). | 
|---|
| 964 | *   Hairpin mode is performed after multicast snooping, therefore leading | 
|---|
| 965 | *   to only deliver reports to STAs running a multicast router. | 
|---|
| 966 | * | 
|---|
| 967 | * @IFLA_BRPORT_VLAN_TUNNEL | 
|---|
| 968 | *   Controls whether vlan to tunnel mapping is enabled on the port. | 
|---|
| 969 | *   By default this flag is off. | 
|---|
| 970 | * | 
|---|
| 971 | * @IFLA_BRPORT_BCAST_FLOOD | 
|---|
| 972 | *   Controls flooding of broadcast traffic on the given port. By default | 
|---|
| 973 | *   this flag is on. | 
|---|
| 974 | * | 
|---|
| 975 | * @IFLA_BRPORT_GROUP_FWD_MASK | 
|---|
| 976 | *   Set the group forward mask. This is a bitmask that is applied to | 
|---|
| 977 | *   decide whether to forward incoming frames destined to link-local | 
|---|
| 978 | *   addresses. The addresses of the form are 01:80:C2:00:00:0X (defaults | 
|---|
| 979 | *   to 0, which means the bridge does not forward any link-local frames | 
|---|
| 980 | *   coming on this port). | 
|---|
| 981 | * | 
|---|
| 982 | * @IFLA_BRPORT_NEIGH_SUPPRESS | 
|---|
| 983 | *   Controls whether neighbor discovery (arp and nd) proxy and suppression | 
|---|
| 984 | *   is enabled on the port. By default this flag is off. | 
|---|
| 985 | * | 
|---|
| 986 | * @IFLA_BRPORT_ISOLATED | 
|---|
| 987 | *   Controls whether a given port will be isolated, which means it will be | 
|---|
| 988 | *   able to communicate with non-isolated ports only. By default this | 
|---|
| 989 | *   flag is off. | 
|---|
| 990 | * | 
|---|
| 991 | * @IFLA_BRPORT_BACKUP_PORT | 
|---|
| 992 | *   Set a backup port. If the port loses carrier all traffic will be | 
|---|
| 993 | *   redirected to the configured backup port. Set the value to 0 to disable | 
|---|
| 994 | *   it. | 
|---|
| 995 | * | 
|---|
| 996 | * @IFLA_BRPORT_MRP_RING_OPEN | 
|---|
| 997 | * | 
|---|
| 998 | * @IFLA_BRPORT_MRP_IN_OPEN | 
|---|
| 999 | * | 
|---|
| 1000 | * @IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT | 
|---|
| 1001 | *   The number of per-port EHT hosts limit. The default value is 512. | 
|---|
| 1002 | *   Setting to 0 is not allowed. | 
|---|
| 1003 | * | 
|---|
| 1004 | * @IFLA_BRPORT_MCAST_EHT_HOSTS_CNT | 
|---|
| 1005 | *   The current number of tracked hosts, read only. | 
|---|
| 1006 | * | 
|---|
| 1007 | * @IFLA_BRPORT_LOCKED | 
|---|
| 1008 | *   Controls whether a port will be locked, meaning that hosts behind the | 
|---|
| 1009 | *   port will not be able to communicate through the port unless an FDB | 
|---|
| 1010 | *   entry with the unit's MAC address is in the FDB. The common use case is | 
|---|
| 1011 | *   that hosts are allowed access through authentication with the IEEE 802.1X | 
|---|
| 1012 | *   protocol or based on whitelists. By default this flag is off. | 
|---|
| 1013 | * | 
|---|
| 1014 | *   Please note that secure 802.1X deployments should always use the | 
|---|
| 1015 | *   *BR_BOOLOPT_NO_LL_LEARN* flag, to not permit the bridge to populate its | 
|---|
| 1016 | *   FDB based on link-local (EAPOL) traffic received on the port. | 
|---|
| 1017 | * | 
|---|
| 1018 | * @IFLA_BRPORT_MAB | 
|---|
| 1019 | *   Controls whether a port will use MAC Authentication Bypass (MAB), a | 
|---|
| 1020 | *   technique through which select MAC addresses may be allowed on a locked | 
|---|
| 1021 | *   port, without using 802.1X authentication. Packets with an unknown source | 
|---|
| 1022 | *   MAC address generates a "locked" FDB entry on the incoming bridge port. | 
|---|
| 1023 | *   The common use case is for user space to react to these bridge FDB | 
|---|
| 1024 | *   notifications and optionally replace the locked FDB entry with a normal | 
|---|
| 1025 | *   one, allowing traffic to pass for whitelisted MAC addresses. | 
|---|
| 1026 | * | 
|---|
| 1027 | *   Setting this flag also requires *IFLA_BRPORT_LOCKED* and | 
|---|
| 1028 | *   *IFLA_BRPORT_LEARNING*. *IFLA_BRPORT_LOCKED* ensures that unauthorized | 
|---|
| 1029 | *   data packets are dropped, and *IFLA_BRPORT_LEARNING* allows the dynamic | 
|---|
| 1030 | *   FDB entries installed by user space (as replacements for the locked FDB | 
|---|
| 1031 | *   entries) to be refreshed and/or aged out. | 
|---|
| 1032 | * | 
|---|
| 1033 | * @IFLA_BRPORT_MCAST_N_GROUPS | 
|---|
| 1034 | * | 
|---|
| 1035 | * @IFLA_BRPORT_MCAST_MAX_GROUPS | 
|---|
| 1036 | *   Sets the maximum number of MDB entries that can be registered for a | 
|---|
| 1037 | *   given port. Attempts to register more MDB entries at the port than this | 
|---|
| 1038 | *   limit allows will be rejected, whether they are done through netlink | 
|---|
| 1039 | *   (e.g. the bridge tool), or IGMP or MLD membership reports. Setting a | 
|---|
| 1040 | *   limit of 0 disables the limit. The default value is 0. | 
|---|
| 1041 | * | 
|---|
| 1042 | * @IFLA_BRPORT_NEIGH_VLAN_SUPPRESS | 
|---|
| 1043 | *   Controls whether neighbor discovery (arp and nd) proxy and suppression is | 
|---|
| 1044 | *   enabled for a given port. By default this flag is off. | 
|---|
| 1045 | * | 
|---|
| 1046 | *   Note that this option only takes effect when *IFLA_BRPORT_NEIGH_SUPPRESS* | 
|---|
| 1047 | *   is enabled for a given port. | 
|---|
| 1048 | * | 
|---|
| 1049 | * @IFLA_BRPORT_BACKUP_NHID | 
|---|
| 1050 | *   The FDB nexthop object ID to attach to packets being redirected to a | 
|---|
| 1051 | *   backup port that has VLAN tunnel mapping enabled (via the | 
|---|
| 1052 | *   *IFLA_BRPORT_VLAN_TUNNEL* option). Setting a value of 0 (default) has | 
|---|
| 1053 | *   the effect of not attaching any ID. | 
|---|
| 1054 | */ | 
|---|
| 1055 | enum { | 
|---|
| 1056 | IFLA_BRPORT_UNSPEC, | 
|---|
| 1057 | IFLA_BRPORT_STATE,	/* Spanning tree state     */ | 
|---|
| 1058 | IFLA_BRPORT_PRIORITY,	/* "             priority  */ | 
|---|
| 1059 | IFLA_BRPORT_COST,	/* "             cost      */ | 
|---|
| 1060 | IFLA_BRPORT_MODE,	/* mode (hairpin)          */ | 
|---|
| 1061 | IFLA_BRPORT_GUARD,	/* bpdu guard              */ | 
|---|
| 1062 | IFLA_BRPORT_PROTECT,	/* root port protection    */ | 
|---|
| 1063 | IFLA_BRPORT_FAST_LEAVE,	/* multicast fast leave    */ | 
|---|
| 1064 | IFLA_BRPORT_LEARNING,	/* mac learning */ | 
|---|
| 1065 | IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */ | 
|---|
| 1066 | IFLA_BRPORT_PROXYARP,	/* proxy ARP */ | 
|---|
| 1067 | IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */ | 
|---|
| 1068 | IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */ | 
|---|
| 1069 | IFLA_BRPORT_ROOT_ID,	/* designated root */ | 
|---|
| 1070 | IFLA_BRPORT_BRIDGE_ID,	/* designated bridge */ | 
|---|
| 1071 | IFLA_BRPORT_DESIGNATED_PORT, | 
|---|
| 1072 | IFLA_BRPORT_DESIGNATED_COST, | 
|---|
| 1073 | IFLA_BRPORT_ID, | 
|---|
| 1074 | IFLA_BRPORT_NO, | 
|---|
| 1075 | IFLA_BRPORT_TOPOLOGY_CHANGE_ACK, | 
|---|
| 1076 | IFLA_BRPORT_CONFIG_PENDING, | 
|---|
| 1077 | IFLA_BRPORT_MESSAGE_AGE_TIMER, | 
|---|
| 1078 | IFLA_BRPORT_FORWARD_DELAY_TIMER, | 
|---|
| 1079 | IFLA_BRPORT_HOLD_TIMER, | 
|---|
| 1080 | IFLA_BRPORT_FLUSH, | 
|---|
| 1081 | IFLA_BRPORT_MULTICAST_ROUTER, | 
|---|
| 1082 | IFLA_BRPORT_PAD, | 
|---|
| 1083 | IFLA_BRPORT_MCAST_FLOOD, | 
|---|
| 1084 | IFLA_BRPORT_MCAST_TO_UCAST, | 
|---|
| 1085 | IFLA_BRPORT_VLAN_TUNNEL, | 
|---|
| 1086 | IFLA_BRPORT_BCAST_FLOOD, | 
|---|
| 1087 | IFLA_BRPORT_GROUP_FWD_MASK, | 
|---|
| 1088 | IFLA_BRPORT_NEIGH_SUPPRESS, | 
|---|
| 1089 | IFLA_BRPORT_ISOLATED, | 
|---|
| 1090 | IFLA_BRPORT_BACKUP_PORT, | 
|---|
| 1091 | IFLA_BRPORT_MRP_RING_OPEN, | 
|---|
| 1092 | IFLA_BRPORT_MRP_IN_OPEN, | 
|---|
| 1093 | IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, | 
|---|
| 1094 | IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, | 
|---|
| 1095 | IFLA_BRPORT_LOCKED, | 
|---|
| 1096 | IFLA_BRPORT_MAB, | 
|---|
| 1097 | IFLA_BRPORT_MCAST_N_GROUPS, | 
|---|
| 1098 | IFLA_BRPORT_MCAST_MAX_GROUPS, | 
|---|
| 1099 | IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, | 
|---|
| 1100 | IFLA_BRPORT_BACKUP_NHID, | 
|---|
| 1101 | __IFLA_BRPORT_MAX | 
|---|
| 1102 | }; | 
|---|
| 1103 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | 
|---|
| 1104 |  | 
|---|
| 1105 | struct ifla_cacheinfo { | 
|---|
| 1106 | __u32	max_reasm_len; | 
|---|
| 1107 | __u32	tstamp;		/* ipv6InterfaceTable updated timestamp */ | 
|---|
| 1108 | __u32	reachable_time; | 
|---|
| 1109 | __u32	retrans_time; | 
|---|
| 1110 | }; | 
|---|
| 1111 |  | 
|---|
| 1112 | enum { | 
|---|
| 1113 | IFLA_INFO_UNSPEC, | 
|---|
| 1114 | IFLA_INFO_KIND, | 
|---|
| 1115 | IFLA_INFO_DATA, | 
|---|
| 1116 | IFLA_INFO_XSTATS, | 
|---|
| 1117 | IFLA_INFO_SLAVE_KIND, | 
|---|
| 1118 | IFLA_INFO_SLAVE_DATA, | 
|---|
| 1119 | __IFLA_INFO_MAX, | 
|---|
| 1120 | }; | 
|---|
| 1121 |  | 
|---|
| 1122 | #define IFLA_INFO_MAX	(__IFLA_INFO_MAX - 1) | 
|---|
| 1123 |  | 
|---|
| 1124 | /* VLAN section */ | 
|---|
| 1125 |  | 
|---|
| 1126 | enum { | 
|---|
| 1127 | IFLA_VLAN_UNSPEC, | 
|---|
| 1128 | IFLA_VLAN_ID, | 
|---|
| 1129 | IFLA_VLAN_FLAGS, | 
|---|
| 1130 | IFLA_VLAN_EGRESS_QOS, | 
|---|
| 1131 | IFLA_VLAN_INGRESS_QOS, | 
|---|
| 1132 | IFLA_VLAN_PROTOCOL, | 
|---|
| 1133 | __IFLA_VLAN_MAX, | 
|---|
| 1134 | }; | 
|---|
| 1135 |  | 
|---|
| 1136 | #define IFLA_VLAN_MAX	(__IFLA_VLAN_MAX - 1) | 
|---|
| 1137 |  | 
|---|
| 1138 | struct ifla_vlan_flags { | 
|---|
| 1139 | __u32	flags; | 
|---|
| 1140 | __u32	mask; | 
|---|
| 1141 | }; | 
|---|
| 1142 |  | 
|---|
| 1143 | enum { | 
|---|
| 1144 | IFLA_VLAN_QOS_UNSPEC, | 
|---|
| 1145 | IFLA_VLAN_QOS_MAPPING, | 
|---|
| 1146 | __IFLA_VLAN_QOS_MAX | 
|---|
| 1147 | }; | 
|---|
| 1148 |  | 
|---|
| 1149 | #define IFLA_VLAN_QOS_MAX	(__IFLA_VLAN_QOS_MAX - 1) | 
|---|
| 1150 |  | 
|---|
| 1151 | struct ifla_vlan_qos_mapping { | 
|---|
| 1152 | __u32 from; | 
|---|
| 1153 | __u32 to; | 
|---|
| 1154 | }; | 
|---|
| 1155 |  | 
|---|
| 1156 | /* MACVLAN section */ | 
|---|
| 1157 | enum { | 
|---|
| 1158 | IFLA_MACVLAN_UNSPEC, | 
|---|
| 1159 | IFLA_MACVLAN_MODE, | 
|---|
| 1160 | IFLA_MACVLAN_FLAGS, | 
|---|
| 1161 | IFLA_MACVLAN_MACADDR_MODE, | 
|---|
| 1162 | IFLA_MACVLAN_MACADDR, | 
|---|
| 1163 | IFLA_MACVLAN_MACADDR_DATA, | 
|---|
| 1164 | IFLA_MACVLAN_MACADDR_COUNT, | 
|---|
| 1165 | IFLA_MACVLAN_BC_QUEUE_LEN, | 
|---|
| 1166 | IFLA_MACVLAN_BC_QUEUE_LEN_USED, | 
|---|
| 1167 | IFLA_MACVLAN_BC_CUTOFF, | 
|---|
| 1168 | __IFLA_MACVLAN_MAX, | 
|---|
| 1169 | }; | 
|---|
| 1170 |  | 
|---|
| 1171 | #define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1) | 
|---|
| 1172 |  | 
|---|
| 1173 | enum macvlan_mode { | 
|---|
| 1174 | MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */ | 
|---|
| 1175 | MACVLAN_MODE_VEPA    = 2, /* talk to other ports through ext bridge */ | 
|---|
| 1176 | MACVLAN_MODE_BRIDGE  = 4, /* talk to bridge ports directly */ | 
|---|
| 1177 | MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */ | 
|---|
| 1178 | MACVLAN_MODE_SOURCE  = 16,/* use source MAC address list to assign */ | 
|---|
| 1179 | }; | 
|---|
| 1180 |  | 
|---|
| 1181 | enum macvlan_macaddr_mode { | 
|---|
| 1182 | MACVLAN_MACADDR_ADD, | 
|---|
| 1183 | MACVLAN_MACADDR_DEL, | 
|---|
| 1184 | MACVLAN_MACADDR_FLUSH, | 
|---|
| 1185 | MACVLAN_MACADDR_SET, | 
|---|
| 1186 | }; | 
|---|
| 1187 |  | 
|---|
| 1188 | #define MACVLAN_FLAG_NOPROMISC	1 | 
|---|
| 1189 | #define MACVLAN_FLAG_NODST	2 /* skip dst macvlan if matching src macvlan */ | 
|---|
| 1190 |  | 
|---|
| 1191 | /* VRF section */ | 
|---|
| 1192 | enum { | 
|---|
| 1193 | IFLA_VRF_UNSPEC, | 
|---|
| 1194 | IFLA_VRF_TABLE, | 
|---|
| 1195 | __IFLA_VRF_MAX | 
|---|
| 1196 | }; | 
|---|
| 1197 |  | 
|---|
| 1198 | #define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1) | 
|---|
| 1199 |  | 
|---|
| 1200 | enum { | 
|---|
| 1201 | IFLA_VRF_PORT_UNSPEC, | 
|---|
| 1202 | IFLA_VRF_PORT_TABLE, | 
|---|
| 1203 | __IFLA_VRF_PORT_MAX | 
|---|
| 1204 | }; | 
|---|
| 1205 |  | 
|---|
| 1206 | #define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1) | 
|---|
| 1207 |  | 
|---|
| 1208 | /* MACSEC section */ | 
|---|
| 1209 | enum { | 
|---|
| 1210 | IFLA_MACSEC_UNSPEC, | 
|---|
| 1211 | IFLA_MACSEC_SCI, | 
|---|
| 1212 | IFLA_MACSEC_PORT, | 
|---|
| 1213 | IFLA_MACSEC_ICV_LEN, | 
|---|
| 1214 | IFLA_MACSEC_CIPHER_SUITE, | 
|---|
| 1215 | IFLA_MACSEC_WINDOW, | 
|---|
| 1216 | IFLA_MACSEC_ENCODING_SA, | 
|---|
| 1217 | IFLA_MACSEC_ENCRYPT, | 
|---|
| 1218 | IFLA_MACSEC_PROTECT, | 
|---|
| 1219 | IFLA_MACSEC_INC_SCI, | 
|---|
| 1220 | IFLA_MACSEC_ES, | 
|---|
| 1221 | IFLA_MACSEC_SCB, | 
|---|
| 1222 | IFLA_MACSEC_REPLAY_PROTECT, | 
|---|
| 1223 | IFLA_MACSEC_VALIDATION, | 
|---|
| 1224 | IFLA_MACSEC_PAD, | 
|---|
| 1225 | IFLA_MACSEC_OFFLOAD, | 
|---|
| 1226 | __IFLA_MACSEC_MAX, | 
|---|
| 1227 | }; | 
|---|
| 1228 |  | 
|---|
| 1229 | #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) | 
|---|
| 1230 |  | 
|---|
| 1231 | /* XFRM section */ | 
|---|
| 1232 | enum { | 
|---|
| 1233 | IFLA_XFRM_UNSPEC, | 
|---|
| 1234 | IFLA_XFRM_LINK, | 
|---|
| 1235 | IFLA_XFRM_IF_ID, | 
|---|
| 1236 | IFLA_XFRM_COLLECT_METADATA, | 
|---|
| 1237 | __IFLA_XFRM_MAX | 
|---|
| 1238 | }; | 
|---|
| 1239 |  | 
|---|
| 1240 | #define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1) | 
|---|
| 1241 |  | 
|---|
| 1242 | enum macsec_validation_type { | 
|---|
| 1243 | MACSEC_VALIDATE_DISABLED = 0, | 
|---|
| 1244 | MACSEC_VALIDATE_CHECK = 1, | 
|---|
| 1245 | MACSEC_VALIDATE_STRICT = 2, | 
|---|
| 1246 | __MACSEC_VALIDATE_END, | 
|---|
| 1247 | MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1, | 
|---|
| 1248 | }; | 
|---|
| 1249 |  | 
|---|
| 1250 | enum macsec_offload { | 
|---|
| 1251 | MACSEC_OFFLOAD_OFF = 0, | 
|---|
| 1252 | MACSEC_OFFLOAD_PHY = 1, | 
|---|
| 1253 | MACSEC_OFFLOAD_MAC = 2, | 
|---|
| 1254 | __MACSEC_OFFLOAD_END, | 
|---|
| 1255 | MACSEC_OFFLOAD_MAX = __MACSEC_OFFLOAD_END - 1, | 
|---|
| 1256 | }; | 
|---|
| 1257 |  | 
|---|
| 1258 | /* IPVLAN section */ | 
|---|
| 1259 | enum { | 
|---|
| 1260 | IFLA_IPVLAN_UNSPEC, | 
|---|
| 1261 | IFLA_IPVLAN_MODE, | 
|---|
| 1262 | IFLA_IPVLAN_FLAGS, | 
|---|
| 1263 | __IFLA_IPVLAN_MAX | 
|---|
| 1264 | }; | 
|---|
| 1265 |  | 
|---|
| 1266 | #define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1) | 
|---|
| 1267 |  | 
|---|
| 1268 | enum ipvlan_mode { | 
|---|
| 1269 | IPVLAN_MODE_L2 = 0, | 
|---|
| 1270 | IPVLAN_MODE_L3, | 
|---|
| 1271 | IPVLAN_MODE_L3S, | 
|---|
| 1272 | IPVLAN_MODE_MAX | 
|---|
| 1273 | }; | 
|---|
| 1274 |  | 
|---|
| 1275 | #define IPVLAN_F_PRIVATE	0x01 | 
|---|
| 1276 | #define IPVLAN_F_VEPA		0x02 | 
|---|
| 1277 |  | 
|---|
| 1278 | /* Tunnel RTM header */ | 
|---|
| 1279 | struct tunnel_msg { | 
|---|
| 1280 | __u8 family; | 
|---|
| 1281 | __u8 flags; | 
|---|
| 1282 | __u16 reserved2; | 
|---|
| 1283 | __u32 ifindex; | 
|---|
| 1284 | }; | 
|---|
| 1285 |  | 
|---|
| 1286 | /* netkit section */ | 
|---|
| 1287 | enum netkit_action { | 
|---|
| 1288 | NETKIT_NEXT	= -1, | 
|---|
| 1289 | NETKIT_PASS	= 0, | 
|---|
| 1290 | NETKIT_DROP	= 2, | 
|---|
| 1291 | NETKIT_REDIRECT	= 7, | 
|---|
| 1292 | }; | 
|---|
| 1293 |  | 
|---|
| 1294 | enum netkit_mode { | 
|---|
| 1295 | NETKIT_L2, | 
|---|
| 1296 | NETKIT_L3, | 
|---|
| 1297 | }; | 
|---|
| 1298 |  | 
|---|
| 1299 | /* NETKIT_SCRUB_NONE leaves clearing skb->{mark,priority} up to | 
|---|
| 1300 | * the BPF program if attached. This also means the latter can | 
|---|
| 1301 | * consume the two fields if they were populated earlier. | 
|---|
| 1302 | * | 
|---|
| 1303 | * NETKIT_SCRUB_DEFAULT zeroes skb->{mark,priority} fields before | 
|---|
| 1304 | * invoking the attached BPF program when the peer device resides | 
|---|
| 1305 | * in a different network namespace. This is the default behavior. | 
|---|
| 1306 | */ | 
|---|
| 1307 | enum netkit_scrub { | 
|---|
| 1308 | NETKIT_SCRUB_NONE, | 
|---|
| 1309 | NETKIT_SCRUB_DEFAULT, | 
|---|
| 1310 | }; | 
|---|
| 1311 |  | 
|---|
| 1312 | enum { | 
|---|
| 1313 | IFLA_NETKIT_UNSPEC, | 
|---|
| 1314 | IFLA_NETKIT_PEER_INFO, | 
|---|
| 1315 | IFLA_NETKIT_PRIMARY, | 
|---|
| 1316 | IFLA_NETKIT_POLICY, | 
|---|
| 1317 | IFLA_NETKIT_PEER_POLICY, | 
|---|
| 1318 | IFLA_NETKIT_MODE, | 
|---|
| 1319 | IFLA_NETKIT_SCRUB, | 
|---|
| 1320 | IFLA_NETKIT_PEER_SCRUB, | 
|---|
| 1321 | IFLA_NETKIT_HEADROOM, | 
|---|
| 1322 | IFLA_NETKIT_TAILROOM, | 
|---|
| 1323 | __IFLA_NETKIT_MAX, | 
|---|
| 1324 | }; | 
|---|
| 1325 | #define IFLA_NETKIT_MAX	(__IFLA_NETKIT_MAX - 1) | 
|---|
| 1326 |  | 
|---|
| 1327 | /* VXLAN section */ | 
|---|
| 1328 |  | 
|---|
| 1329 | /* include statistics in the dump */ | 
|---|
| 1330 | #define TUNNEL_MSG_FLAG_STATS	0x01 | 
|---|
| 1331 |  | 
|---|
| 1332 | #define TUNNEL_MSG_VALID_USER_FLAGS TUNNEL_MSG_FLAG_STATS | 
|---|
| 1333 |  | 
|---|
| 1334 | /* Embedded inside VXLAN_VNIFILTER_ENTRY_STATS */ | 
|---|
| 1335 | enum { | 
|---|
| 1336 | VNIFILTER_ENTRY_STATS_UNSPEC, | 
|---|
| 1337 | VNIFILTER_ENTRY_STATS_RX_BYTES, | 
|---|
| 1338 | VNIFILTER_ENTRY_STATS_RX_PKTS, | 
|---|
| 1339 | VNIFILTER_ENTRY_STATS_RX_DROPS, | 
|---|
| 1340 | VNIFILTER_ENTRY_STATS_RX_ERRORS, | 
|---|
| 1341 | VNIFILTER_ENTRY_STATS_TX_BYTES, | 
|---|
| 1342 | VNIFILTER_ENTRY_STATS_TX_PKTS, | 
|---|
| 1343 | VNIFILTER_ENTRY_STATS_TX_DROPS, | 
|---|
| 1344 | VNIFILTER_ENTRY_STATS_TX_ERRORS, | 
|---|
| 1345 | VNIFILTER_ENTRY_STATS_PAD, | 
|---|
| 1346 | __VNIFILTER_ENTRY_STATS_MAX | 
|---|
| 1347 | }; | 
|---|
| 1348 | #define VNIFILTER_ENTRY_STATS_MAX (__VNIFILTER_ENTRY_STATS_MAX - 1) | 
|---|
| 1349 |  | 
|---|
| 1350 | enum { | 
|---|
| 1351 | VXLAN_VNIFILTER_ENTRY_UNSPEC, | 
|---|
| 1352 | VXLAN_VNIFILTER_ENTRY_START, | 
|---|
| 1353 | VXLAN_VNIFILTER_ENTRY_END, | 
|---|
| 1354 | VXLAN_VNIFILTER_ENTRY_GROUP, | 
|---|
| 1355 | VXLAN_VNIFILTER_ENTRY_GROUP6, | 
|---|
| 1356 | VXLAN_VNIFILTER_ENTRY_STATS, | 
|---|
| 1357 | __VXLAN_VNIFILTER_ENTRY_MAX | 
|---|
| 1358 | }; | 
|---|
| 1359 | #define VXLAN_VNIFILTER_ENTRY_MAX	(__VXLAN_VNIFILTER_ENTRY_MAX - 1) | 
|---|
| 1360 |  | 
|---|
| 1361 | enum { | 
|---|
| 1362 | VXLAN_VNIFILTER_UNSPEC, | 
|---|
| 1363 | VXLAN_VNIFILTER_ENTRY, | 
|---|
| 1364 | __VXLAN_VNIFILTER_MAX | 
|---|
| 1365 | }; | 
|---|
| 1366 | #define VXLAN_VNIFILTER_MAX	(__VXLAN_VNIFILTER_MAX - 1) | 
|---|
| 1367 |  | 
|---|
| 1368 | enum { | 
|---|
| 1369 | IFLA_VXLAN_UNSPEC, | 
|---|
| 1370 | IFLA_VXLAN_ID, | 
|---|
| 1371 | IFLA_VXLAN_GROUP,	/* group or remote address */ | 
|---|
| 1372 | IFLA_VXLAN_LINK, | 
|---|
| 1373 | IFLA_VXLAN_LOCAL, | 
|---|
| 1374 | IFLA_VXLAN_TTL, | 
|---|
| 1375 | IFLA_VXLAN_TOS, | 
|---|
| 1376 | IFLA_VXLAN_LEARNING, | 
|---|
| 1377 | IFLA_VXLAN_AGEING, | 
|---|
| 1378 | IFLA_VXLAN_LIMIT, | 
|---|
| 1379 | IFLA_VXLAN_PORT_RANGE,	/* source port */ | 
|---|
| 1380 | IFLA_VXLAN_PROXY, | 
|---|
| 1381 | IFLA_VXLAN_RSC, | 
|---|
| 1382 | IFLA_VXLAN_L2MISS, | 
|---|
| 1383 | IFLA_VXLAN_L3MISS, | 
|---|
| 1384 | IFLA_VXLAN_PORT,	/* destination port */ | 
|---|
| 1385 | IFLA_VXLAN_GROUP6, | 
|---|
| 1386 | IFLA_VXLAN_LOCAL6, | 
|---|
| 1387 | IFLA_VXLAN_UDP_CSUM, | 
|---|
| 1388 | IFLA_VXLAN_UDP_ZERO_CSUM6_TX, | 
|---|
| 1389 | IFLA_VXLAN_UDP_ZERO_CSUM6_RX, | 
|---|
| 1390 | IFLA_VXLAN_REMCSUM_TX, | 
|---|
| 1391 | IFLA_VXLAN_REMCSUM_RX, | 
|---|
| 1392 | IFLA_VXLAN_GBP, | 
|---|
| 1393 | IFLA_VXLAN_REMCSUM_NOPARTIAL, | 
|---|
| 1394 | IFLA_VXLAN_COLLECT_METADATA, | 
|---|
| 1395 | IFLA_VXLAN_LABEL, | 
|---|
| 1396 | IFLA_VXLAN_GPE, | 
|---|
| 1397 | IFLA_VXLAN_TTL_INHERIT, | 
|---|
| 1398 | IFLA_VXLAN_DF, | 
|---|
| 1399 | IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */ | 
|---|
| 1400 | IFLA_VXLAN_LOCALBYPASS, | 
|---|
| 1401 | IFLA_VXLAN_LABEL_POLICY, /* IPv6 flow label policy; ifla_vxlan_label_policy */ | 
|---|
| 1402 | IFLA_VXLAN_RESERVED_BITS, | 
|---|
| 1403 | IFLA_VXLAN_MC_ROUTE, | 
|---|
| 1404 | __IFLA_VXLAN_MAX | 
|---|
| 1405 | }; | 
|---|
| 1406 | #define IFLA_VXLAN_MAX	(__IFLA_VXLAN_MAX - 1) | 
|---|
| 1407 |  | 
|---|
| 1408 | struct ifla_vxlan_port_range { | 
|---|
| 1409 | __be16	low; | 
|---|
| 1410 | __be16	high; | 
|---|
| 1411 | }; | 
|---|
| 1412 |  | 
|---|
| 1413 | enum ifla_vxlan_df { | 
|---|
| 1414 | VXLAN_DF_UNSET = 0, | 
|---|
| 1415 | VXLAN_DF_SET, | 
|---|
| 1416 | VXLAN_DF_INHERIT, | 
|---|
| 1417 | __VXLAN_DF_END, | 
|---|
| 1418 | VXLAN_DF_MAX = __VXLAN_DF_END - 1, | 
|---|
| 1419 | }; | 
|---|
| 1420 |  | 
|---|
| 1421 | enum ifla_vxlan_label_policy { | 
|---|
| 1422 | VXLAN_LABEL_FIXED = 0, | 
|---|
| 1423 | VXLAN_LABEL_INHERIT = 1, | 
|---|
| 1424 | __VXLAN_LABEL_END, | 
|---|
| 1425 | VXLAN_LABEL_MAX = __VXLAN_LABEL_END - 1, | 
|---|
| 1426 | }; | 
|---|
| 1427 |  | 
|---|
| 1428 | /* GENEVE section */ | 
|---|
| 1429 | enum { | 
|---|
| 1430 | IFLA_GENEVE_UNSPEC, | 
|---|
| 1431 | IFLA_GENEVE_ID, | 
|---|
| 1432 | IFLA_GENEVE_REMOTE, | 
|---|
| 1433 | IFLA_GENEVE_TTL, | 
|---|
| 1434 | IFLA_GENEVE_TOS, | 
|---|
| 1435 | IFLA_GENEVE_PORT,	/* destination port */ | 
|---|
| 1436 | IFLA_GENEVE_COLLECT_METADATA, | 
|---|
| 1437 | IFLA_GENEVE_REMOTE6, | 
|---|
| 1438 | IFLA_GENEVE_UDP_CSUM, | 
|---|
| 1439 | IFLA_GENEVE_UDP_ZERO_CSUM6_TX, | 
|---|
| 1440 | IFLA_GENEVE_UDP_ZERO_CSUM6_RX, | 
|---|
| 1441 | IFLA_GENEVE_LABEL, | 
|---|
| 1442 | IFLA_GENEVE_TTL_INHERIT, | 
|---|
| 1443 | IFLA_GENEVE_DF, | 
|---|
| 1444 | IFLA_GENEVE_INNER_PROTO_INHERIT, | 
|---|
| 1445 | IFLA_GENEVE_PORT_RANGE, | 
|---|
| 1446 | __IFLA_GENEVE_MAX | 
|---|
| 1447 | }; | 
|---|
| 1448 | #define IFLA_GENEVE_MAX	(__IFLA_GENEVE_MAX - 1) | 
|---|
| 1449 |  | 
|---|
| 1450 | enum ifla_geneve_df { | 
|---|
| 1451 | GENEVE_DF_UNSET = 0, | 
|---|
| 1452 | GENEVE_DF_SET, | 
|---|
| 1453 | GENEVE_DF_INHERIT, | 
|---|
| 1454 | __GENEVE_DF_END, | 
|---|
| 1455 | GENEVE_DF_MAX = __GENEVE_DF_END - 1, | 
|---|
| 1456 | }; | 
|---|
| 1457 |  | 
|---|
| 1458 | struct ifla_geneve_port_range { | 
|---|
| 1459 | __be16 low; | 
|---|
| 1460 | __be16 high; | 
|---|
| 1461 | }; | 
|---|
| 1462 |  | 
|---|
| 1463 | /* Bareudp section  */ | 
|---|
| 1464 | enum { | 
|---|
| 1465 | IFLA_BAREUDP_UNSPEC, | 
|---|
| 1466 | IFLA_BAREUDP_PORT, | 
|---|
| 1467 | IFLA_BAREUDP_ETHERTYPE, | 
|---|
| 1468 | IFLA_BAREUDP_SRCPORT_MIN, | 
|---|
| 1469 | IFLA_BAREUDP_MULTIPROTO_MODE, | 
|---|
| 1470 | __IFLA_BAREUDP_MAX | 
|---|
| 1471 | }; | 
|---|
| 1472 |  | 
|---|
| 1473 | #define IFLA_BAREUDP_MAX (__IFLA_BAREUDP_MAX - 1) | 
|---|
| 1474 |  | 
|---|
| 1475 | /* PPP section */ | 
|---|
| 1476 | enum { | 
|---|
| 1477 | IFLA_PPP_UNSPEC, | 
|---|
| 1478 | IFLA_PPP_DEV_FD, | 
|---|
| 1479 | __IFLA_PPP_MAX | 
|---|
| 1480 | }; | 
|---|
| 1481 | #define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1) | 
|---|
| 1482 |  | 
|---|
| 1483 | /* GTP section */ | 
|---|
| 1484 |  | 
|---|
| 1485 | enum ifla_gtp_role { | 
|---|
| 1486 | GTP_ROLE_GGSN = 0, | 
|---|
| 1487 | GTP_ROLE_SGSN, | 
|---|
| 1488 | }; | 
|---|
| 1489 |  | 
|---|
| 1490 | enum { | 
|---|
| 1491 | IFLA_GTP_UNSPEC, | 
|---|
| 1492 | IFLA_GTP_FD0, | 
|---|
| 1493 | IFLA_GTP_FD1, | 
|---|
| 1494 | IFLA_GTP_PDP_HASHSIZE, | 
|---|
| 1495 | IFLA_GTP_ROLE, | 
|---|
| 1496 | IFLA_GTP_CREATE_SOCKETS, | 
|---|
| 1497 | IFLA_GTP_RESTART_COUNT, | 
|---|
| 1498 | IFLA_GTP_LOCAL, | 
|---|
| 1499 | IFLA_GTP_LOCAL6, | 
|---|
| 1500 | __IFLA_GTP_MAX, | 
|---|
| 1501 | }; | 
|---|
| 1502 | #define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1) | 
|---|
| 1503 |  | 
|---|
| 1504 | /* Bonding section */ | 
|---|
| 1505 |  | 
|---|
| 1506 | enum { | 
|---|
| 1507 | IFLA_BOND_UNSPEC, | 
|---|
| 1508 | IFLA_BOND_MODE, | 
|---|
| 1509 | IFLA_BOND_ACTIVE_SLAVE, | 
|---|
| 1510 | IFLA_BOND_MIIMON, | 
|---|
| 1511 | IFLA_BOND_UPDELAY, | 
|---|
| 1512 | IFLA_BOND_DOWNDELAY, | 
|---|
| 1513 | IFLA_BOND_USE_CARRIER, | 
|---|
| 1514 | IFLA_BOND_ARP_INTERVAL, | 
|---|
| 1515 | IFLA_BOND_ARP_IP_TARGET, | 
|---|
| 1516 | IFLA_BOND_ARP_VALIDATE, | 
|---|
| 1517 | IFLA_BOND_ARP_ALL_TARGETS, | 
|---|
| 1518 | IFLA_BOND_PRIMARY, | 
|---|
| 1519 | IFLA_BOND_PRIMARY_RESELECT, | 
|---|
| 1520 | IFLA_BOND_FAIL_OVER_MAC, | 
|---|
| 1521 | IFLA_BOND_XMIT_HASH_POLICY, | 
|---|
| 1522 | IFLA_BOND_RESEND_IGMP, | 
|---|
| 1523 | IFLA_BOND_NUM_PEER_NOTIF, | 
|---|
| 1524 | IFLA_BOND_ALL_SLAVES_ACTIVE, | 
|---|
| 1525 | IFLA_BOND_MIN_LINKS, | 
|---|
| 1526 | IFLA_BOND_LP_INTERVAL, | 
|---|
| 1527 | IFLA_BOND_PACKETS_PER_SLAVE, | 
|---|
| 1528 | IFLA_BOND_AD_LACP_RATE, | 
|---|
| 1529 | IFLA_BOND_AD_SELECT, | 
|---|
| 1530 | IFLA_BOND_AD_INFO, | 
|---|
| 1531 | IFLA_BOND_AD_ACTOR_SYS_PRIO, | 
|---|
| 1532 | IFLA_BOND_AD_USER_PORT_KEY, | 
|---|
| 1533 | IFLA_BOND_AD_ACTOR_SYSTEM, | 
|---|
| 1534 | IFLA_BOND_TLB_DYNAMIC_LB, | 
|---|
| 1535 | IFLA_BOND_PEER_NOTIF_DELAY, | 
|---|
| 1536 | IFLA_BOND_AD_LACP_ACTIVE, | 
|---|
| 1537 | IFLA_BOND_MISSED_MAX, | 
|---|
| 1538 | IFLA_BOND_NS_IP6_TARGET, | 
|---|
| 1539 | IFLA_BOND_COUPLED_CONTROL, | 
|---|
| 1540 | IFLA_BOND_BROADCAST_NEIGH, | 
|---|
| 1541 | __IFLA_BOND_MAX, | 
|---|
| 1542 | }; | 
|---|
| 1543 |  | 
|---|
| 1544 | #define IFLA_BOND_MAX	(__IFLA_BOND_MAX - 1) | 
|---|
| 1545 |  | 
|---|
| 1546 | enum { | 
|---|
| 1547 | IFLA_BOND_AD_INFO_UNSPEC, | 
|---|
| 1548 | IFLA_BOND_AD_INFO_AGGREGATOR, | 
|---|
| 1549 | IFLA_BOND_AD_INFO_NUM_PORTS, | 
|---|
| 1550 | IFLA_BOND_AD_INFO_ACTOR_KEY, | 
|---|
| 1551 | IFLA_BOND_AD_INFO_PARTNER_KEY, | 
|---|
| 1552 | IFLA_BOND_AD_INFO_PARTNER_MAC, | 
|---|
| 1553 | __IFLA_BOND_AD_INFO_MAX, | 
|---|
| 1554 | }; | 
|---|
| 1555 |  | 
|---|
| 1556 | #define IFLA_BOND_AD_INFO_MAX	(__IFLA_BOND_AD_INFO_MAX - 1) | 
|---|
| 1557 |  | 
|---|
| 1558 | enum { | 
|---|
| 1559 | IFLA_BOND_SLAVE_UNSPEC, | 
|---|
| 1560 | IFLA_BOND_SLAVE_STATE, | 
|---|
| 1561 | IFLA_BOND_SLAVE_MII_STATUS, | 
|---|
| 1562 | IFLA_BOND_SLAVE_LINK_FAILURE_COUNT, | 
|---|
| 1563 | IFLA_BOND_SLAVE_PERM_HWADDR, | 
|---|
| 1564 | IFLA_BOND_SLAVE_QUEUE_ID, | 
|---|
| 1565 | IFLA_BOND_SLAVE_AD_AGGREGATOR_ID, | 
|---|
| 1566 | IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE, | 
|---|
| 1567 | IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE, | 
|---|
| 1568 | IFLA_BOND_SLAVE_PRIO, | 
|---|
| 1569 | IFLA_BOND_SLAVE_ACTOR_PORT_PRIO, | 
|---|
| 1570 | __IFLA_BOND_SLAVE_MAX, | 
|---|
| 1571 | }; | 
|---|
| 1572 |  | 
|---|
| 1573 | #define IFLA_BOND_SLAVE_MAX	(__IFLA_BOND_SLAVE_MAX - 1) | 
|---|
| 1574 |  | 
|---|
| 1575 | /* SR-IOV virtual function management section */ | 
|---|
| 1576 |  | 
|---|
| 1577 | enum { | 
|---|
| 1578 | IFLA_VF_INFO_UNSPEC, | 
|---|
| 1579 | IFLA_VF_INFO, | 
|---|
| 1580 | __IFLA_VF_INFO_MAX, | 
|---|
| 1581 | }; | 
|---|
| 1582 |  | 
|---|
| 1583 | #define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1) | 
|---|
| 1584 |  | 
|---|
| 1585 | enum { | 
|---|
| 1586 | IFLA_VF_UNSPEC, | 
|---|
| 1587 | IFLA_VF_MAC,		/* Hardware queue specific attributes */ | 
|---|
| 1588 | IFLA_VF_VLAN,		/* VLAN ID and QoS */ | 
|---|
| 1589 | IFLA_VF_TX_RATE,	/* Max TX Bandwidth Allocation */ | 
|---|
| 1590 | IFLA_VF_SPOOFCHK,	/* Spoof Checking on/off switch */ | 
|---|
| 1591 | IFLA_VF_LINK_STATE,	/* link state enable/disable/auto switch */ | 
|---|
| 1592 | IFLA_VF_RATE,		/* Min and Max TX Bandwidth Allocation */ | 
|---|
| 1593 | ,	/* RSS Redirection Table and Hash Key query | 
|---|
| 1594 | * on/off switch | 
|---|
| 1595 | */ | 
|---|
| 1596 | IFLA_VF_STATS,		/* network device statistics */ | 
|---|
| 1597 | IFLA_VF_TRUST,		/* Trust VF */ | 
|---|
| 1598 | IFLA_VF_IB_NODE_GUID,	/* VF Infiniband node GUID */ | 
|---|
| 1599 | IFLA_VF_IB_PORT_GUID,	/* VF Infiniband port GUID */ | 
|---|
| 1600 | IFLA_VF_VLAN_LIST,	/* nested list of vlans, option for QinQ */ | 
|---|
| 1601 | IFLA_VF_BROADCAST,	/* VF broadcast */ | 
|---|
| 1602 | __IFLA_VF_MAX, | 
|---|
| 1603 | }; | 
|---|
| 1604 |  | 
|---|
| 1605 | #define IFLA_VF_MAX (__IFLA_VF_MAX - 1) | 
|---|
| 1606 |  | 
|---|
| 1607 | struct ifla_vf_mac { | 
|---|
| 1608 | __u32 vf; | 
|---|
| 1609 | __u8 mac[32]; /* MAX_ADDR_LEN */ | 
|---|
| 1610 | }; | 
|---|
| 1611 |  | 
|---|
| 1612 | struct ifla_vf_broadcast { | 
|---|
| 1613 | __u8 broadcast[32]; | 
|---|
| 1614 | }; | 
|---|
| 1615 |  | 
|---|
| 1616 | struct ifla_vf_vlan { | 
|---|
| 1617 | __u32 vf; | 
|---|
| 1618 | __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ | 
|---|
| 1619 | __u32 qos; | 
|---|
| 1620 | }; | 
|---|
| 1621 |  | 
|---|
| 1622 | enum { | 
|---|
| 1623 | IFLA_VF_VLAN_INFO_UNSPEC, | 
|---|
| 1624 | IFLA_VF_VLAN_INFO,	/* VLAN ID, QoS and VLAN protocol */ | 
|---|
| 1625 | __IFLA_VF_VLAN_INFO_MAX, | 
|---|
| 1626 | }; | 
|---|
| 1627 |  | 
|---|
| 1628 | #define IFLA_VF_VLAN_INFO_MAX (__IFLA_VF_VLAN_INFO_MAX - 1) | 
|---|
| 1629 | #define MAX_VLAN_LIST_LEN 1 | 
|---|
| 1630 |  | 
|---|
| 1631 | struct ifla_vf_vlan_info { | 
|---|
| 1632 | __u32 vf; | 
|---|
| 1633 | __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ | 
|---|
| 1634 | __u32 qos; | 
|---|
| 1635 | __be16 vlan_proto; /* VLAN protocol either 802.1Q or 802.1ad */ | 
|---|
| 1636 | }; | 
|---|
| 1637 |  | 
|---|
| 1638 | struct ifla_vf_tx_rate { | 
|---|
| 1639 | __u32 vf; | 
|---|
| 1640 | __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ | 
|---|
| 1641 | }; | 
|---|
| 1642 |  | 
|---|
| 1643 | struct ifla_vf_rate { | 
|---|
| 1644 | __u32 vf; | 
|---|
| 1645 | __u32 min_tx_rate; /* Min Bandwidth in Mbps */ | 
|---|
| 1646 | __u32 max_tx_rate; /* Max Bandwidth in Mbps */ | 
|---|
| 1647 | }; | 
|---|
| 1648 |  | 
|---|
| 1649 | struct ifla_vf_spoofchk { | 
|---|
| 1650 | __u32 vf; | 
|---|
| 1651 | __u32 setting; | 
|---|
| 1652 | }; | 
|---|
| 1653 |  | 
|---|
| 1654 | struct ifla_vf_guid { | 
|---|
| 1655 | __u32 vf; | 
|---|
| 1656 | __u64 guid; | 
|---|
| 1657 | }; | 
|---|
| 1658 |  | 
|---|
| 1659 | enum { | 
|---|
| 1660 | IFLA_VF_LINK_STATE_AUTO,	/* link state of the uplink */ | 
|---|
| 1661 | IFLA_VF_LINK_STATE_ENABLE,	/* link always up */ | 
|---|
| 1662 | IFLA_VF_LINK_STATE_DISABLE,	/* link always down */ | 
|---|
| 1663 | __IFLA_VF_LINK_STATE_MAX, | 
|---|
| 1664 | }; | 
|---|
| 1665 |  | 
|---|
| 1666 | struct ifla_vf_link_state { | 
|---|
| 1667 | __u32 vf; | 
|---|
| 1668 | __u32 link_state; | 
|---|
| 1669 | }; | 
|---|
| 1670 |  | 
|---|
| 1671 | struct  { | 
|---|
| 1672 | __u32 ; | 
|---|
| 1673 | __u32 ; | 
|---|
| 1674 | }; | 
|---|
| 1675 |  | 
|---|
| 1676 | enum { | 
|---|
| 1677 | IFLA_VF_STATS_RX_PACKETS, | 
|---|
| 1678 | IFLA_VF_STATS_TX_PACKETS, | 
|---|
| 1679 | IFLA_VF_STATS_RX_BYTES, | 
|---|
| 1680 | IFLA_VF_STATS_TX_BYTES, | 
|---|
| 1681 | IFLA_VF_STATS_BROADCAST, | 
|---|
| 1682 | IFLA_VF_STATS_MULTICAST, | 
|---|
| 1683 | IFLA_VF_STATS_PAD, | 
|---|
| 1684 | IFLA_VF_STATS_RX_DROPPED, | 
|---|
| 1685 | IFLA_VF_STATS_TX_DROPPED, | 
|---|
| 1686 | __IFLA_VF_STATS_MAX, | 
|---|
| 1687 | }; | 
|---|
| 1688 |  | 
|---|
| 1689 | #define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1) | 
|---|
| 1690 |  | 
|---|
| 1691 | struct ifla_vf_trust { | 
|---|
| 1692 | __u32 vf; | 
|---|
| 1693 | __u32 setting; | 
|---|
| 1694 | }; | 
|---|
| 1695 |  | 
|---|
| 1696 | /* VF ports management section | 
|---|
| 1697 | * | 
|---|
| 1698 | *	Nested layout of set/get msg is: | 
|---|
| 1699 | * | 
|---|
| 1700 | *		[IFLA_NUM_VF] | 
|---|
| 1701 | *		[IFLA_VF_PORTS] | 
|---|
| 1702 | *			[IFLA_VF_PORT] | 
|---|
| 1703 | *				[IFLA_PORT_*], ... | 
|---|
| 1704 | *			[IFLA_VF_PORT] | 
|---|
| 1705 | *				[IFLA_PORT_*], ... | 
|---|
| 1706 | *			... | 
|---|
| 1707 | *		[IFLA_PORT_SELF] | 
|---|
| 1708 | *			[IFLA_PORT_*], ... | 
|---|
| 1709 | */ | 
|---|
| 1710 |  | 
|---|
| 1711 | enum { | 
|---|
| 1712 | IFLA_VF_PORT_UNSPEC, | 
|---|
| 1713 | IFLA_VF_PORT,			/* nest */ | 
|---|
| 1714 | __IFLA_VF_PORT_MAX, | 
|---|
| 1715 | }; | 
|---|
| 1716 |  | 
|---|
| 1717 | #define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1) | 
|---|
| 1718 |  | 
|---|
| 1719 | enum { | 
|---|
| 1720 | IFLA_PORT_UNSPEC, | 
|---|
| 1721 | IFLA_PORT_VF,			/* __u32 */ | 
|---|
| 1722 | IFLA_PORT_PROFILE,		/* string */ | 
|---|
| 1723 | IFLA_PORT_VSI_TYPE,		/* 802.1Qbg (pre-)standard VDP */ | 
|---|
| 1724 | IFLA_PORT_INSTANCE_UUID,	/* binary UUID */ | 
|---|
| 1725 | IFLA_PORT_HOST_UUID,		/* binary UUID */ | 
|---|
| 1726 | IFLA_PORT_REQUEST,		/* __u8 */ | 
|---|
| 1727 | IFLA_PORT_RESPONSE,		/* __u16, output only */ | 
|---|
| 1728 | __IFLA_PORT_MAX, | 
|---|
| 1729 | }; | 
|---|
| 1730 |  | 
|---|
| 1731 | #define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1) | 
|---|
| 1732 |  | 
|---|
| 1733 | #define PORT_PROFILE_MAX	40 | 
|---|
| 1734 | #define PORT_UUID_MAX		16 | 
|---|
| 1735 | #define PORT_SELF_VF		-1 | 
|---|
| 1736 |  | 
|---|
| 1737 | enum { | 
|---|
| 1738 | PORT_REQUEST_PREASSOCIATE = 0, | 
|---|
| 1739 | PORT_REQUEST_PREASSOCIATE_RR, | 
|---|
| 1740 | PORT_REQUEST_ASSOCIATE, | 
|---|
| 1741 | PORT_REQUEST_DISASSOCIATE, | 
|---|
| 1742 | }; | 
|---|
| 1743 |  | 
|---|
| 1744 | enum { | 
|---|
| 1745 | PORT_VDP_RESPONSE_SUCCESS = 0, | 
|---|
| 1746 | PORT_VDP_RESPONSE_INVALID_FORMAT, | 
|---|
| 1747 | PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES, | 
|---|
| 1748 | PORT_VDP_RESPONSE_UNUSED_VTID, | 
|---|
| 1749 | PORT_VDP_RESPONSE_VTID_VIOLATION, | 
|---|
| 1750 | PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION, | 
|---|
| 1751 | PORT_VDP_RESPONSE_OUT_OF_SYNC, | 
|---|
| 1752 | /* 0x08-0xFF reserved for future VDP use */ | 
|---|
| 1753 | PORT_PROFILE_RESPONSE_SUCCESS = 0x100, | 
|---|
| 1754 | PORT_PROFILE_RESPONSE_INPROGRESS, | 
|---|
| 1755 | PORT_PROFILE_RESPONSE_INVALID, | 
|---|
| 1756 | PORT_PROFILE_RESPONSE_BADSTATE, | 
|---|
| 1757 | PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES, | 
|---|
| 1758 | PORT_PROFILE_RESPONSE_ERROR, | 
|---|
| 1759 | }; | 
|---|
| 1760 |  | 
|---|
| 1761 | struct ifla_port_vsi { | 
|---|
| 1762 | __u8 vsi_mgr_id; | 
|---|
| 1763 | __u8 vsi_type_id[3]; | 
|---|
| 1764 | __u8 vsi_type_version; | 
|---|
| 1765 | __u8 pad[3]; | 
|---|
| 1766 | }; | 
|---|
| 1767 |  | 
|---|
| 1768 |  | 
|---|
| 1769 | /* IPoIB section */ | 
|---|
| 1770 |  | 
|---|
| 1771 | enum { | 
|---|
| 1772 | IFLA_IPOIB_UNSPEC, | 
|---|
| 1773 | IFLA_IPOIB_PKEY, | 
|---|
| 1774 | IFLA_IPOIB_MODE, | 
|---|
| 1775 | IFLA_IPOIB_UMCAST, | 
|---|
| 1776 | __IFLA_IPOIB_MAX | 
|---|
| 1777 | }; | 
|---|
| 1778 |  | 
|---|
| 1779 | enum { | 
|---|
| 1780 | IPOIB_MODE_DATAGRAM  = 0, /* using unreliable datagram QPs */ | 
|---|
| 1781 | IPOIB_MODE_CONNECTED = 1, /* using connected QPs */ | 
|---|
| 1782 | }; | 
|---|
| 1783 |  | 
|---|
| 1784 | #define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1) | 
|---|
| 1785 |  | 
|---|
| 1786 |  | 
|---|
| 1787 | /* HSR/PRP section, both uses same interface */ | 
|---|
| 1788 |  | 
|---|
| 1789 | /* Different redundancy protocols for hsr device */ | 
|---|
| 1790 | enum { | 
|---|
| 1791 | HSR_PROTOCOL_HSR, | 
|---|
| 1792 | HSR_PROTOCOL_PRP, | 
|---|
| 1793 | HSR_PROTOCOL_MAX, | 
|---|
| 1794 | }; | 
|---|
| 1795 |  | 
|---|
| 1796 | enum { | 
|---|
| 1797 | IFLA_HSR_UNSPEC, | 
|---|
| 1798 | IFLA_HSR_SLAVE1, | 
|---|
| 1799 | IFLA_HSR_SLAVE2, | 
|---|
| 1800 | IFLA_HSR_MULTICAST_SPEC,	/* Last byte of supervision addr */ | 
|---|
| 1801 | IFLA_HSR_SUPERVISION_ADDR,	/* Supervision frame multicast addr */ | 
|---|
| 1802 | IFLA_HSR_SEQ_NR, | 
|---|
| 1803 | IFLA_HSR_VERSION,		/* HSR version */ | 
|---|
| 1804 | IFLA_HSR_PROTOCOL,		/* Indicate different protocol than | 
|---|
| 1805 | * HSR. For example PRP. | 
|---|
| 1806 | */ | 
|---|
| 1807 | IFLA_HSR_INTERLINK,		/* HSR interlink network device */ | 
|---|
| 1808 | __IFLA_HSR_MAX, | 
|---|
| 1809 | }; | 
|---|
| 1810 |  | 
|---|
| 1811 | #define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1) | 
|---|
| 1812 |  | 
|---|
| 1813 | /* STATS section */ | 
|---|
| 1814 |  | 
|---|
| 1815 | struct if_stats_msg { | 
|---|
| 1816 | __u8  family; | 
|---|
| 1817 | __u8  pad1; | 
|---|
| 1818 | __u16 pad2; | 
|---|
| 1819 | __u32 ifindex; | 
|---|
| 1820 | __u32 filter_mask; | 
|---|
| 1821 | }; | 
|---|
| 1822 |  | 
|---|
| 1823 | /* A stats attribute can be netdev specific or a global stat. | 
|---|
| 1824 | * For netdev stats, lets use the prefix IFLA_STATS_LINK_* | 
|---|
| 1825 | */ | 
|---|
| 1826 | enum { | 
|---|
| 1827 | IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */ | 
|---|
| 1828 | IFLA_STATS_LINK_64, | 
|---|
| 1829 | IFLA_STATS_LINK_XSTATS, | 
|---|
| 1830 | IFLA_STATS_LINK_XSTATS_SLAVE, | 
|---|
| 1831 | IFLA_STATS_LINK_OFFLOAD_XSTATS, | 
|---|
| 1832 | IFLA_STATS_AF_SPEC, | 
|---|
| 1833 | __IFLA_STATS_MAX, | 
|---|
| 1834 | }; | 
|---|
| 1835 |  | 
|---|
| 1836 | #define IFLA_STATS_MAX (__IFLA_STATS_MAX - 1) | 
|---|
| 1837 |  | 
|---|
| 1838 | #define IFLA_STATS_FILTER_BIT(ATTR)	(1 << (ATTR - 1)) | 
|---|
| 1839 |  | 
|---|
| 1840 | enum { | 
|---|
| 1841 | IFLA_STATS_GETSET_UNSPEC, | 
|---|
| 1842 | IFLA_STATS_GET_FILTERS, /* Nest of IFLA_STATS_LINK_xxx, each a u32 with | 
|---|
| 1843 | * a filter mask for the corresponding group. | 
|---|
| 1844 | */ | 
|---|
| 1845 | IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS, /* 0 or 1 as u8 */ | 
|---|
| 1846 | __IFLA_STATS_GETSET_MAX, | 
|---|
| 1847 | }; | 
|---|
| 1848 |  | 
|---|
| 1849 | #define IFLA_STATS_GETSET_MAX (__IFLA_STATS_GETSET_MAX - 1) | 
|---|
| 1850 |  | 
|---|
| 1851 | /* These are embedded into IFLA_STATS_LINK_XSTATS: | 
|---|
| 1852 | * [IFLA_STATS_LINK_XSTATS] | 
|---|
| 1853 | * -> [LINK_XSTATS_TYPE_xxx] | 
|---|
| 1854 | *    -> [rtnl link type specific attributes] | 
|---|
| 1855 | */ | 
|---|
| 1856 | enum { | 
|---|
| 1857 | LINK_XSTATS_TYPE_UNSPEC, | 
|---|
| 1858 | LINK_XSTATS_TYPE_BRIDGE, | 
|---|
| 1859 | LINK_XSTATS_TYPE_BOND, | 
|---|
| 1860 | __LINK_XSTATS_TYPE_MAX | 
|---|
| 1861 | }; | 
|---|
| 1862 | #define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1) | 
|---|
| 1863 |  | 
|---|
| 1864 | /* These are stats embedded into IFLA_STATS_LINK_OFFLOAD_XSTATS */ | 
|---|
| 1865 | enum { | 
|---|
| 1866 | IFLA_OFFLOAD_XSTATS_UNSPEC, | 
|---|
| 1867 | IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */ | 
|---|
| 1868 | IFLA_OFFLOAD_XSTATS_HW_S_INFO,	/* HW stats info. A nest */ | 
|---|
| 1869 | IFLA_OFFLOAD_XSTATS_L3_STATS,	/* struct rtnl_hw_stats64 */ | 
|---|
| 1870 | __IFLA_OFFLOAD_XSTATS_MAX | 
|---|
| 1871 | }; | 
|---|
| 1872 | #define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1) | 
|---|
| 1873 |  | 
|---|
| 1874 | enum { | 
|---|
| 1875 | IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC, | 
|---|
| 1876 | IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST,		/* u8 */ | 
|---|
| 1877 | IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED,		/* u8 */ | 
|---|
| 1878 | __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX, | 
|---|
| 1879 | }; | 
|---|
| 1880 | #define IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX \ | 
|---|
| 1881 | (__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX - 1) | 
|---|
| 1882 |  | 
|---|
| 1883 | /* XDP section */ | 
|---|
| 1884 |  | 
|---|
| 1885 | #define XDP_FLAGS_UPDATE_IF_NOEXIST	(1U << 0) | 
|---|
| 1886 | #define XDP_FLAGS_SKB_MODE		(1U << 1) | 
|---|
| 1887 | #define XDP_FLAGS_DRV_MODE		(1U << 2) | 
|---|
| 1888 | #define XDP_FLAGS_HW_MODE		(1U << 3) | 
|---|
| 1889 | #define XDP_FLAGS_REPLACE		(1U << 4) | 
|---|
| 1890 | #define XDP_FLAGS_MODES			(XDP_FLAGS_SKB_MODE | \ | 
|---|
| 1891 | XDP_FLAGS_DRV_MODE | \ | 
|---|
| 1892 | XDP_FLAGS_HW_MODE) | 
|---|
| 1893 | #define XDP_FLAGS_MASK			(XDP_FLAGS_UPDATE_IF_NOEXIST | \ | 
|---|
| 1894 | XDP_FLAGS_MODES | XDP_FLAGS_REPLACE) | 
|---|
| 1895 |  | 
|---|
| 1896 | /* These are stored into IFLA_XDP_ATTACHED on dump. */ | 
|---|
| 1897 | enum { | 
|---|
| 1898 | XDP_ATTACHED_NONE = 0, | 
|---|
| 1899 | XDP_ATTACHED_DRV, | 
|---|
| 1900 | XDP_ATTACHED_SKB, | 
|---|
| 1901 | XDP_ATTACHED_HW, | 
|---|
| 1902 | XDP_ATTACHED_MULTI, | 
|---|
| 1903 | }; | 
|---|
| 1904 |  | 
|---|
| 1905 | enum { | 
|---|
| 1906 | IFLA_XDP_UNSPEC, | 
|---|
| 1907 | IFLA_XDP_FD, | 
|---|
| 1908 | IFLA_XDP_ATTACHED, | 
|---|
| 1909 | IFLA_XDP_FLAGS, | 
|---|
| 1910 | IFLA_XDP_PROG_ID, | 
|---|
| 1911 | IFLA_XDP_DRV_PROG_ID, | 
|---|
| 1912 | IFLA_XDP_SKB_PROG_ID, | 
|---|
| 1913 | IFLA_XDP_HW_PROG_ID, | 
|---|
| 1914 | IFLA_XDP_EXPECTED_FD, | 
|---|
| 1915 | __IFLA_XDP_MAX, | 
|---|
| 1916 | }; | 
|---|
| 1917 |  | 
|---|
| 1918 | #define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1) | 
|---|
| 1919 |  | 
|---|
| 1920 | enum { | 
|---|
| 1921 | IFLA_EVENT_NONE, | 
|---|
| 1922 | IFLA_EVENT_REBOOT,		/* internal reset / reboot */ | 
|---|
| 1923 | IFLA_EVENT_FEATURES,		/* change in offload features */ | 
|---|
| 1924 | IFLA_EVENT_BONDING_FAILOVER,	/* change in active slave */ | 
|---|
| 1925 | IFLA_EVENT_NOTIFY_PEERS,	/* re-sent grat. arp/ndisc */ | 
|---|
| 1926 | IFLA_EVENT_IGMP_RESEND,		/* re-sent IGMP JOIN */ | 
|---|
| 1927 | IFLA_EVENT_BONDING_OPTIONS,	/* change in bonding options */ | 
|---|
| 1928 | }; | 
|---|
| 1929 |  | 
|---|
| 1930 | /* tun section */ | 
|---|
| 1931 |  | 
|---|
| 1932 | enum { | 
|---|
| 1933 | IFLA_TUN_UNSPEC, | 
|---|
| 1934 | IFLA_TUN_OWNER, | 
|---|
| 1935 | IFLA_TUN_GROUP, | 
|---|
| 1936 | IFLA_TUN_TYPE, | 
|---|
| 1937 | IFLA_TUN_PI, | 
|---|
| 1938 | IFLA_TUN_VNET_HDR, | 
|---|
| 1939 | IFLA_TUN_PERSIST, | 
|---|
| 1940 | IFLA_TUN_MULTI_QUEUE, | 
|---|
| 1941 | IFLA_TUN_NUM_QUEUES, | 
|---|
| 1942 | IFLA_TUN_NUM_DISABLED_QUEUES, | 
|---|
| 1943 | __IFLA_TUN_MAX, | 
|---|
| 1944 | }; | 
|---|
| 1945 |  | 
|---|
| 1946 | #define IFLA_TUN_MAX (__IFLA_TUN_MAX - 1) | 
|---|
| 1947 |  | 
|---|
| 1948 | /* rmnet section */ | 
|---|
| 1949 |  | 
|---|
| 1950 | #define RMNET_FLAGS_INGRESS_DEAGGREGATION         (1U << 0) | 
|---|
| 1951 | #define RMNET_FLAGS_INGRESS_MAP_COMMANDS          (1U << 1) | 
|---|
| 1952 | #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4           (1U << 2) | 
|---|
| 1953 | #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4            (1U << 3) | 
|---|
| 1954 | #define RMNET_FLAGS_INGRESS_MAP_CKSUMV5           (1U << 4) | 
|---|
| 1955 | #define RMNET_FLAGS_EGRESS_MAP_CKSUMV5            (1U << 5) | 
|---|
| 1956 |  | 
|---|
| 1957 | enum { | 
|---|
| 1958 | IFLA_RMNET_UNSPEC, | 
|---|
| 1959 | IFLA_RMNET_MUX_ID, | 
|---|
| 1960 | IFLA_RMNET_FLAGS, | 
|---|
| 1961 | __IFLA_RMNET_MAX, | 
|---|
| 1962 | }; | 
|---|
| 1963 |  | 
|---|
| 1964 | #define IFLA_RMNET_MAX	(__IFLA_RMNET_MAX - 1) | 
|---|
| 1965 |  | 
|---|
| 1966 | struct ifla_rmnet_flags { | 
|---|
| 1967 | __u32	flags; | 
|---|
| 1968 | __u32	mask; | 
|---|
| 1969 | }; | 
|---|
| 1970 |  | 
|---|
| 1971 | /* MCTP section */ | 
|---|
| 1972 |  | 
|---|
| 1973 | enum { | 
|---|
| 1974 | IFLA_MCTP_UNSPEC, | 
|---|
| 1975 | IFLA_MCTP_NET, | 
|---|
| 1976 | IFLA_MCTP_PHYS_BINDING, | 
|---|
| 1977 | __IFLA_MCTP_MAX, | 
|---|
| 1978 | }; | 
|---|
| 1979 |  | 
|---|
| 1980 | #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1) | 
|---|
| 1981 |  | 
|---|
| 1982 | /* DSA section */ | 
|---|
| 1983 |  | 
|---|
| 1984 | enum { | 
|---|
| 1985 | IFLA_DSA_UNSPEC, | 
|---|
| 1986 | IFLA_DSA_CONDUIT, | 
|---|
| 1987 | /* Deprecated, use IFLA_DSA_CONDUIT instead */ | 
|---|
| 1988 | IFLA_DSA_MASTER = IFLA_DSA_CONDUIT, | 
|---|
| 1989 | __IFLA_DSA_MAX, | 
|---|
| 1990 | }; | 
|---|
| 1991 |  | 
|---|
| 1992 | #define IFLA_DSA_MAX	(__IFLA_DSA_MAX - 1) | 
|---|
| 1993 |  | 
|---|
| 1994 | /* OVPN section */ | 
|---|
| 1995 |  | 
|---|
| 1996 | enum ovpn_mode { | 
|---|
| 1997 | OVPN_MODE_P2P, | 
|---|
| 1998 | OVPN_MODE_MP, | 
|---|
| 1999 | }; | 
|---|
| 2000 |  | 
|---|
| 2001 | enum { | 
|---|
| 2002 | IFLA_OVPN_UNSPEC, | 
|---|
| 2003 | IFLA_OVPN_MODE, | 
|---|
| 2004 | __IFLA_OVPN_MAX, | 
|---|
| 2005 | }; | 
|---|
| 2006 |  | 
|---|
| 2007 | #define IFLA_OVPN_MAX	(__IFLA_OVPN_MAX - 1) | 
|---|
| 2008 |  | 
|---|
| 2009 | #endif /* _UAPI_LINUX_IF_LINK_H */ | 
|---|
| 2010 |  | 
|---|