/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_LINUX_IF_LINK_H
#define _UAPI_LINUX_IF_LINK_H
#include <linux/types.h>
#include <linux/netlink.h>
/* This struct should be in sync with struct rtnl_link_stats64 */
struct rtnl_link_stats {
__u32 rx_packets;
__u32 tx_packets;
__u32 rx_bytes;
__u32 tx_bytes;
__u32 rx_errors;
__u32 tx_errors;
__u32 rx_dropped;
__u32 tx_dropped;
__u32 multicast;
__u32 collisions;
/* detailed rx_errors: */
__u32 rx_length_errors;
__u32 rx_over_errors;
__u32 rx_crc_errors;
__u32 rx_frame_errors;
__u32 rx_fifo_errors;
__u32 rx_missed_errors;
/* detailed tx_errors */
__u32 tx_aborted_errors;
__u32 tx_carrier_errors;
__u32 tx_fifo_errors;
__u32 tx_heartbeat_errors;
__u32 tx_window_errors;
/* for cslip etc */
__u32 rx_compressed;
__u32 tx_compressed;
__u32 rx_nohandler;
};
/**
* struct rtnl_link_stats64 - The main device statistics structure .
*
* @ rx_packets : Number of good packets received by the interface .
* For hardware interfaces counts all good packets received from the device
* by the host , including packets which host had to drop at various stages
* of processing ( even in the driver ) .
*
* @ tx_packets : Number of packets successfully transmitted .
* For hardware interfaces counts packets which host was able to successfully
* hand over to the device , which does not necessarily mean that packets
* had been successfully transmitted out of the device , only that device
* acknowledged it copied them out of host memory .
*
* @ rx_bytes : Number of good received bytes , corresponding to @ rx_packets .
*
* For IEEE 802 . 3 devices should count the length of Ethernet Frames
* excluding the FCS .
*
* @ tx_bytes : Number of good transmitted bytes , corresponding to @ tx_packets .
*
* For IEEE 802 . 3 devices should count the length of Ethernet Frames
* excluding the FCS .
*
* @ rx_errors : Total number of bad packets received on this network device .
* This counter must include events counted by @ rx_length_errors ,
* @ rx_crc_errors , @ rx_frame_errors and other errors not otherwise
* counted .
*
* @ tx_errors : Total number of transmit problems .
* This counter must include events counter by @ tx_aborted_errors ,
* @ tx_carrier_errors , @ tx_fifo_errors , @ tx_heartbeat_errors ,
* @ tx_window_errors and other errors not otherwise counted .
*
* @ rx_dropped : Number of packets received but not processed ,
* e . g . due to lack of resources or unsupported protocol .
* For hardware interfaces this counter may include packets discarded
* due to L2 address filtering but should not include packets dropped
* by the device due to buffer exhaustion which are counted separately in
* @ rx_missed_errors ( since procfs folds those two counters together ) .
*
* @ tx_dropped : Number of packets dropped on their way to transmission ,
* e . g . due to lack of resources .
*
* @ multicast : Multicast packets received .
* For hardware interfaces this statistic is commonly calculated
* at the device level ( unlike @ rx_packets ) and therefore may include
* packets which did not reach the host .
*
* For IEEE 802 . 3 devices this counter may be equivalent to :
*
* - 30 . 3 . 1 . 1 . 21 aMulticastFramesReceivedOK
*
* @ collisions : Number of collisions during packet transmissions .
*
* @ rx_length_errors : Number of packets dropped due to invalid length .
* Part of aggregate " frame " errors in ` / proc / net / dev ` .
*
* For IEEE 802 . 3 devices this counter should be equivalent to a sum
* of the following attributes :
*
* - 30 . 3 . 1 . 1 . 23 aInRangeLengthErrors
* - 30 . 3 . 1 . 1 . 24 aOutOfRangeLengthField
* - 30 . 3 . 1 . 1 . 25 aFrameTooLongErrors
*
* @ rx_over_errors : Receiver FIFO overflow event counter .
*
* Historically the count of overflow events . Such events may be
* reported in the receive descriptors or via interrupts , and may
* not correspond one - to - one with dropped packets .
*
* The recommended interpretation for high speed interfaces is -
* number of packets dropped because they did not fit into buffers
* provided by the host , e . g . packets larger than MTU or next buffer
* in the ring was not available for a scatter transfer .
*
* Part of aggregate " frame " errors in ` / proc / net / dev ` .
*
* This statistics was historically used interchangeably with
* @ rx_fifo_errors .
*
* This statistic corresponds to hardware events and is not commonly used
* on software devices .
*
* @ rx_crc_errors : Number of packets received with a CRC error .
* Part of aggregate " frame " errors in ` / proc / net / dev ` .
*
* For IEEE 802 . 3 devices this counter must be equivalent to :
*
* - 30 . 3 . 1 . 1 . 6 aFrameCheckSequenceErrors
*
* @ rx_frame_errors : Receiver frame alignment errors .
* Part of aggregate " frame " errors in ` / proc / net / dev ` .
*
* For IEEE 802 . 3 devices this counter should be equivalent to :
*
* - 30 . 3 . 1 . 1 . 7 aAlignmentErrors
*
* @ rx_fifo_errors : Receiver FIFO error counter .
*
* Historically the count of overflow events . Those events may be
* reported in the receive descriptors or via interrupts , and may
* not correspond one - to - one with dropped packets .
*
* This statistics was used interchangeably with @ rx_over_errors .
* Not recommended for use in drivers for high speed interfaces .
*
* This statistic is used on software devices , e . g . to count software
* packet queue overflow ( can ) or sequencing errors ( GRE ) .
*
* @ rx_missed_errors : Count of packets missed by the host .
* Folded into the " drop " counter in ` / proc / net / dev ` .
*
* Counts number of packets dropped by the device due to lack
* of buffer space . This usually indicates that the host interface
* is slower than the network interface , or host is not keeping up
* with the receive packet rate .
*
* This statistic corresponds to hardware events and is not used
* on software devices .
*
* @ tx_aborted_errors :
* Part of aggregate " carrier " errors in ` / proc / net / dev ` .
* For IEEE 802 . 3 devices capable of half - duplex operation this counter
* must be equivalent to :
*
* - 30 . 3 . 1 . 1 . 11 aFramesAbortedDueToXSColls
*
* High speed interfaces may use this counter as a general device
* discard counter .
*
* @ tx_carrier_errors : Number of frame transmission errors due to loss
* of carrier during transmission .
* Part of aggregate " carrier " errors in ` / proc / net / dev ` .
*
* For IEEE 802 . 3 devices this counter must be equivalent to :
*
* - 30 . 3 . 1 . 1 . 13 aCarrierSenseErrors
*
* @ tx_fifo_errors : Number of frame transmission errors due to device
* FIFO underrun / underflow . This condition occurs when the device
* begins transmission of a frame but is unable to deliver the
* entire frame to the transmitter in time for transmission .
* Part of aggregate " carrier " errors in ` / proc / net / dev ` .
*
* @ tx_heartbeat_errors : Number of Heartbeat / SQE Test errors for
* old half - duplex Ethernet .
* Part of aggregate " carrier " errors in ` / proc / net / dev ` .
*
* For IEEE 802 . 3 devices possibly equivalent to :
*
* - 30 . 3 . 2 . 1 . 4 aSQETestErrors
*
* @ tx_window_errors : Number of frame transmission errors due
* to late collisions ( for Ethernet - after the first 64 B of transmission ) .
* Part of aggregate " carrier " errors in ` / proc / net / dev ` .
*
* For IEEE 802 . 3 devices this counter must be equivalent to :
*
* - 30 . 3 . 1 . 1 . 10 aLateCollisions
*
* @ rx_compressed : Number of correctly received compressed packets .
* This counters is only meaningful for interfaces which support
* packet compression ( e . g . CSLIP , PPP ) .
*
* @ tx_compressed : Number of transmitted compressed packets .
* This counters is only meaningful for interfaces which support
* packet compression ( e . g . CSLIP , PPP ) .
*
* @ rx_nohandler : Number of packets received on the interface
* but dropped by the networking stack because the device is
* not designated to receive packets ( e . g . backup link in a bond ) .
*
* @ rx_otherhost_dropped : Number of packets dropped due to mismatch
* in destination MAC address .
*/
struct rtnl_link_stats64 {
__u64 rx_packets;
__u64 tx_packets;
__u64 rx_bytes;
__u64 tx_bytes;
__u64 rx_errors;
__u64 tx_errors;
__u64 rx_dropped;
__u64 tx_dropped;
__u64 multicast;
__u64 collisions;
/* detailed rx_errors: */
__u64 rx_length_errors;
__u64 rx_over_errors;
__u64 rx_crc_errors;
__u64 rx_frame_errors;
__u64 rx_fifo_errors;
__u64 rx_missed_errors;
/* detailed tx_errors */
__u64 tx_aborted_errors;
__u64 tx_carrier_errors;
__u64 tx_fifo_errors;
__u64 tx_heartbeat_errors;
__u64 tx_window_errors;
/* for cslip etc */
__u64 rx_compressed;
__u64 tx_compressed;
__u64 rx_nohandler;
__u64 rx_otherhost_dropped;
};
/* Subset of link stats useful for in-HW collection. Meaning of the fields is as
* for struct rtnl_link_stats64 .
*/
struct rtnl_hw_stats64 {
__u64 rx_packets;
__u64 tx_packets;
__u64 rx_bytes;
__u64 tx_bytes;
__u64 rx_errors;
__u64 tx_errors;
__u64 rx_dropped;
__u64 tx_dropped;
__u64 multicast;
};
/* The struct should be in sync with struct ifmap */
struct rtnl_link_ifmap {
__u64 mem_start;
__u64 mem_end;
__u64 base_addr;
__u16 irq;
__u8 dma;
__u8 port;
};
/*
* IFLA_AF_SPEC
* Contains nested attributes for address family specific attributes .
* Each address family may create a attribute with the address family
* number as type and create its own attribute structure in it .
*
* Example :
* [ IFLA_AF_SPEC ] = {
* [ AF_INET ] = {
* [ IFLA_INET_CONF ] = . . . ,
* } ,
* [ AF_INET6 ] = {
* [ IFLA_INET6_FLAGS ] = . . . ,
* [ IFLA_INET6_CONF ] = . . . ,
* }
* }
*/
enum {
IFLA_UNSPEC,
IFLA_ADDRESS,
IFLA_BROADCAST,
IFLA_IFNAME,
IFLA_MTU,
IFLA_LINK,
IFLA_QDISC,
IFLA_STATS,
IFLA_COST,
#define IFLA_COST IFLA_COST
IFLA_PRIORITY,
#define IFLA_PRIORITY IFLA_PRIORITY
IFLA_MASTER,
#define IFLA_MASTER IFLA_MASTER
IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */
#define IFLA_WIRELESS IFLA_WIRELESS
IFLA_PROTINFO, /* Protocol specific information for a link */
#define IFLA_PROTINFO IFLA_PROTINFO
IFLA_TXQLEN,
#define IFLA_TXQLEN IFLA_TXQLEN
IFLA_MAP,
#define IFLA_MAP IFLA_MAP
IFLA_WEIGHT,
#define IFLA_WEIGHT IFLA_WEIGHT
IFLA_OPERSTATE,
IFLA_LINKMODE,
IFLA_LINKINFO,
#define IFLA_LINKINFO IFLA_LINKINFO
IFLA_NET_NS_PID,
IFLA_IFALIAS,
IFLA_NUM_VF, /* Number of VFs if device is SR-IOV PF */
IFLA_VFINFO_LIST,
IFLA_STATS64,
IFLA_VF_PORTS,
IFLA_PORT_SELF,
IFLA_AF_SPEC,
IFLA_GROUP, /* Group the device belongs to */
IFLA_NET_NS_FD,
IFLA_EXT_MASK, /* Extended info mask, VFs, etc */
IFLA_PROMISCUITY, /* Promiscuity count: > 0 means acts PROMISC */
#define IFLA_PROMISCUITY IFLA_PROMISCUITY
IFLA_NUM_TX_QUEUES,
IFLA_NUM_RX_QUEUES,
IFLA_CARRIER,
IFLA_PHYS_PORT_ID,
IFLA_CARRIER_CHANGES,
IFLA_PHYS_SWITCH_ID,
IFLA_LINK_NETNSID,
IFLA_PHYS_PORT_NAME,
IFLA_PROTO_DOWN,
IFLA_GSO_MAX_SEGS,
IFLA_GSO_MAX_SIZE,
IFLA_PAD,
IFLA_XDP,
IFLA_EVENT,
IFLA_NEW_NETNSID,
IFLA_IF_NETNSID,
IFLA_TARGET_NETNSID = IFLA_IF_NETNSID, /* new alias */
IFLA_CARRIER_UP_COUNT,
IFLA_CARRIER_DOWN_COUNT,
IFLA_NEW_IFINDEX,
IFLA_MIN_MTU,
IFLA_MAX_MTU,
IFLA_PROP_LIST,
IFLA_ALT_IFNAME, /* Alternative ifname */
IFLA_PERM_ADDRESS,
IFLA_PROTO_DOWN_REASON,
/* device (sysfs) name as parent, used instead
* of IFLA_LINK where there ' s no parent netdev
*/
IFLA_PARENT_DEV_NAME,
IFLA_PARENT_DEV_BUS_NAME,
IFLA_GRO_MAX_SIZE,
IFLA_TSO_MAX_SIZE,
IFLA_TSO_MAX_SEGS,
IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */
IFLA_DEVLINK_PORT,
IFLA_GSO_IPV4_MAX_SIZE,
IFLA_GRO_IPV4_MAX_SIZE,
IFLA_DPLL_PIN,
IFLA_MAX_PACING_OFFLOAD_HORIZON,
IFLA_NETNS_IMMUTABLE,
__IFLA_MAX
};
#define IFLA_MAX (__IFLA_MAX - 1 )
enum {
IFLA_PROTO_DOWN_REASON_UNSPEC,
IFLA_PROTO_DOWN_REASON_MASK, /* u32, mask for reason bits */
IFLA_PROTO_DOWN_REASON_VALUE, /* u32, reason bit value */
__IFLA_PROTO_DOWN_REASON_CNT,
IFLA_PROTO_DOWN_REASON_MAX = __IFLA_PROTO_DOWN_REASON_CNT - 1
};
/* backwards compatibility for userspace */
#ifndef __KERNEL__
#define IFLA_RTA(r) ((struct rtattr*)(((char *)(r)) + NLMSG_ALIGN(sizeof (struct ifinfomsg))))
#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof (struct ifinfomsg))
#endif
enum {
IFLA_INET_UNSPEC,
IFLA_INET_CONF,
__IFLA_INET_MAX,
};
#define IFLA_INET_MAX (__IFLA_INET_MAX - 1 )
/* ifi_flags.
IFF_ * flags .
The only change is :
IFF_LOOPBACK , IFF_BROADCAST and IFF_POINTOPOINT are
more not changeable by user . They describe link media
characteristics and set by device driver .
Comments :
- Combination IFF_BROADCAST | IFF_POINTOPOINT is invalid
- If neither of these three flags are set ;
the interface is NBMA .
- IFF_MULTICAST does not mean anything special :
multicasts can be used on all not - NBMA links .
IFF_MULTICAST means that this media uses special encapsulation
for multicast frames . Apparently , all IFF_POINTOPOINT and
IFF_BROADCAST devices are able to use multicasts too .
*/
/* IFLA_LINK.
For usual devices it is equal ifi_index .
If it is a " virtual interface " ( f . e . tunnel ) , ifi_link
can point to real physical interface ( f . e . for bandwidth calculations ) ,
or maybe 0 , what means , that real media is unknown ( usual
for IPIP tunnels , when route to endpoint is allowed to change )
*/
/* Subtype attributes for IFLA_PROTINFO */
enum {
IFLA_INET6_UNSPEC,
IFLA_INET6_FLAGS, /* link flags */
IFLA_INET6_CONF, /* sysctl parameters */
IFLA_INET6_STATS, /* statistics */
IFLA_INET6_MCAST, /* MC things. What of them? */
IFLA_INET6_CACHEINFO, /* time values and max reasm size */
IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */
IFLA_INET6_TOKEN, /* device token */
IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */
IFLA_INET6_RA_MTU, /* mtu carried in the RA message */
__IFLA_INET6_MAX
};
#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1 )
enum in6_addr_gen_mode {
IN6_ADDR_GEN_MODE_EUI64,
IN6_ADDR_GEN_MODE_NONE,
IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
IN6_ADDR_GEN_MODE_RANDOM,
};
/* Bridge section */
/**
* DOC : Bridge enum definition
*
* Please * note * that the timer values in the following section are expected
* in clock_t format , which is seconds multiplied by USER_HZ ( generally
* defined as 100 ) .
*
* @ IFLA_BR_FORWARD_DELAY
* The bridge forwarding delay is the time spent in LISTENING state
* ( before moving to LEARNING ) and in LEARNING state ( before moving
* to FORWARDING ) . Only relevant if STP is enabled .
*
* The valid values are between ( 2 * USER_HZ ) and ( 30 * USER_HZ ) .
* The default value is ( 15 * USER_HZ ) .
*
* @ IFLA_BR_HELLO_TIME
* The time between hello packets sent by the bridge , when it is a root
* bridge or a designated bridge . Only relevant if STP is enabled .
*
* The valid values are between ( 1 * USER_HZ ) and ( 10 * USER_HZ ) .
* The default value is ( 2 * USER_HZ ) .
*
* @ IFLA_BR_MAX_AGE
* The hello packet timeout is the time until another bridge in the
* spanning tree is assumed to be dead , after reception of its last hello
* message . Only relevant if STP is enabled .
*
* The valid values are between ( 6 * USER_HZ ) and ( 40 * USER_HZ ) .
* The default value is ( 20 * USER_HZ ) .
*
* @ IFLA_BR_AGEING_TIME
* Configure the bridge ' s FDB entries aging time . It is the time a MAC
* address will be kept in the FDB after a packet has been received from
* that address . After this time has passed , entries are cleaned up .
* Allow values outside the 802 . 1 standard specification for special cases :
*
* * 0 - entry never ages ( all permanent )
* * 1 - entry disappears ( no persistence )
*
* The default value is ( 300 * USER_HZ ) .
*
* @ IFLA_BR_STP_STATE
* Turn spanning tree protocol on ( * IFLA_BR_STP_STATE * > 0 ) or off
* ( * IFLA_BR_STP_STATE * = = 0 ) for this bridge .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_PRIORITY
* Set this bridge ' s spanning tree priority , used during STP root bridge
* election .
*
* The valid values are between 0 and 65535 .
*
* @ IFLA_BR_VLAN_FILTERING
* Turn VLAN filtering on ( * IFLA_BR_VLAN_FILTERING * > 0 ) or off
* ( * IFLA_BR_VLAN_FILTERING * = = 0 ) . When disabled , the bridge will not
* consider the VLAN tag when handling packets .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_VLAN_PROTOCOL
* Set the protocol used for VLAN filtering .
*
* The valid values are 0 x8100 ( 802 . 1 Q ) or 0 x88A8 ( 802 . 1 AD ) . The default value
* is 0 x8100 ( 802 . 1 Q ) .
*
* @ IFLA_BR_GROUP_FWD_MASK
* The group forwarding mask . This is the bitmask that is applied to
* decide whether to forward incoming frames destined to link - local
* addresses ( of the form 01 : 80 : C2 : 00 : 00 : 0 X ) .
*
* The default value is 0 , which means the bridge does not forward any
* link - local frames coming on this port .
*
* @ IFLA_BR_ROOT_ID
* The bridge root id , read only .
*
* @ IFLA_BR_BRIDGE_ID
* The bridge id , read only .
*
* @ IFLA_BR_ROOT_PORT
* The bridge root port , read only .
*
* @ IFLA_BR_ROOT_PATH_COST
* The bridge root path cost , read only .
*
* @ IFLA_BR_TOPOLOGY_CHANGE
* The bridge topology change , read only .
*
* @ IFLA_BR_TOPOLOGY_CHANGE_DETECTED
* The bridge topology change detected , read only .
*
* @ IFLA_BR_HELLO_TIMER
* The bridge hello timer , read only .
*
* @ IFLA_BR_TCN_TIMER
* The bridge tcn timer , read only .
*
* @ IFLA_BR_TOPOLOGY_CHANGE_TIMER
* The bridge topology change timer , read only .
*
* @ IFLA_BR_GC_TIMER
* The bridge gc timer , read only .
*
* @ IFLA_BR_GROUP_ADDR
* Set the MAC address of the multicast group this bridge uses for STP .
* The address must be a link - local address in standard Ethernet MAC address
* format . It is an address of the form 01 : 80 : C2 : 00 : 00 : 0 X , with X in [ 0 , 4 . . f ] .
*
* The default value is 0 .
*
* @ IFLA_BR_FDB_FLUSH
* Flush bridge ' s fdb dynamic entries .
*
* @ IFLA_BR_MCAST_ROUTER
* Set bridge ' s multicast router if IGMP snooping is enabled .
* The valid values are :
*
* * 0 - disabled .
* * 1 - automatic ( queried ) .
* * 2 - permanently enabled .
*
* The default value is 1 .
*
* @ IFLA_BR_MCAST_SNOOPING
* Turn multicast snooping on ( * IFLA_BR_MCAST_SNOOPING * > 0 ) or off
* ( * IFLA_BR_MCAST_SNOOPING * = = 0 ) .
*
* The default value is 1 .
*
* @ IFLA_BR_MCAST_QUERY_USE_IFADDR
* If enabled use the bridge ' s own IP address as source address for IGMP
* queries ( * IFLA_BR_MCAST_QUERY_USE_IFADDR * > 0 ) or the default of 0 . 0 . 0 . 0
* ( * IFLA_BR_MCAST_QUERY_USE_IFADDR * = = 0 ) .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_MCAST_QUERIER
* Enable ( * IFLA_BR_MULTICAST_QUERIER * > 0 ) or disable
* ( * IFLA_BR_MULTICAST_QUERIER * = = 0 ) IGMP querier , ie sending of multicast
* queries by the bridge .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_MCAST_HASH_ELASTICITY
* Set multicast database hash elasticity , It is the maximum chain length in
* the multicast hash table . This attribute is * deprecated * and the value
* is always 16 .
*
* @ IFLA_BR_MCAST_HASH_MAX
* Set maximum size of the multicast hash table
*
* The default value is 4096 , the value must be a power of 2 .
*
* @ IFLA_BR_MCAST_LAST_MEMBER_CNT
* The Last Member Query Count is the number of Group - Specific Queries
* sent before the router assumes there are no local members . The Last
* Member Query Count is also the number of Group - and - Source - Specific
* Queries sent before the router assumes there are no listeners for a
* particular source .
*
* The default value is 2 .
*
* @ IFLA_BR_MCAST_STARTUP_QUERY_CNT
* The Startup Query Count is the number of Queries sent out on startup ,
* separated by the Startup Query Interval .
*
* The default value is 2 .
*
* @ IFLA_BR_MCAST_LAST_MEMBER_INTVL
* The Last Member Query Interval is the Max Response Time inserted into
* Group - Specific Queries sent in response to Leave Group messages , and
* is also the amount of time between Group - Specific Query messages .
*
* The default value is ( 1 * USER_HZ ) .
*
* @ IFLA_BR_MCAST_MEMBERSHIP_INTVL
* The interval after which the bridge will leave a group , if no membership
* reports for this group are received .
*
* The default value is ( 260 * USER_HZ ) .
*
* @ IFLA_BR_MCAST_QUERIER_INTVL
* The interval between queries sent by other routers . if no queries are
* seen after this delay has passed , the bridge will start to send its own
* queries ( as if * IFLA_BR_MCAST_QUERIER_INTVL * was enabled ) .
*
* The default value is ( 255 * USER_HZ ) .
*
* @ IFLA_BR_MCAST_QUERY_INTVL
* The Query Interval is the interval between General Queries sent by
* the Querier .
*
* The default value is ( 125 * USER_HZ ) . The minimum value is ( 1 * USER_HZ ) .
*
* @ IFLA_BR_MCAST_QUERY_RESPONSE_INTVL
* The Max Response Time used to calculate the Max Resp Code inserted
* into the periodic General Queries .
*
* The default value is ( 10 * USER_HZ ) .
*
* @ IFLA_BR_MCAST_STARTUP_QUERY_INTVL
* The interval between queries in the startup phase .
*
* The default value is ( 125 * USER_HZ ) / 4 . The minimum value is ( 1 * USER_HZ ) .
*
* @ IFLA_BR_NF_CALL_IPTABLES
* Enable ( * NF_CALL_IPTABLES * > 0 ) or disable ( * NF_CALL_IPTABLES * = = 0 )
* iptables hooks on the bridge .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_NF_CALL_IP6TABLES
* Enable ( * NF_CALL_IP6TABLES * > 0 ) or disable ( * NF_CALL_IP6TABLES * = = 0 )
* ip6tables hooks on the bridge .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_NF_CALL_ARPTABLES
* Enable ( * NF_CALL_ARPTABLES * > 0 ) or disable ( * NF_CALL_ARPTABLES * = = 0 )
* arptables hooks on the bridge .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_VLAN_DEFAULT_PVID
* VLAN ID applied to untagged and priority - tagged incoming packets .
*
* The default value is 1 . Setting to the special value 0 makes all ports of
* this bridge not have a PVID by default , which means that they will
* not accept VLAN - untagged traffic .
*
* @ IFLA_BR_PAD
* Bridge attribute padding type for netlink message .
*
* @ IFLA_BR_VLAN_STATS_ENABLED
* Enable ( * IFLA_BR_VLAN_STATS_ENABLED * = = 1 ) or disable
* ( * IFLA_BR_VLAN_STATS_ENABLED * = = 0 ) per - VLAN stats accounting .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_MCAST_STATS_ENABLED
* Enable ( * IFLA_BR_MCAST_STATS_ENABLED * > 0 ) or disable
* ( * IFLA_BR_MCAST_STATS_ENABLED * = = 0 ) multicast ( IGMP / MLD ) stats
* accounting .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_MCAST_IGMP_VERSION
* Set the IGMP version .
*
* The valid values are 2 and 3 . The default value is 2 .
*
* @ IFLA_BR_MCAST_MLD_VERSION
* Set the MLD version .
*
* The valid values are 1 and 2 . The default value is 1 .
*
* @ IFLA_BR_VLAN_STATS_PER_PORT
* Enable ( * IFLA_BR_VLAN_STATS_PER_PORT * = = 1 ) or disable
* ( * IFLA_BR_VLAN_STATS_PER_PORT * = = 0 ) per - VLAN per - port stats accounting .
* Can be changed only when there are no port VLANs configured .
*
* The default value is 0 ( disabled ) .
*
* @ IFLA_BR_MULTI_BOOLOPT
* The multi_boolopt is used to control new boolean options to avoid adding
* new netlink attributes . You can look at ` ` enum br_boolopt_id ` ` for those
* options .
*
* @ IFLA_BR_MCAST_QUERIER_STATE
* Bridge mcast querier states , read only .
*
* @ IFLA_BR_FDB_N_LEARNED
* The number of dynamically learned FDB entries for the current bridge ,
* read only .
*
* @ IFLA_BR_FDB_MAX_LEARNED
* Set the number of max dynamically learned FDB entries for the current
* bridge .
*/
enum {
IFLA_BR_UNSPEC,
IFLA_BR_FORWARD_DELAY,
IFLA_BR_HELLO_TIME,
IFLA_BR_MAX_AGE,
IFLA_BR_AGEING_TIME,
IFLA_BR_STP_STATE,
IFLA_BR_PRIORITY,
IFLA_BR_VLAN_FILTERING,
IFLA_BR_VLAN_PROTOCOL,
IFLA_BR_GROUP_FWD_MASK,
IFLA_BR_ROOT_ID,
IFLA_BR_BRIDGE_ID,
IFLA_BR_ROOT_PORT,
IFLA_BR_ROOT_PATH_COST,
IFLA_BR_TOPOLOGY_CHANGE,
IFLA_BR_TOPOLOGY_CHANGE_DETECTED,
IFLA_BR_HELLO_TIMER,
IFLA_BR_TCN_TIMER,
IFLA_BR_TOPOLOGY_CHANGE_TIMER,
IFLA_BR_GC_TIMER,
IFLA_BR_GROUP_ADDR,
IFLA_BR_FDB_FLUSH,
IFLA_BR_MCAST_ROUTER,
IFLA_BR_MCAST_SNOOPING,
IFLA_BR_MCAST_QUERY_USE_IFADDR,
IFLA_BR_MCAST_QUERIER,
IFLA_BR_MCAST_HASH_ELASTICITY,
IFLA_BR_MCAST_HASH_MAX,
IFLA_BR_MCAST_LAST_MEMBER_CNT,
IFLA_BR_MCAST_STARTUP_QUERY_CNT,
IFLA_BR_MCAST_LAST_MEMBER_INTVL,
IFLA_BR_MCAST_MEMBERSHIP_INTVL,
IFLA_BR_MCAST_QUERIER_INTVL,
IFLA_BR_MCAST_QUERY_INTVL,
IFLA_BR_MCAST_QUERY_RESPONSE_INTVL,
IFLA_BR_MCAST_STARTUP_QUERY_INTVL,
IFLA_BR_NF_CALL_IPTABLES,
IFLA_BR_NF_CALL_IP6TABLES,
IFLA_BR_NF_CALL_ARPTABLES,
IFLA_BR_VLAN_DEFAULT_PVID,
IFLA_BR_PAD,
IFLA_BR_VLAN_STATS_ENABLED,
IFLA_BR_MCAST_STATS_ENABLED,
IFLA_BR_MCAST_IGMP_VERSION,
IFLA_BR_MCAST_MLD_VERSION,
IFLA_BR_VLAN_STATS_PER_PORT,
IFLA_BR_MULTI_BOOLOPT,
IFLA_BR_MCAST_QUERIER_STATE,
IFLA_BR_FDB_N_LEARNED,
IFLA_BR_FDB_MAX_LEARNED,
__IFLA_BR_MAX,
};
#define IFLA_BR_MAX (__IFLA_BR_MAX - 1 )
struct ifla_bridge_id {
__u8 prio[2 ];
__u8 addr[6 ]; /* ETH_ALEN */
};
/**
* DOC : Bridge mode enum definition
*
* @ BRIDGE_MODE_HAIRPIN
* Controls whether traffic may be sent back out of the port on which it
* was received . This option is also called reflective relay mode , and is
* used to support basic VEPA ( Virtual Ethernet Port Aggregator )
* capabilities . By default , this flag is turned off and the bridge will
* not forward traffic back out of the receiving port .
*/
enum {
BRIDGE_MODE_UNSPEC,
BRIDGE_MODE_HAIRPIN,
};
/**
* DOC : Bridge port enum definition
*
* @ IFLA_BRPORT_STATE
* The operation state of the port . Here are the valid values .
*
* * 0 - port is in STP * DISABLED * state . Make this port completely
* inactive for STP . This is also called BPDU filter and could be used
* to disable STP on an untrusted port , like a leaf virtual device .
* The traffic forwarding is also stopped on this port .
* * 1 - port is in STP * LISTENING * state . Only valid if STP is enabled
* on the bridge . In this state the port listens for STP BPDUs and
* drops all other traffic frames .
* * 2 - port is in STP * LEARNING * state . Only valid if STP is enabled on
* the bridge . In this state the port will accept traffic only for the
* purpose of updating MAC address tables .
* * 3 - port is in STP * FORWARDING * state . Port is fully active .
* * 4 - port is in STP * BLOCKING * state . Only valid if STP is enabled on
* the bridge . This state is used during the STP election process .
* In this state , port will only process STP BPDUs .
*
* @ IFLA_BRPORT_PRIORITY
* The STP port priority . The valid values are between 0 and 255 .
*
* @ IFLA_BRPORT_COST
* The STP path cost of the port . The valid values are between 1 and 65535 .
*
* @ IFLA_BRPORT_MODE
* Set the bridge port mode . See * BRIDGE_MODE_HAIRPIN * for more details .
*
* @ IFLA_BRPORT_GUARD
* Controls whether STP BPDUs will be processed by the bridge port . By
* default , the flag is turned off to allow BPDU processing . Turning this
* flag on will disable the bridge port if a STP BPDU packet is received .
*
* If the bridge has Spanning Tree enabled , hostile devices on the network
* may send BPDU on a port and cause network failure . Setting * guard on *
* will detect and stop this by disabling the port . The port will be
* restarted if the link is brought down , or removed and reattached .
*
* @ IFLA_BRPORT_PROTECT
* Controls whether a given port is allowed to become a root port or not .
* Only used when STP is enabled on the bridge . By default the flag is off .
*
* This feature is also called root port guard . If BPDU is received from a
* leaf ( edge ) port , it should not be elected as root port . This could
* be used if using STP on a bridge and the downstream bridges are not fully
* trusted ; this prevents a hostile guest from rerouting traffic .
*
* @ IFLA_BRPORT_FAST_LEAVE
* This flag allows the bridge to immediately stop multicast traffic
* forwarding on a port that receives an IGMP Leave message . It is only used
* when IGMP snooping is enabled on the bridge . By default the flag is off .
*
* @ IFLA_BRPORT_LEARNING
* Controls whether a given port will learn * source * MAC addresses from
* received traffic or not . Also controls whether dynamic FDB entries
* ( which can also be added by software ) will be refreshed by incoming
* traffic . By default this flag is on .
*
* @ IFLA_BRPORT_UNICAST_FLOOD
* Controls whether unicast traffic for which there is no FDB entry will
* be flooded towards this port . By default this flag is on .
*
* @ IFLA_BRPORT_PROXYARP
* Enable proxy ARP on this port .
*
* @ IFLA_BRPORT_LEARNING_SYNC
* Controls whether a given port will sync MAC addresses learned on device
* port to bridge FDB .
*
* @ IFLA_BRPORT_PROXYARP_WIFI
* Enable proxy ARP on this port which meets extended requirements by
* IEEE 802 . 11 and Hotspot 2 . 0 specifications .
*
* @ IFLA_BRPORT_ROOT_ID
*
* @ IFLA_BRPORT_BRIDGE_ID
*
* @ IFLA_BRPORT_DESIGNATED_PORT
*
* @ IFLA_BRPORT_DESIGNATED_COST
*
* @ IFLA_BRPORT_ID
*
* @ IFLA_BRPORT_NO
*
* @ IFLA_BRPORT_TOPOLOGY_CHANGE_ACK
*
* @ IFLA_BRPORT_CONFIG_PENDING
*
* @ IFLA_BRPORT_MESSAGE_AGE_TIMER
*
* @ IFLA_BRPORT_FORWARD_DELAY_TIMER
*
* @ IFLA_BRPORT_HOLD_TIMER
*
* @ IFLA_BRPORT_FLUSH
* Flush bridge ports ' fdb dynamic entries .
*
* @ IFLA_BRPORT_MULTICAST_ROUTER
* Configure the port ' s multicast router presence . A port with
* a multicast router will receive all multicast traffic .
* The valid values are :
*
* * 0 disable multicast routers on this port
* * 1 let the system detect the presence of routers ( default )
* * 2 permanently enable multicast traffic forwarding on this port
* * 3 enable multicast routers temporarily on this port , not depending
* on incoming queries .
*
* @ IFLA_BRPORT_PAD
*
* @ IFLA_BRPORT_MCAST_FLOOD
* Controls whether a given port will flood multicast traffic for which
* there is no MDB entry . By default this flag is on .
*
* @ IFLA_BRPORT_MCAST_TO_UCAST
* Controls whether a given port will replicate packets using unicast
* instead of multicast . By default this flag is off .
*
* This is done by copying the packet per host and changing the multicast
* destination MAC to a unicast one accordingly .
*
* * mcast_to_unicast * works on top of the multicast snooping feature of the
* bridge . Which means unicast copies are only delivered to hosts which
* are interested in unicast and signaled this via IGMP / MLD reports previously .
*
* This feature is intended for interface types which have a more reliable
* and / or efficient way to deliver unicast packets than broadcast ones
* ( e . g . WiFi ) .
*
* However , it should only be enabled on interfaces where no IGMPv2 / MLDv1
* report suppression takes place . IGMP / MLD report suppression issue is
* usually overcome by the network daemon ( supplicant ) enabling AP isolation
* and by that separating all STAs .
*
* Delivery of STA - to - STA IP multicast is made possible again by enabling
* and utilizing the bridge hairpin mode , which considers the incoming port
* as a potential outgoing port , too ( see * BRIDGE_MODE_HAIRPIN * option ) .
* Hairpin mode is performed after multicast snooping , therefore leading
* to only deliver reports to STAs running a multicast router .
*
* @ IFLA_BRPORT_VLAN_TUNNEL
* Controls whether vlan to tunnel mapping is enabled on the port .
* By default this flag is off .
*
* @ IFLA_BRPORT_BCAST_FLOOD
* Controls flooding of broadcast traffic on the given port . By default
* this flag is on .
*
* @ IFLA_BRPORT_GROUP_FWD_MASK
* Set the group forward mask . This is a bitmask that is applied to
* decide whether to forward incoming frames destined to link - local
* addresses . The addresses of the form are 01 : 80 : C2 : 00 : 00 : 0 X ( defaults
* to 0 , which means the bridge does not forward any link - local frames
* coming on this port ) .
*
* @ IFLA_BRPORT_NEIGH_SUPPRESS
* Controls whether neighbor discovery ( arp and nd ) proxy and suppression
* is enabled on the port . By default this flag is off .
*
* @ IFLA_BRPORT_ISOLATED
* Controls whether a given port will be isolated , which means it will be
* able to communicate with non - isolated ports only . By default this
* flag is off .
*
* @ IFLA_BRPORT_BACKUP_PORT
* Set a backup port . If the port loses carrier all traffic will be
* redirected to the configured backup port . Set the value to 0 to disable
* it .
*
* @ IFLA_BRPORT_MRP_RING_OPEN
*
* @ IFLA_BRPORT_MRP_IN_OPEN
*
* @ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT
* The number of per - port EHT hosts limit . The default value is 512 .
* Setting to 0 is not allowed .
*
* @ IFLA_BRPORT_MCAST_EHT_HOSTS_CNT
* The current number of tracked hosts , read only .
*
* @ IFLA_BRPORT_LOCKED
* Controls whether a port will be locked , meaning that hosts behind the
* port will not be able to communicate through the port unless an FDB
* entry with the unit ' s MAC address is in the FDB . The common use case is
* that hosts are allowed access through authentication with the IEEE 802 . 1 X
* protocol or based on whitelists . By default this flag is off .
*
* Please note that secure 802 . 1 X deployments should always use the
* * BR_BOOLOPT_NO_LL_LEARN * flag , to not permit the bridge to populate its
* FDB based on link - local ( EAPOL ) traffic received on the port .
*
* @ IFLA_BRPORT_MAB
* Controls whether a port will use MAC Authentication Bypass ( MAB ) , a
* technique through which select MAC addresses may be allowed on a locked
* port , without using 802 . 1 X authentication . Packets with an unknown source
* MAC address generates a " locked " FDB entry on the incoming bridge port .
* The common use case is for user space to react to these bridge FDB
* notifications and optionally replace the locked FDB entry with a normal
* one , allowing traffic to pass for whitelisted MAC addresses .
*
* Setting this flag also requires * IFLA_BRPORT_LOCKED * and
* * IFLA_BRPORT_LEARNING * . * IFLA_BRPORT_LOCKED * ensures that unauthorized
* data packets are dropped , and * IFLA_BRPORT_LEARNING * allows the dynamic
* FDB entries installed by user space ( as replacements for the locked FDB
* entries ) to be refreshed and / or aged out .
*
* @ IFLA_BRPORT_MCAST_N_GROUPS
*
* @ IFLA_BRPORT_MCAST_MAX_GROUPS
* Sets the maximum number of MDB entries that can be registered for a
* given port . Attempts to register more MDB entries at the port than this
* limit allows will be rejected , whether they are done through netlink
* ( e . g . the bridge tool ) , or IGMP or MLD membership reports . Setting a
* limit of 0 disables the limit . The default value is 0 .
*
* @ IFLA_BRPORT_NEIGH_VLAN_SUPPRESS
* Controls whether neighbor discovery ( arp and nd ) proxy and suppression is
* enabled for a given port . By default this flag is off .
*
* Note that this option only takes effect when * IFLA_BRPORT_NEIGH_SUPPRESS *
* is enabled for a given port .
*
* @ IFLA_BRPORT_BACKUP_NHID
* The FDB nexthop object ID to attach to packets being redirected to a
* backup port that has VLAN tunnel mapping enabled ( via the
* * IFLA_BRPORT_VLAN_TUNNEL * option ) . Setting a value of 0 ( default ) has
* the effect of not attaching any ID .
*/
enum {
IFLA_BRPORT_UNSPEC,
IFLA_BRPORT_STATE, /* Spanning tree state */
IFLA_BRPORT_PRIORITY, /* " priority */
IFLA_BRPORT_COST, /* " cost */
IFLA_BRPORT_MODE, /* mode (hairpin) */
IFLA_BRPORT_GUARD, /* bpdu guard */
IFLA_BRPORT_PROTECT, /* root port protection */
IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */
IFLA_BRPORT_LEARNING, /* mac learning */
IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */
IFLA_BRPORT_PROXYARP, /* proxy ARP */
IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */
IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */
IFLA_BRPORT_ROOT_ID, /* designated root */
IFLA_BRPORT_BRIDGE_ID, /* designated bridge */
IFLA_BRPORT_DESIGNATED_PORT,
IFLA_BRPORT_DESIGNATED_COST,
IFLA_BRPORT_ID,
IFLA_BRPORT_NO,
IFLA_BRPORT_TOPOLOGY_CHANGE_ACK,
IFLA_BRPORT_CONFIG_PENDING,
IFLA_BRPORT_MESSAGE_AGE_TIMER,
IFLA_BRPORT_FORWARD_DELAY_TIMER,
IFLA_BRPORT_HOLD_TIMER,
IFLA_BRPORT_FLUSH,
IFLA_BRPORT_MULTICAST_ROUTER,
IFLA_BRPORT_PAD,
IFLA_BRPORT_MCAST_FLOOD,
IFLA_BRPORT_MCAST_TO_UCAST,
IFLA_BRPORT_VLAN_TUNNEL,
IFLA_BRPORT_BCAST_FLOOD,
IFLA_BRPORT_GROUP_FWD_MASK,
IFLA_BRPORT_NEIGH_SUPPRESS,
IFLA_BRPORT_ISOLATED,
IFLA_BRPORT_BACKUP_PORT,
IFLA_BRPORT_MRP_RING_OPEN,
IFLA_BRPORT_MRP_IN_OPEN,
IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
IFLA_BRPORT_LOCKED,
IFLA_BRPORT_MAB,
IFLA_BRPORT_MCAST_N_GROUPS,
IFLA_BRPORT_MCAST_MAX_GROUPS,
IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
IFLA_BRPORT_BACKUP_NHID,
__IFLA_BRPORT_MAX
};
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1 )
struct ifla_cacheinfo {
__u32 max_reasm_len;
__u32 tstamp; /* ipv6InterfaceTable updated timestamp */
__u32 reachable_time;
__u32 retrans_time;
};
enum {
IFLA_INFO_UNSPEC,
IFLA_INFO_KIND,
IFLA_INFO_DATA,
IFLA_INFO_XSTATS,
IFLA_INFO_SLAVE_KIND,
IFLA_INFO_SLAVE_DATA,
__IFLA_INFO_MAX,
};
#define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1 )
/* VLAN section */
enum {
IFLA_VLAN_UNSPEC,
IFLA_VLAN_ID,
IFLA_VLAN_FLAGS,
IFLA_VLAN_EGRESS_QOS,
IFLA_VLAN_INGRESS_QOS,
IFLA_VLAN_PROTOCOL,
__IFLA_VLAN_MAX,
};
#define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1 )
struct ifla_vlan_flags {
__u32 flags;
__u32 mask;
};
enum {
IFLA_VLAN_QOS_UNSPEC,
IFLA_VLAN_QOS_MAPPING,
__IFLA_VLAN_QOS_MAX
};
#define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1 )
struct ifla_vlan_qos_mapping {
__u32 from;
__u32 to;
};
/* MACVLAN section */
enum {
IFLA_MACVLAN_UNSPEC,
IFLA_MACVLAN_MODE,
IFLA_MACVLAN_FLAGS,
IFLA_MACVLAN_MACADDR_MODE,
IFLA_MACVLAN_MACADDR,
IFLA_MACVLAN_MACADDR_DATA,
IFLA_MACVLAN_MACADDR_COUNT,
IFLA_MACVLAN_BC_QUEUE_LEN,
IFLA_MACVLAN_BC_QUEUE_LEN_USED,
IFLA_MACVLAN_BC_CUTOFF,
__IFLA_MACVLAN_MAX,
};
#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1 )
enum macvlan_mode {
MACVLAN_MODE_PRIVATE = 1 , /* don't talk to other macvlans */
MACVLAN_MODE_VEPA = 2 , /* talk to other ports through ext bridge */
MACVLAN_MODE_BRIDGE = 4 , /* talk to bridge ports directly */
MACVLAN_MODE_PASSTHRU = 8 ,/* take over the underlying device */
MACVLAN_MODE_SOURCE = 16 ,/* use source MAC address list to assign */
};
enum macvlan_macaddr_mode {
MACVLAN_MACADDR_ADD,
MACVLAN_MACADDR_DEL,
MACVLAN_MACADDR_FLUSH,
MACVLAN_MACADDR_SET,
};
#define MACVLAN_FLAG_NOPROMISC 1
#define MACVLAN_FLAG_NODST 2 /* skip dst macvlan if matching src macvlan */
/* VRF section */
enum {
IFLA_VRF_UNSPEC,
IFLA_VRF_TABLE,
__IFLA_VRF_MAX
};
#define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1 )
enum {
IFLA_VRF_PORT_UNSPEC,
IFLA_VRF_PORT_TABLE,
__IFLA_VRF_PORT_MAX
};
#define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1 )
/* MACSEC section */
enum {
IFLA_MACSEC_UNSPEC,
IFLA_MACSEC_SCI,
IFLA_MACSEC_PORT,
IFLA_MACSEC_ICV_LEN,
IFLA_MACSEC_CIPHER_SUITE,
IFLA_MACSEC_WINDOW,
IFLA_MACSEC_ENCODING_SA,
IFLA_MACSEC_ENCRYPT,
IFLA_MACSEC_PROTECT,
IFLA_MACSEC_INC_SCI,
IFLA_MACSEC_ES,
IFLA_MACSEC_SCB,
IFLA_MACSEC_REPLAY_PROTECT,
IFLA_MACSEC_VALIDATION,
IFLA_MACSEC_PAD,
IFLA_MACSEC_OFFLOAD,
__IFLA_MACSEC_MAX,
};
#define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1 )
/* XFRM section */
enum {
IFLA_XFRM_UNSPEC,
IFLA_XFRM_LINK,
IFLA_XFRM_IF_ID,
IFLA_XFRM_COLLECT_METADATA,
__IFLA_XFRM_MAX
};
#define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1 )
enum macsec_validation_type {
MACSEC_VALIDATE_DISABLED = 0 ,
MACSEC_VALIDATE_CHECK = 1 ,
MACSEC_VALIDATE_STRICT = 2 ,
__MACSEC_VALIDATE_END,
MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1 ,
};
enum macsec_offload {
MACSEC_OFFLOAD_OFF = 0 ,
MACSEC_OFFLOAD_PHY = 1 ,
MACSEC_OFFLOAD_MAC = 2 ,
__MACSEC_OFFLOAD_END,
MACSEC_OFFLOAD_MAX = __MACSEC_OFFLOAD_END - 1 ,
};
/* IPVLAN section */
enum {
IFLA_IPVLAN_UNSPEC,
IFLA_IPVLAN_MODE,
IFLA_IPVLAN_FLAGS,
__IFLA_IPVLAN_MAX
};
#define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1 )
enum ipvlan_mode {
IPVLAN_MODE_L2 = 0 ,
IPVLAN_MODE_L3,
IPVLAN_MODE_L3S,
IPVLAN_MODE_MAX
};
#define IPVLAN_F_PRIVATE 0 x01
#define IPVLAN_F_VEPA 0 x02
/* Tunnel RTM header */
struct tunnel_msg {
__u8 family;
__u8 flags;
__u16 reserved2;
__u32 ifindex;
};
/* netkit section */
enum netkit_action {
NETKIT_NEXT = -1 ,
NETKIT_PASS = 0 ,
NETKIT_DROP = 2 ,
NETKIT_REDIRECT = 7 ,
};
enum netkit_mode {
NETKIT_L2,
NETKIT_L3,
};
/* NETKIT_SCRUB_NONE leaves clearing skb->{mark,priority} up to
* the BPF program if attached . This also means the latter can
* consume the two fields if they were populated earlier .
*
* NETKIT_SCRUB_DEFAULT zeroes skb - > { mark , priority } fields before
* invoking the attached BPF program when the peer device resides
* in a different network namespace . This is the default behavior .
*/
enum netkit_scrub {
NETKIT_SCRUB_NONE,
NETKIT_SCRUB_DEFAULT,
};
enum {
IFLA_NETKIT_UNSPEC,
IFLA_NETKIT_PEER_INFO,
IFLA_NETKIT_PRIMARY,
IFLA_NETKIT_POLICY,
IFLA_NETKIT_PEER_POLICY,
IFLA_NETKIT_MODE,
IFLA_NETKIT_SCRUB,
IFLA_NETKIT_PEER_SCRUB,
IFLA_NETKIT_HEADROOM,
IFLA_NETKIT_TAILROOM,
__IFLA_NETKIT_MAX,
};
#define IFLA_NETKIT_MAX (__IFLA_NETKIT_MAX - 1 )
/* VXLAN section */
/* include statistics in the dump */
#define TUNNEL_MSG_FLAG_STATS 0 x01
#define TUNNEL_MSG_VALID_USER_FLAGS TUNNEL_MSG_FLAG_STATS
/* Embedded inside VXLAN_VNIFILTER_ENTRY_STATS */
enum {
VNIFILTER_ENTRY_STATS_UNSPEC,
VNIFILTER_ENTRY_STATS_RX_BYTES,
VNIFILTER_ENTRY_STATS_RX_PKTS,
VNIFILTER_ENTRY_STATS_RX_DROPS,
VNIFILTER_ENTRY_STATS_RX_ERRORS,
VNIFILTER_ENTRY_STATS_TX_BYTES,
VNIFILTER_ENTRY_STATS_TX_PKTS,
VNIFILTER_ENTRY_STATS_TX_DROPS,
VNIFILTER_ENTRY_STATS_TX_ERRORS,
VNIFILTER_ENTRY_STATS_PAD,
__VNIFILTER_ENTRY_STATS_MAX
};
#define VNIFILTER_ENTRY_STATS_MAX (__VNIFILTER_ENTRY_STATS_MAX - 1 )
enum {
VXLAN_VNIFILTER_ENTRY_UNSPEC,
VXLAN_VNIFILTER_ENTRY_START,
VXLAN_VNIFILTER_ENTRY_END,
VXLAN_VNIFILTER_ENTRY_GROUP,
VXLAN_VNIFILTER_ENTRY_GROUP6,
VXLAN_VNIFILTER_ENTRY_STATS,
__VXLAN_VNIFILTER_ENTRY_MAX
};
#define VXLAN_VNIFILTER_ENTRY_MAX (__VXLAN_VNIFILTER_ENTRY_MAX - 1 )
enum {
VXLAN_VNIFILTER_UNSPEC,
VXLAN_VNIFILTER_ENTRY,
__VXLAN_VNIFILTER_MAX
};
#define VXLAN_VNIFILTER_MAX (__VXLAN_VNIFILTER_MAX - 1 )
enum {
IFLA_VXLAN_UNSPEC,
IFLA_VXLAN_ID,
IFLA_VXLAN_GROUP, /* group or remote address */
IFLA_VXLAN_LINK,
IFLA_VXLAN_LOCAL,
IFLA_VXLAN_TTL,
IFLA_VXLAN_TOS,
IFLA_VXLAN_LEARNING,
IFLA_VXLAN_AGEING,
IFLA_VXLAN_LIMIT,
IFLA_VXLAN_PORT_RANGE, /* source port */
IFLA_VXLAN_PROXY,
IFLA_VXLAN_RSC,
IFLA_VXLAN_L2MISS,
IFLA_VXLAN_L3MISS,
IFLA_VXLAN_PORT, /* destination port */
IFLA_VXLAN_GROUP6,
IFLA_VXLAN_LOCAL6,
IFLA_VXLAN_UDP_CSUM,
IFLA_VXLAN_UDP_ZERO_CSUM6_TX,
IFLA_VXLAN_UDP_ZERO_CSUM6_RX,
IFLA_VXLAN_REMCSUM_TX,
IFLA_VXLAN_REMCSUM_RX,
IFLA_VXLAN_GBP,
IFLA_VXLAN_REMCSUM_NOPARTIAL,
IFLA_VXLAN_COLLECT_METADATA,
IFLA_VXLAN_LABEL,
IFLA_VXLAN_GPE,
IFLA_VXLAN_TTL_INHERIT,
IFLA_VXLAN_DF,
IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */
IFLA_VXLAN_LOCALBYPASS,
IFLA_VXLAN_LABEL_POLICY, /* IPv6 flow label policy; ifla_vxlan_label_policy */
IFLA_VXLAN_RESERVED_BITS,
IFLA_VXLAN_MC_ROUTE,
__IFLA_VXLAN_MAX
};
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1 )
struct ifla_vxlan_port_range {
__be16 low;
__be16 high;
};
enum ifla_vxlan_df {
VXLAN_DF_UNSET = 0 ,
VXLAN_DF_SET,
VXLAN_DF_INHERIT,
__VXLAN_DF_END,
VXLAN_DF_MAX = __VXLAN_DF_END - 1 ,
};
enum ifla_vxlan_label_policy {
VXLAN_LABEL_FIXED = 0 ,
VXLAN_LABEL_INHERIT = 1 ,
__VXLAN_LABEL_END,
VXLAN_LABEL_MAX = __VXLAN_LABEL_END - 1 ,
};
/* GENEVE section */
enum {
IFLA_GENEVE_UNSPEC,
IFLA_GENEVE_ID,
IFLA_GENEVE_REMOTE,
IFLA_GENEVE_TTL,
IFLA_GENEVE_TOS,
IFLA_GENEVE_PORT, /* destination port */
IFLA_GENEVE_COLLECT_METADATA,
IFLA_GENEVE_REMOTE6,
IFLA_GENEVE_UDP_CSUM,
IFLA_GENEVE_UDP_ZERO_CSUM6_TX,
IFLA_GENEVE_UDP_ZERO_CSUM6_RX,
IFLA_GENEVE_LABEL,
IFLA_GENEVE_TTL_INHERIT,
IFLA_GENEVE_DF,
IFLA_GENEVE_INNER_PROTO_INHERIT,
IFLA_GENEVE_PORT_RANGE,
__IFLA_GENEVE_MAX
};
#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1 )
enum ifla_geneve_df {
GENEVE_DF_UNSET = 0 ,
GENEVE_DF_SET,
GENEVE_DF_INHERIT,
__GENEVE_DF_END,
GENEVE_DF_MAX = __GENEVE_DF_END - 1 ,
};
struct ifla_geneve_port_range {
__be16 low;
__be16 high;
};
/* Bareudp section */
enum {
IFLA_BAREUDP_UNSPEC,
IFLA_BAREUDP_PORT,
IFLA_BAREUDP_ETHERTYPE,
IFLA_BAREUDP_SRCPORT_MIN,
IFLA_BAREUDP_MULTIPROTO_MODE,
__IFLA_BAREUDP_MAX
};
#define IFLA_BAREUDP_MAX (__IFLA_BAREUDP_MAX - 1 )
/* PPP section */
enum {
IFLA_PPP_UNSPEC,
IFLA_PPP_DEV_FD,
__IFLA_PPP_MAX
};
#define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1 )
/* GTP section */
enum ifla_gtp_role {
GTP_ROLE_GGSN = 0 ,
GTP_ROLE_SGSN,
};
enum {
IFLA_GTP_UNSPEC,
IFLA_GTP_FD0,
IFLA_GTP_FD1,
IFLA_GTP_PDP_HASHSIZE,
IFLA_GTP_ROLE,
IFLA_GTP_CREATE_SOCKETS,
IFLA_GTP_RESTART_COUNT,
IFLA_GTP_LOCAL,
IFLA_GTP_LOCAL6,
__IFLA_GTP_MAX,
};
#define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1 )
/* Bonding section */
enum {
IFLA_BOND_UNSPEC,
IFLA_BOND_MODE,
IFLA_BOND_ACTIVE_SLAVE,
IFLA_BOND_MIIMON,
IFLA_BOND_UPDELAY,
IFLA_BOND_DOWNDELAY,
IFLA_BOND_USE_CARRIER,
IFLA_BOND_ARP_INTERVAL,
IFLA_BOND_ARP_IP_TARGET,
IFLA_BOND_ARP_VALIDATE,
IFLA_BOND_ARP_ALL_TARGETS,
IFLA_BOND_PRIMARY,
IFLA_BOND_PRIMARY_RESELECT,
IFLA_BOND_FAIL_OVER_MAC,
IFLA_BOND_XMIT_HASH_POLICY,
IFLA_BOND_RESEND_IGMP,
IFLA_BOND_NUM_PEER_NOTIF,
IFLA_BOND_ALL_SLAVES_ACTIVE,
IFLA_BOND_MIN_LINKS,
IFLA_BOND_LP_INTERVAL,
IFLA_BOND_PACKETS_PER_SLAVE,
IFLA_BOND_AD_LACP_RATE,
IFLA_BOND_AD_SELECT,
IFLA_BOND_AD_INFO,
IFLA_BOND_AD_ACTOR_SYS_PRIO,
IFLA_BOND_AD_USER_PORT_KEY,
IFLA_BOND_AD_ACTOR_SYSTEM,
IFLA_BOND_TLB_DYNAMIC_LB,
IFLA_BOND_PEER_NOTIF_DELAY,
IFLA_BOND_AD_LACP_ACTIVE,
IFLA_BOND_MISSED_MAX,
IFLA_BOND_NS_IP6_TARGET,
IFLA_BOND_COUPLED_CONTROL,
IFLA_BOND_BROADCAST_NEIGH,
__IFLA_BOND_MAX,
};
#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1 )
enum {
IFLA_BOND_AD_INFO_UNSPEC,
IFLA_BOND_AD_INFO_AGGREGATOR,
IFLA_BOND_AD_INFO_NUM_PORTS,
IFLA_BOND_AD_INFO_ACTOR_KEY,
IFLA_BOND_AD_INFO_PARTNER_KEY,
IFLA_BOND_AD_INFO_PARTNER_MAC,
__IFLA_BOND_AD_INFO_MAX,
};
#define IFLA_BOND_AD_INFO_MAX (__IFLA_BOND_AD_INFO_MAX - 1 )
enum {
IFLA_BOND_SLAVE_UNSPEC,
IFLA_BOND_SLAVE_STATE,
IFLA_BOND_SLAVE_MII_STATUS,
IFLA_BOND_SLAVE_LINK_FAILURE_COUNT,
IFLA_BOND_SLAVE_PERM_HWADDR,
IFLA_BOND_SLAVE_QUEUE_ID,
IFLA_BOND_SLAVE_AD_AGGREGATOR_ID,
IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE,
IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE,
IFLA_BOND_SLAVE_PRIO,
__IFLA_BOND_SLAVE_MAX,
};
#define IFLA_BOND_SLAVE_MAX (__IFLA_BOND_SLAVE_MAX - 1 )
/* SR-IOV virtual function management section */
enum {
IFLA_VF_INFO_UNSPEC,
IFLA_VF_INFO,
__IFLA_VF_INFO_MAX,
};
#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1 )
enum {
IFLA_VF_UNSPEC,
IFLA_VF_MAC, /* Hardware queue specific attributes */
IFLA_VF_VLAN, /* VLAN ID and QoS */
IFLA_VF_TX_RATE, /* Max TX Bandwidth Allocation */
IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */
IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */
IFLA_VF_RATE, /* Min and Max TX Bandwidth Allocation */
IFLA_VF_RSS_QUERY_EN, /* RSS Redirection Table and Hash Key query
* on / off switch
*/
IFLA_VF_STATS, /* network device statistics */
IFLA_VF_TRUST, /* Trust VF */
IFLA_VF_IB_NODE_GUID, /* VF Infiniband node GUID */
IFLA_VF_IB_PORT_GUID, /* VF Infiniband port GUID */
IFLA_VF_VLAN_LIST, /* nested list of vlans, option for QinQ */
IFLA_VF_BROADCAST, /* VF broadcast */
__IFLA_VF_MAX,
};
#define IFLA_VF_MAX (__IFLA_VF_MAX - 1 )
struct ifla_vf_mac {
__u32 vf;
__u8 mac[32 ]; /* MAX_ADDR_LEN */
};
struct ifla_vf_broadcast {
__u8 broadcast[32 ];
};
struct ifla_vf_vlan {
__u32 vf;
__u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
__u32 qos;
};
enum {
IFLA_VF_VLAN_INFO_UNSPEC,
IFLA_VF_VLAN_INFO, /* VLAN ID, QoS and VLAN protocol */
__IFLA_VF_VLAN_INFO_MAX,
};
#define IFLA_VF_VLAN_INFO_MAX (__IFLA_VF_VLAN_INFO_MAX - 1 )
#define MAX_VLAN_LIST_LEN 1
struct ifla_vf_vlan_info {
__u32 vf;
__u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
__u32 qos;
__be16 vlan_proto; /* VLAN protocol either 802.1Q or 802.1ad */
};
struct ifla_vf_tx_rate {
__u32 vf;
__u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
};
struct ifla_vf_rate {
__u32 vf;
__u32 min_tx_rate; /* Min Bandwidth in Mbps */
__u32 max_tx_rate; /* Max Bandwidth in Mbps */
};
struct ifla_vf_spoofchk {
__u32 vf;
__u32 setting;
};
struct ifla_vf_guid {
__u32 vf;
__u64 guid;
};
enum {
IFLA_VF_LINK_STATE_AUTO, /* link state of the uplink */
IFLA_VF_LINK_STATE_ENABLE, /* link always up */
IFLA_VF_LINK_STATE_DISABLE, /* link always down */
__IFLA_VF_LINK_STATE_MAX,
};
struct ifla_vf_link_state {
__u32 vf;
__u32 link_state;
};
struct ifla_vf_rss_query_en {
__u32 vf;
__u32 setting;
};
enum {
IFLA_VF_STATS_RX_PACKETS,
IFLA_VF_STATS_TX_PACKETS,
IFLA_VF_STATS_RX_BYTES,
IFLA_VF_STATS_TX_BYTES,
IFLA_VF_STATS_BROADCAST,
IFLA_VF_STATS_MULTICAST,
IFLA_VF_STATS_PAD,
IFLA_VF_STATS_RX_DROPPED,
IFLA_VF_STATS_TX_DROPPED,
__IFLA_VF_STATS_MAX,
};
#define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1 )
struct ifla_vf_trust {
__u32 vf;
__u32 setting;
};
/* VF ports management section
*
* Nested layout of set / get msg is :
*
* [ IFLA_NUM_VF ]
* [ IFLA_VF_PORTS ]
* [ IFLA_VF_PORT ]
* [ IFLA_PORT_ * ] , . . .
* [ IFLA_VF_PORT ]
* [ IFLA_PORT_ * ] , . . .
* . . .
* [ IFLA_PORT_SELF ]
* [ IFLA_PORT_ * ] , . . .
*/
enum {
IFLA_VF_PORT_UNSPEC,
IFLA_VF_PORT, /* nest */
__IFLA_VF_PORT_MAX,
};
#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1 )
enum {
IFLA_PORT_UNSPEC,
IFLA_PORT_VF, /* __u32 */
IFLA_PORT_PROFILE, /* string */
IFLA_PORT_VSI_TYPE, /* 802.1Qbg (pre-)standard VDP */
IFLA_PORT_INSTANCE_UUID, /* binary UUID */
IFLA_PORT_HOST_UUID, /* binary UUID */
IFLA_PORT_REQUEST, /* __u8 */
IFLA_PORT_RESPONSE, /* __u16, output only */
__IFLA_PORT_MAX,
};
#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1 )
#define PORT_PROFILE_MAX 40
#define PORT_UUID_MAX 16
#define PORT_SELF_VF -1
enum {
PORT_REQUEST_PREASSOCIATE = 0 ,
PORT_REQUEST_PREASSOCIATE_RR,
PORT_REQUEST_ASSOCIATE,
PORT_REQUEST_DISASSOCIATE,
};
enum {
PORT_VDP_RESPONSE_SUCCESS = 0 ,
PORT_VDP_RESPONSE_INVALID_FORMAT,
PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
PORT_VDP_RESPONSE_UNUSED_VTID,
PORT_VDP_RESPONSE_VTID_VIOLATION,
PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
PORT_VDP_RESPONSE_OUT_OF_SYNC,
/* 0x08-0xFF reserved for future VDP use */
PORT_PROFILE_RESPONSE_SUCCESS = 0 x100,
PORT_PROFILE_RESPONSE_INPROGRESS,
PORT_PROFILE_RESPONSE_INVALID,
PORT_PROFILE_RESPONSE_BADSTATE,
PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
PORT_PROFILE_RESPONSE_ERROR,
};
struct ifla_port_vsi {
__u8 vsi_mgr_id;
__u8 vsi_type_id[3 ];
__u8 vsi_type_version;
__u8 pad[3 ];
};
/* IPoIB section */
enum {
IFLA_IPOIB_UNSPEC,
IFLA_IPOIB_PKEY,
IFLA_IPOIB_MODE,
IFLA_IPOIB_UMCAST,
__IFLA_IPOIB_MAX
};
enum {
IPOIB_MODE_DATAGRAM = 0 , /* using unreliable datagram QPs */
IPOIB_MODE_CONNECTED = 1 , /* using connected QPs */
};
#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1 )
/* HSR/PRP section, both uses same interface */
/* Different redundancy protocols for hsr device */
enum {
HSR_PROTOCOL_HSR,
HSR_PROTOCOL_PRP,
HSR_PROTOCOL_MAX,
};
enum {
IFLA_HSR_UNSPEC,
IFLA_HSR_SLAVE1,
IFLA_HSR_SLAVE2,
IFLA_HSR_MULTICAST_SPEC, /* Last byte of supervision addr */
IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */
IFLA_HSR_SEQ_NR,
IFLA_HSR_VERSION, /* HSR version */
IFLA_HSR_PROTOCOL, /* Indicate different protocol than
* HSR . For example PRP .
*/
IFLA_HSR_INTERLINK, /* HSR interlink network device */
__IFLA_HSR_MAX,
};
#define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1 )
/* STATS section */
struct if_stats_msg {
__u8 family;
__u8 pad1;
__u16 pad2;
__u32 ifindex;
__u32 filter_mask;
};
/* A stats attribute can be netdev specific or a global stat.
* For netdev stats , lets use the prefix IFLA_STATS_LINK_ *
*/
enum {
IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */
IFLA_STATS_LINK_64,
IFLA_STATS_LINK_XSTATS,
IFLA_STATS_LINK_XSTATS_SLAVE,
IFLA_STATS_LINK_OFFLOAD_XSTATS,
IFLA_STATS_AF_SPEC,
__IFLA_STATS_MAX,
};
#define IFLA_STATS_MAX (__IFLA_STATS_MAX - 1 )
#define IFLA_STATS_FILTER_BIT(ATTR) (1 << (ATTR - 1 ))
enum {
IFLA_STATS_GETSET_UNSPEC,
IFLA_STATS_GET_FILTERS, /* Nest of IFLA_STATS_LINK_xxx, each a u32 with
* a filter mask for the corresponding group .
*/
IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS, /* 0 or 1 as u8 */
__IFLA_STATS_GETSET_MAX,
};
#define IFLA_STATS_GETSET_MAX (__IFLA_STATS_GETSET_MAX - 1 )
/* These are embedded into IFLA_STATS_LINK_XSTATS:
* [ IFLA_STATS_LINK_XSTATS ]
* - > [ LINK_XSTATS_TYPE_xxx ]
* - > [ rtnl link type specific attributes ]
*/
enum {
LINK_XSTATS_TYPE_UNSPEC,
LINK_XSTATS_TYPE_BRIDGE,
LINK_XSTATS_TYPE_BOND,
__LINK_XSTATS_TYPE_MAX
};
#define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1 )
/* These are stats embedded into IFLA_STATS_LINK_OFFLOAD_XSTATS */
enum {
IFLA_OFFLOAD_XSTATS_UNSPEC,
IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */
IFLA_OFFLOAD_XSTATS_HW_S_INFO, /* HW stats info. A nest */
IFLA_OFFLOAD_XSTATS_L3_STATS, /* struct rtnl_hw_stats64 */
__IFLA_OFFLOAD_XSTATS_MAX
};
#define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1 )
enum {
IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC,
IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST, /* u8 */
IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED, /* u8 */
__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX,
};
#define IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX \
(__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX - 1 )
/* XDP section */
#define XDP_FLAGS_UPDATE_IF_NOEXIST (1 U << 0 )
#define XDP_FLAGS_SKB_MODE (1 U << 1 )
#define XDP_FLAGS_DRV_MODE (1 U << 2 )
#define XDP_FLAGS_HW_MODE (1 U << 3 )
#define XDP_FLAGS_REPLACE (1 U << 4 )
#define XDP_FLAGS_MODES (XDP_FLAGS_SKB_MODE | \
XDP_FLAGS_DRV_MODE | \
XDP_FLAGS_HW_MODE)
#define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST | \
XDP_FLAGS_MODES | XDP_FLAGS_REPLACE)
/* These are stored into IFLA_XDP_ATTACHED on dump. */
enum {
XDP_ATTACHED_NONE = 0 ,
XDP_ATTACHED_DRV,
XDP_ATTACHED_SKB,
XDP_ATTACHED_HW,
XDP_ATTACHED_MULTI,
};
enum {
IFLA_XDP_UNSPEC,
IFLA_XDP_FD,
IFLA_XDP_ATTACHED,
IFLA_XDP_FLAGS,
IFLA_XDP_PROG_ID,
IFLA_XDP_DRV_PROG_ID,
IFLA_XDP_SKB_PROG_ID,
IFLA_XDP_HW_PROG_ID,
IFLA_XDP_EXPECTED_FD,
__IFLA_XDP_MAX,
};
#define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1 )
enum {
IFLA_EVENT_NONE,
IFLA_EVENT_REBOOT, /* internal reset / reboot */
IFLA_EVENT_FEATURES, /* change in offload features */
IFLA_EVENT_BONDING_FAILOVER, /* change in active slave */
IFLA_EVENT_NOTIFY_PEERS, /* re-sent grat. arp/ndisc */
IFLA_EVENT_IGMP_RESEND, /* re-sent IGMP JOIN */
IFLA_EVENT_BONDING_OPTIONS, /* change in bonding options */
};
/* tun section */
enum {
IFLA_TUN_UNSPEC,
IFLA_TUN_OWNER,
IFLA_TUN_GROUP,
IFLA_TUN_TYPE,
IFLA_TUN_PI,
IFLA_TUN_VNET_HDR,
IFLA_TUN_PERSIST,
IFLA_TUN_MULTI_QUEUE,
IFLA_TUN_NUM_QUEUES,
IFLA_TUN_NUM_DISABLED_QUEUES,
__IFLA_TUN_MAX,
};
#define IFLA_TUN_MAX (__IFLA_TUN_MAX - 1 )
/* rmnet section */
#define RMNET_FLAGS_INGRESS_DEAGGREGATION (1 U << 0 )
#define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1 U << 1 )
#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1 U << 2 )
#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1 U << 3 )
#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1 U << 4 )
#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1 U << 5 )
enum {
IFLA_RMNET_UNSPEC,
IFLA_RMNET_MUX_ID,
IFLA_RMNET_FLAGS,
__IFLA_RMNET_MAX,
};
#define IFLA_RMNET_MAX (__IFLA_RMNET_MAX - 1 )
struct ifla_rmnet_flags {
__u32 flags;
__u32 mask;
};
/* MCTP section */
enum {
IFLA_MCTP_UNSPEC,
IFLA_MCTP_NET,
IFLA_MCTP_PHYS_BINDING,
__IFLA_MCTP_MAX,
};
#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1 )
/* DSA section */
enum {
IFLA_DSA_UNSPEC,
IFLA_DSA_CONDUIT,
/* Deprecated, use IFLA_DSA_CONDUIT instead */
IFLA_DSA_MASTER = IFLA_DSA_CONDUIT,
__IFLA_DSA_MAX,
};
#define IFLA_DSA_MAX (__IFLA_DSA_MAX - 1 )
/* OVPN section */
enum ovpn_mode {
OVPN_MODE_P2P,
OVPN_MODE_MP,
};
enum {
IFLA_OVPN_UNSPEC,
IFLA_OVPN_MODE,
__IFLA_OVPN_MAX,
};
#define IFLA_OVPN_MAX (__IFLA_OVPN_MAX - 1 )
#endif /* _UAPI_LINUX_IF_LINK_H */
Messung V0.5 in Prozent C=93 H=100 G=96
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.61Bemerkung:
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-09-29)
¤
*Eine klare Vorstellung vom Zielzustand