Blame include/uapi/linux/if_link.h

Packit Service 3880ab
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
Packit Service 3880ab
#ifndef _LINUX_IF_LINK_H
Packit Service 3880ab
#define _LINUX_IF_LINK_H
Packit Service 3880ab
Packit Service 3880ab
#include <linux/types.h>
Packit Service 3880ab
#include <linux/netlink.h>
Packit Service 3880ab
Packit Service 3880ab
/* This struct should be in sync with struct rtnl_link_stats64 */
Packit Service 3880ab
struct rtnl_link_stats {
Packit Service 3880ab
	__u32	rx_packets;		/* total packets received	*/
Packit Service 3880ab
	__u32	tx_packets;		/* total packets transmitted	*/
Packit Service 3880ab
	__u32	rx_bytes;		/* total bytes received 	*/
Packit Service 3880ab
	__u32	tx_bytes;		/* total bytes transmitted	*/
Packit Service 3880ab
	__u32	rx_errors;		/* bad packets received		*/
Packit Service 3880ab
	__u32	tx_errors;		/* packet transmit problems	*/
Packit Service 3880ab
	__u32	rx_dropped;		/* no space in linux buffers	*/
Packit Service 3880ab
	__u32	tx_dropped;		/* no space available in linux	*/
Packit Service 3880ab
	__u32	multicast;		/* multicast packets received	*/
Packit Service 3880ab
	__u32	collisions;
Packit Service 3880ab
Packit Service 3880ab
	/* detailed rx_errors: */
Packit Service 3880ab
	__u32	rx_length_errors;
Packit Service 3880ab
	__u32	rx_over_errors;		/* receiver ring buff overflow	*/
Packit Service 3880ab
	__u32	rx_crc_errors;		/* recved pkt with crc error	*/
Packit Service 3880ab
	__u32	rx_frame_errors;	/* recv'd frame alignment error */
Packit Service 3880ab
	__u32	rx_fifo_errors;		/* recv'r fifo overrun		*/
Packit Service 3880ab
	__u32	rx_missed_errors;	/* receiver missed packet	*/
Packit Service 3880ab
Packit Service 3880ab
	/* detailed tx_errors */
Packit Service 3880ab
	__u32	tx_aborted_errors;
Packit Service 3880ab
	__u32	tx_carrier_errors;
Packit Service 3880ab
	__u32	tx_fifo_errors;
Packit Service 3880ab
	__u32	tx_heartbeat_errors;
Packit Service 3880ab
	__u32	tx_window_errors;
Packit Service 3880ab
Packit Service 3880ab
	/* for cslip etc */
Packit Service 3880ab
	__u32	rx_compressed;
Packit Service 3880ab
	__u32	tx_compressed;
Packit Service 3880ab
Packit Service 3880ab
	__u32	rx_nohandler;		/* dropped, no handler found	*/
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* The main device statistics structure */
Packit Service 3880ab
struct rtnl_link_stats64 {
Packit Service 3880ab
	__u64	rx_packets;		/* total packets received	*/
Packit Service 3880ab
	__u64	tx_packets;		/* total packets transmitted	*/
Packit Service 3880ab
	__u64	rx_bytes;		/* total bytes received 	*/
Packit Service 3880ab
	__u64	tx_bytes;		/* total bytes transmitted	*/
Packit Service 3880ab
	__u64	rx_errors;		/* bad packets received		*/
Packit Service 3880ab
	__u64	tx_errors;		/* packet transmit problems	*/
Packit Service 3880ab
	__u64	rx_dropped;		/* no space in linux buffers	*/
Packit Service 3880ab
	__u64	tx_dropped;		/* no space available in linux	*/
Packit Service 3880ab
	__u64	multicast;		/* multicast packets received	*/
Packit Service 3880ab
	__u64	collisions;
Packit Service 3880ab
Packit Service 3880ab
	/* detailed rx_errors: */
Packit Service 3880ab
	__u64	rx_length_errors;
Packit Service 3880ab
	__u64	rx_over_errors;		/* receiver ring buff overflow	*/
Packit Service 3880ab
	__u64	rx_crc_errors;		/* recved pkt with crc error	*/
Packit Service 3880ab
	__u64	rx_frame_errors;	/* recv'd frame alignment error */
Packit Service 3880ab
	__u64	rx_fifo_errors;		/* recv'r fifo overrun		*/
Packit Service 3880ab
	__u64	rx_missed_errors;	/* receiver missed packet	*/
Packit Service 3880ab
Packit Service 3880ab
	/* detailed tx_errors */
Packit Service 3880ab
	__u64	tx_aborted_errors;
Packit Service 3880ab
	__u64	tx_carrier_errors;
Packit Service 3880ab
	__u64	tx_fifo_errors;
Packit Service 3880ab
	__u64	tx_heartbeat_errors;
Packit Service 3880ab
	__u64	tx_window_errors;
Packit Service 3880ab
Packit Service 3880ab
	/* for cslip etc */
Packit Service 3880ab
	__u64	rx_compressed;
Packit Service 3880ab
	__u64	tx_compressed;
Packit Service 3880ab
Packit Service 3880ab
	__u64	rx_nohandler;		/* dropped, no handler found	*/
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* The struct should be in sync with struct ifmap */
Packit Service 3880ab
struct rtnl_link_ifmap {
Packit Service 3880ab
	__u64	mem_start;
Packit Service 3880ab
	__u64	mem_end;
Packit Service 3880ab
	__u64	base_addr;
Packit Service 3880ab
	__u16	irq;
Packit Service 3880ab
	__u8	dma;
Packit Service 3880ab
	__u8	port;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/*
Packit Service 3880ab
 * IFLA_AF_SPEC
Packit Service 3880ab
 *   Contains nested attributes for address family specific attributes.
Packit Service 3880ab
 *   Each address family may create a attribute with the address family
Packit Service 3880ab
 *   number as type and create its own attribute structure in it.
Packit Service 3880ab
 *
Packit Service 3880ab
 *   Example:
Packit Service 3880ab
 *   [IFLA_AF_SPEC] = {
Packit Service 3880ab
 *       [AF_INET] = {
Packit Service 3880ab
 *           [IFLA_INET_CONF] = ...,
Packit Service 3880ab
 *       },
Packit Service 3880ab
 *       [AF_INET6] = {
Packit Service 3880ab
 *           [IFLA_INET6_FLAGS] = ...,
Packit Service 3880ab
 *           [IFLA_INET6_CONF] = ...,
Packit Service 3880ab
 *       }
Packit Service 3880ab
 *   }
Packit Service 3880ab
 */
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_UNSPEC,
Packit Service 3880ab
	IFLA_ADDRESS,
Packit Service 3880ab
	IFLA_BROADCAST,
Packit Service 3880ab
	IFLA_IFNAME,
Packit Service 3880ab
	IFLA_MTU,
Packit Service 3880ab
	IFLA_LINK,
Packit Service 3880ab
	IFLA_QDISC,
Packit Service 3880ab
	IFLA_STATS,
Packit Service 3880ab
	IFLA_COST,
Packit Service 3880ab
#define IFLA_COST IFLA_COST
Packit Service 3880ab
	IFLA_PRIORITY,
Packit Service 3880ab
#define IFLA_PRIORITY IFLA_PRIORITY
Packit Service 3880ab
	IFLA_MASTER,
Packit Service 3880ab
#define IFLA_MASTER IFLA_MASTER
Packit Service 3880ab
	IFLA_WIRELESS,		/* Wireless Extension event - see wireless.h */
Packit Service 3880ab
#define IFLA_WIRELESS IFLA_WIRELESS
Packit Service 3880ab
	IFLA_PROTINFO,		/* Protocol specific information for a link */
Packit Service 3880ab
#define IFLA_PROTINFO IFLA_PROTINFO
Packit Service 3880ab
	IFLA_TXQLEN,
Packit Service 3880ab
#define IFLA_TXQLEN IFLA_TXQLEN
Packit Service 3880ab
	IFLA_MAP,
Packit Service 3880ab
#define IFLA_MAP IFLA_MAP
Packit Service 3880ab
	IFLA_WEIGHT,
Packit Service 3880ab
#define IFLA_WEIGHT IFLA_WEIGHT
Packit Service 3880ab
	IFLA_OPERSTATE,
Packit Service 3880ab
	IFLA_LINKMODE,
Packit Service 3880ab
	IFLA_LINKINFO,
Packit Service 3880ab
#define IFLA_LINKINFO IFLA_LINKINFO
Packit Service 3880ab
	IFLA_NET_NS_PID,
Packit Service 3880ab
	IFLA_IFALIAS,
Packit Service 3880ab
	IFLA_NUM_VF,		/* Number of VFs if device is SR-IOV PF */
Packit Service 3880ab
	IFLA_VFINFO_LIST,
Packit Service 3880ab
	IFLA_STATS64,
Packit Service 3880ab
	IFLA_VF_PORTS,
Packit Service 3880ab
	IFLA_PORT_SELF,
Packit Service 3880ab
	IFLA_AF_SPEC,
Packit Service 3880ab
	IFLA_GROUP,		/* Group the device belongs to */
Packit Service 3880ab
	IFLA_NET_NS_FD,
Packit Service 3880ab
	IFLA_EXT_MASK,		/* Extended info mask, VFs, etc */
Packit Service 3880ab
	IFLA_PROMISCUITY,	/* Promiscuity count: > 0 means acts PROMISC */
Packit Service 3880ab
#define IFLA_PROMISCUITY IFLA_PROMISCUITY
Packit Service 3880ab
	IFLA_NUM_TX_QUEUES,
Packit Service 3880ab
	IFLA_NUM_RX_QUEUES,
Packit Service 3880ab
	IFLA_CARRIER,
Packit Service 3880ab
	IFLA_PHYS_PORT_ID,
Packit Service 3880ab
	IFLA_CARRIER_CHANGES,
Packit Service 3880ab
	IFLA_PHYS_SWITCH_ID,
Packit Service 3880ab
	IFLA_LINK_NETNSID,
Packit Service 3880ab
	IFLA_PHYS_PORT_NAME,
Packit Service 3880ab
	IFLA_PROTO_DOWN,
Packit Service 3880ab
	IFLA_GSO_MAX_SEGS,
Packit Service 3880ab
	IFLA_GSO_MAX_SIZE,
Packit Service 3880ab
	IFLA_PAD,
Packit Service 3880ab
	IFLA_XDP,
Packit Service 3880ab
	IFLA_EVENT,
Packit Service 3880ab
	IFLA_NEW_NETNSID,
Packit Service 3880ab
	IFLA_IF_NETNSID,
Packit Service 3880ab
	IFLA_TARGET_NETNSID = IFLA_IF_NETNSID, /* new alias */
Packit Service 3880ab
	IFLA_CARRIER_UP_COUNT,
Packit Service 3880ab
	IFLA_CARRIER_DOWN_COUNT,
Packit Service 3880ab
	IFLA_NEW_IFINDEX,
Packit Service 3880ab
	IFLA_MIN_MTU,
Packit Service 3880ab
	IFLA_MAX_MTU,
Packit Service 3880ab
	IFLA_PROP_LIST,
Packit Service 3880ab
	IFLA_ALT_IFNAME, /* Alternative ifname */
Packit Service 3880ab
	IFLA_PERM_ADDRESS,
Packit Service 3880ab
	IFLA_PROTO_DOWN_REASON,
Packit Service 3880ab
	__IFLA_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_MAX (__IFLA_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_PROTO_DOWN_REASON_UNSPEC,
Packit Service 3880ab
	IFLA_PROTO_DOWN_REASON_MASK,	/* u32, mask for reason bits */
Packit Service 3880ab
	IFLA_PROTO_DOWN_REASON_VALUE,   /* u32, reason bit value */
Packit Service 3880ab
Packit Service 3880ab
	__IFLA_PROTO_DOWN_REASON_CNT,
Packit Service 3880ab
	IFLA_PROTO_DOWN_REASON_MAX = __IFLA_PROTO_DOWN_REASON_CNT - 1
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* backwards compatibility for userspace */
Packit Service 3880ab
#define IFLA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
Packit Service 3880ab
#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_INET_UNSPEC,
Packit Service 3880ab
	IFLA_INET_CONF,
Packit Service 3880ab
	__IFLA_INET_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_INET_MAX (__IFLA_INET_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* ifi_flags.
Packit Service 3880ab
Packit Service 3880ab
   IFF_* flags.
Packit Service 3880ab
Packit Service 3880ab
   The only change is:
Packit Service 3880ab
   IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
Packit Service 3880ab
   more not changeable by user. They describe link media
Packit Service 3880ab
   characteristics and set by device driver.
Packit Service 3880ab
Packit Service 3880ab
   Comments:
Packit Service 3880ab
   - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
Packit Service 3880ab
   - If neither of these three flags are set;
Packit Service 3880ab
     the interface is NBMA.
Packit Service 3880ab
Packit Service 3880ab
   - IFF_MULTICAST does not mean anything special:
Packit Service 3880ab
   multicasts can be used on all not-NBMA links.
Packit Service 3880ab
   IFF_MULTICAST means that this media uses special encapsulation
Packit Service 3880ab
   for multicast frames. Apparently, all IFF_POINTOPOINT and
Packit Service 3880ab
   IFF_BROADCAST devices are able to use multicasts too.
Packit Service 3880ab
 */
Packit Service 3880ab
Packit Service 3880ab
/* IFLA_LINK.
Packit Service 3880ab
   For usual devices it is equal ifi_index.
Packit Service 3880ab
   If it is a "virtual interface" (f.e. tunnel), ifi_link
Packit Service 3880ab
   can point to real physical interface (f.e. for bandwidth calculations),
Packit Service 3880ab
   or maybe 0, what means, that real media is unknown (usual
Packit Service 3880ab
   for IPIP tunnels, when route to endpoint is allowed to change)
Packit Service 3880ab
 */
Packit Service 3880ab
Packit Service 3880ab
/* Subtype attributes for IFLA_PROTINFO */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_INET6_UNSPEC,
Packit Service 3880ab
	IFLA_INET6_FLAGS,	/* link flags			*/
Packit Service 3880ab
	IFLA_INET6_CONF,	/* sysctl parameters		*/
Packit Service 3880ab
	IFLA_INET6_STATS,	/* statistics			*/
Packit Service 3880ab
	IFLA_INET6_MCAST,	/* MC things. What of them?	*/
Packit Service 3880ab
	IFLA_INET6_CACHEINFO,	/* time values and max reasm size */
Packit Service 3880ab
	IFLA_INET6_ICMP6STATS,	/* statistics (icmpv6)		*/
Packit Service 3880ab
	IFLA_INET6_TOKEN,	/* device token			*/
Packit Service 3880ab
	IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */
Packit Service 3880ab
	__IFLA_INET6_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_INET6_MAX	(__IFLA_INET6_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum in6_addr_gen_mode {
Packit Service 3880ab
	IN6_ADDR_GEN_MODE_EUI64,
Packit Service 3880ab
	IN6_ADDR_GEN_MODE_NONE,
Packit Service 3880ab
	IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
Packit Service 3880ab
	IN6_ADDR_GEN_MODE_RANDOM,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* Bridge section */
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_BR_UNSPEC,
Packit Service 3880ab
	IFLA_BR_FORWARD_DELAY,
Packit Service 3880ab
	IFLA_BR_HELLO_TIME,
Packit Service 3880ab
	IFLA_BR_MAX_AGE,
Packit Service 3880ab
	IFLA_BR_AGEING_TIME,
Packit Service 3880ab
	IFLA_BR_STP_STATE,
Packit Service 3880ab
	IFLA_BR_PRIORITY,
Packit Service 3880ab
	IFLA_BR_VLAN_FILTERING,
Packit Service 3880ab
	IFLA_BR_VLAN_PROTOCOL,
Packit Service 3880ab
	IFLA_BR_GROUP_FWD_MASK,
Packit Service 3880ab
	IFLA_BR_ROOT_ID,
Packit Service 3880ab
	IFLA_BR_BRIDGE_ID,
Packit Service 3880ab
	IFLA_BR_ROOT_PORT,
Packit Service 3880ab
	IFLA_BR_ROOT_PATH_COST,
Packit Service 3880ab
	IFLA_BR_TOPOLOGY_CHANGE,
Packit Service 3880ab
	IFLA_BR_TOPOLOGY_CHANGE_DETECTED,
Packit Service 3880ab
	IFLA_BR_HELLO_TIMER,
Packit Service 3880ab
	IFLA_BR_TCN_TIMER,
Packit Service 3880ab
	IFLA_BR_TOPOLOGY_CHANGE_TIMER,
Packit Service 3880ab
	IFLA_BR_GC_TIMER,
Packit Service 3880ab
	IFLA_BR_GROUP_ADDR,
Packit Service 3880ab
	IFLA_BR_FDB_FLUSH,
Packit Service 3880ab
	IFLA_BR_MCAST_ROUTER,
Packit Service 3880ab
	IFLA_BR_MCAST_SNOOPING,
Packit Service 3880ab
	IFLA_BR_MCAST_QUERY_USE_IFADDR,
Packit Service 3880ab
	IFLA_BR_MCAST_QUERIER,
Packit Service 3880ab
	IFLA_BR_MCAST_HASH_ELASTICITY,
Packit Service 3880ab
	IFLA_BR_MCAST_HASH_MAX,
Packit Service 3880ab
	IFLA_BR_MCAST_LAST_MEMBER_CNT,
Packit Service 3880ab
	IFLA_BR_MCAST_STARTUP_QUERY_CNT,
Packit Service 3880ab
	IFLA_BR_MCAST_LAST_MEMBER_INTVL,
Packit Service 3880ab
	IFLA_BR_MCAST_MEMBERSHIP_INTVL,
Packit Service 3880ab
	IFLA_BR_MCAST_QUERIER_INTVL,
Packit Service 3880ab
	IFLA_BR_MCAST_QUERY_INTVL,
Packit Service 3880ab
	IFLA_BR_MCAST_QUERY_RESPONSE_INTVL,
Packit Service 3880ab
	IFLA_BR_MCAST_STARTUP_QUERY_INTVL,
Packit Service 3880ab
	IFLA_BR_NF_CALL_IPTABLES,
Packit Service 3880ab
	IFLA_BR_NF_CALL_IP6TABLES,
Packit Service 3880ab
	IFLA_BR_NF_CALL_ARPTABLES,
Packit Service 3880ab
	IFLA_BR_VLAN_DEFAULT_PVID,
Packit Service 3880ab
	IFLA_BR_PAD,
Packit Service 3880ab
	IFLA_BR_VLAN_STATS_ENABLED,
Packit Service 3880ab
	IFLA_BR_MCAST_STATS_ENABLED,
Packit Service 3880ab
	IFLA_BR_MCAST_IGMP_VERSION,
Packit Service 3880ab
	IFLA_BR_MCAST_MLD_VERSION,
Packit Service 3880ab
	IFLA_BR_VLAN_STATS_PER_PORT,
Packit Service 3880ab
	IFLA_BR_MULTI_BOOLOPT,
Packit Service 3880ab
	__IFLA_BR_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_BR_MAX	(__IFLA_BR_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
struct ifla_bridge_id {
Packit Service 3880ab
	__u8	prio[2];
Packit Service 3880ab
	__u8	addr[6]; /* ETH_ALEN */
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	BRIDGE_MODE_UNSPEC,
Packit Service 3880ab
	BRIDGE_MODE_HAIRPIN,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_BRPORT_UNSPEC,
Packit Service 3880ab
	IFLA_BRPORT_STATE,	/* Spanning tree state     */
Packit Service 3880ab
	IFLA_BRPORT_PRIORITY,	/* "             priority  */
Packit Service 3880ab
	IFLA_BRPORT_COST,	/* "             cost      */
Packit Service 3880ab
	IFLA_BRPORT_MODE,	/* mode (hairpin)          */
Packit Service 3880ab
	IFLA_BRPORT_GUARD,	/* bpdu guard              */
Packit Service 3880ab
	IFLA_BRPORT_PROTECT,	/* root port protection    */
Packit Service 3880ab
	IFLA_BRPORT_FAST_LEAVE,	/* multicast fast leave    */
Packit Service 3880ab
	IFLA_BRPORT_LEARNING,	/* mac learning */
Packit Service 3880ab
	IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */
Packit Service 3880ab
	IFLA_BRPORT_PROXYARP,	/* proxy ARP */
Packit Service 3880ab
	IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */
Packit Service 3880ab
	IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */
Packit Service 3880ab
	IFLA_BRPORT_ROOT_ID,	/* designated root */
Packit Service 3880ab
	IFLA_BRPORT_BRIDGE_ID,	/* designated bridge */
Packit Service 3880ab
	IFLA_BRPORT_DESIGNATED_PORT,
Packit Service 3880ab
	IFLA_BRPORT_DESIGNATED_COST,
Packit Service 3880ab
	IFLA_BRPORT_ID,
Packit Service 3880ab
	IFLA_BRPORT_NO,
Packit Service 3880ab
	IFLA_BRPORT_TOPOLOGY_CHANGE_ACK,
Packit Service 3880ab
	IFLA_BRPORT_CONFIG_PENDING,
Packit Service 3880ab
	IFLA_BRPORT_MESSAGE_AGE_TIMER,
Packit Service 3880ab
	IFLA_BRPORT_FORWARD_DELAY_TIMER,
Packit Service 3880ab
	IFLA_BRPORT_HOLD_TIMER,
Packit Service 3880ab
	IFLA_BRPORT_FLUSH,
Packit Service 3880ab
	IFLA_BRPORT_MULTICAST_ROUTER,
Packit Service 3880ab
	IFLA_BRPORT_PAD,
Packit Service 3880ab
	IFLA_BRPORT_MCAST_FLOOD,
Packit Service 3880ab
	IFLA_BRPORT_MCAST_TO_UCAST,
Packit Service 3880ab
	IFLA_BRPORT_VLAN_TUNNEL,
Packit Service 3880ab
	IFLA_BRPORT_BCAST_FLOOD,
Packit Service 3880ab
	IFLA_BRPORT_GROUP_FWD_MASK,
Packit Service 3880ab
	IFLA_BRPORT_NEIGH_SUPPRESS,
Packit Service 3880ab
	IFLA_BRPORT_ISOLATED,
Packit Service 3880ab
	IFLA_BRPORT_BACKUP_PORT,
Packit Service 3880ab
	IFLA_BRPORT_MRP_RING_OPEN,
Packit Service 3880ab
	IFLA_BRPORT_MRP_IN_OPEN,
Packit Service 3880ab
	__IFLA_BRPORT_MAX
Packit Service 3880ab
};
Packit Service 3880ab
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
struct ifla_cacheinfo {
Packit Service 3880ab
	__u32	max_reasm_len;
Packit Service 3880ab
	__u32	tstamp;		/* ipv6InterfaceTable updated timestamp */
Packit Service 3880ab
	__u32	reachable_time;
Packit Service 3880ab
	__u32	retrans_time;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_INFO_UNSPEC,
Packit Service 3880ab
	IFLA_INFO_KIND,
Packit Service 3880ab
	IFLA_INFO_DATA,
Packit Service 3880ab
	IFLA_INFO_XSTATS,
Packit Service 3880ab
	IFLA_INFO_SLAVE_KIND,
Packit Service 3880ab
	IFLA_INFO_SLAVE_DATA,
Packit Service 3880ab
	__IFLA_INFO_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_INFO_MAX	(__IFLA_INFO_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* VLAN section */
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VLAN_UNSPEC,
Packit Service 3880ab
	IFLA_VLAN_ID,
Packit Service 3880ab
	IFLA_VLAN_FLAGS,
Packit Service 3880ab
	IFLA_VLAN_EGRESS_QOS,
Packit Service 3880ab
	IFLA_VLAN_INGRESS_QOS,
Packit Service 3880ab
	IFLA_VLAN_PROTOCOL,
Packit Service 3880ab
	__IFLA_VLAN_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_VLAN_MAX	(__IFLA_VLAN_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vlan_flags {
Packit Service 3880ab
	__u32	flags;
Packit Service 3880ab
	__u32	mask;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VLAN_QOS_UNSPEC,
Packit Service 3880ab
	IFLA_VLAN_QOS_MAPPING,
Packit Service 3880ab
	__IFLA_VLAN_QOS_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_VLAN_QOS_MAX	(__IFLA_VLAN_QOS_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vlan_qos_mapping {
Packit Service 3880ab
	__u32 from;
Packit Service 3880ab
	__u32 to;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* MACVLAN section */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_MACVLAN_UNSPEC,
Packit Service 3880ab
	IFLA_MACVLAN_MODE,
Packit Service 3880ab
	IFLA_MACVLAN_FLAGS,
Packit Service 3880ab
	IFLA_MACVLAN_MACADDR_MODE,
Packit Service 3880ab
	IFLA_MACVLAN_MACADDR,
Packit Service 3880ab
	IFLA_MACVLAN_MACADDR_DATA,
Packit Service 3880ab
	IFLA_MACVLAN_MACADDR_COUNT,
Packit Service 3880ab
	__IFLA_MACVLAN_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum macvlan_mode {
Packit Service 3880ab
	MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */
Packit Service 3880ab
	MACVLAN_MODE_VEPA    = 2, /* talk to other ports through ext bridge */
Packit Service 3880ab
	MACVLAN_MODE_BRIDGE  = 4, /* talk to bridge ports directly */
Packit Service 3880ab
	MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */
Packit Service 3880ab
	MACVLAN_MODE_SOURCE  = 16,/* use source MAC address list to assign */
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum macvlan_macaddr_mode {
Packit Service 3880ab
	MACVLAN_MACADDR_ADD,
Packit Service 3880ab
	MACVLAN_MACADDR_DEL,
Packit Service 3880ab
	MACVLAN_MACADDR_FLUSH,
Packit Service 3880ab
	MACVLAN_MACADDR_SET,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define MACVLAN_FLAG_NOPROMISC	1
Packit Service 3880ab
Packit Service 3880ab
/* VRF section */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VRF_UNSPEC,
Packit Service 3880ab
	IFLA_VRF_TABLE,
Packit Service 3880ab
	__IFLA_VRF_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VRF_PORT_UNSPEC,
Packit Service 3880ab
	IFLA_VRF_PORT_TABLE,
Packit Service 3880ab
	__IFLA_VRF_PORT_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* MACSEC section */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_MACSEC_UNSPEC,
Packit Service 3880ab
	IFLA_MACSEC_SCI,
Packit Service 3880ab
	IFLA_MACSEC_PORT,
Packit Service 3880ab
	IFLA_MACSEC_ICV_LEN,
Packit Service 3880ab
	IFLA_MACSEC_CIPHER_SUITE,
Packit Service 3880ab
	IFLA_MACSEC_WINDOW,
Packit Service 3880ab
	IFLA_MACSEC_ENCODING_SA,
Packit Service 3880ab
	IFLA_MACSEC_ENCRYPT,
Packit Service 3880ab
	IFLA_MACSEC_PROTECT,
Packit Service 3880ab
	IFLA_MACSEC_INC_SCI,
Packit Service 3880ab
	IFLA_MACSEC_ES,
Packit Service 3880ab
	IFLA_MACSEC_SCB,
Packit Service 3880ab
	IFLA_MACSEC_REPLAY_PROTECT,
Packit Service 3880ab
	IFLA_MACSEC_VALIDATION,
Packit Service 3880ab
	IFLA_MACSEC_PAD,
Packit Service 3880ab
	IFLA_MACSEC_OFFLOAD,
Packit Service 3880ab
	__IFLA_MACSEC_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* XFRM section */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_XFRM_UNSPEC,
Packit Service 3880ab
	IFLA_XFRM_LINK,
Packit Service 3880ab
	IFLA_XFRM_IF_ID,
Packit Service 3880ab
	__IFLA_XFRM_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum macsec_validation_type {
Packit Service 3880ab
	MACSEC_VALIDATE_DISABLED = 0,
Packit Service 3880ab
	MACSEC_VALIDATE_CHECK = 1,
Packit Service 3880ab
	MACSEC_VALIDATE_STRICT = 2,
Packit Service 3880ab
	__MACSEC_VALIDATE_END,
Packit Service 3880ab
	MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum macsec_offload {
Packit Service 3880ab
	MACSEC_OFFLOAD_OFF = 0,
Packit Service 3880ab
	MACSEC_OFFLOAD_PHY = 1,
Packit Service 3880ab
	MACSEC_OFFLOAD_MAC = 2,
Packit Service 3880ab
	__MACSEC_OFFLOAD_END,
Packit Service 3880ab
	MACSEC_OFFLOAD_MAX = __MACSEC_OFFLOAD_END - 1,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* IPVLAN section */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_IPVLAN_UNSPEC,
Packit Service 3880ab
	IFLA_IPVLAN_MODE,
Packit Service 3880ab
	IFLA_IPVLAN_FLAGS,
Packit Service 3880ab
	__IFLA_IPVLAN_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum ipvlan_mode {
Packit Service 3880ab
	IPVLAN_MODE_L2 = 0,
Packit Service 3880ab
	IPVLAN_MODE_L3,
Packit Service 3880ab
	IPVLAN_MODE_L3S,
Packit Service 3880ab
	IPVLAN_MODE_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IPVLAN_F_PRIVATE	0x01
Packit Service 3880ab
#define IPVLAN_F_VEPA		0x02
Packit Service 3880ab
Packit Service 3880ab
/* VXLAN section */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VXLAN_UNSPEC,
Packit Service 3880ab
	IFLA_VXLAN_ID,
Packit Service 3880ab
	IFLA_VXLAN_GROUP,	/* group or remote address */
Packit Service 3880ab
	IFLA_VXLAN_LINK,
Packit Service 3880ab
	IFLA_VXLAN_LOCAL,
Packit Service 3880ab
	IFLA_VXLAN_TTL,
Packit Service 3880ab
	IFLA_VXLAN_TOS,
Packit Service 3880ab
	IFLA_VXLAN_LEARNING,
Packit Service 3880ab
	IFLA_VXLAN_AGEING,
Packit Service 3880ab
	IFLA_VXLAN_LIMIT,
Packit Service 3880ab
	IFLA_VXLAN_PORT_RANGE,	/* source port */
Packit Service 3880ab
	IFLA_VXLAN_PROXY,
Packit Service 3880ab
	IFLA_VXLAN_RSC,
Packit Service 3880ab
	IFLA_VXLAN_L2MISS,
Packit Service 3880ab
	IFLA_VXLAN_L3MISS,
Packit Service 3880ab
	IFLA_VXLAN_PORT,	/* destination port */
Packit Service 3880ab
	IFLA_VXLAN_GROUP6,
Packit Service 3880ab
	IFLA_VXLAN_LOCAL6,
Packit Service 3880ab
	IFLA_VXLAN_UDP_CSUM,
Packit Service 3880ab
	IFLA_VXLAN_UDP_ZERO_CSUM6_TX,
Packit Service 3880ab
	IFLA_VXLAN_UDP_ZERO_CSUM6_RX,
Packit Service 3880ab
	IFLA_VXLAN_REMCSUM_TX,
Packit Service 3880ab
	IFLA_VXLAN_REMCSUM_RX,
Packit Service 3880ab
	IFLA_VXLAN_GBP,
Packit Service 3880ab
	IFLA_VXLAN_REMCSUM_NOPARTIAL,
Packit Service 3880ab
	IFLA_VXLAN_COLLECT_METADATA,
Packit Service 3880ab
	IFLA_VXLAN_LABEL,
Packit Service 3880ab
	IFLA_VXLAN_GPE,
Packit Service 3880ab
	IFLA_VXLAN_TTL_INHERIT,
Packit Service 3880ab
	IFLA_VXLAN_DF,
Packit Service 3880ab
	__IFLA_VXLAN_MAX
Packit Service 3880ab
};
Packit Service 3880ab
#define IFLA_VXLAN_MAX	(__IFLA_VXLAN_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vxlan_port_range {
Packit Service 3880ab
	__be16	low;
Packit Service 3880ab
	__be16	high;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum ifla_vxlan_df {
Packit Service 3880ab
	VXLAN_DF_UNSET = 0,
Packit Service 3880ab
	VXLAN_DF_SET,
Packit Service 3880ab
	VXLAN_DF_INHERIT,
Packit Service 3880ab
	__VXLAN_DF_END,
Packit Service 3880ab
	VXLAN_DF_MAX = __VXLAN_DF_END - 1,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* GENEVE section */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_GENEVE_UNSPEC,
Packit Service 3880ab
	IFLA_GENEVE_ID,
Packit Service 3880ab
	IFLA_GENEVE_REMOTE,
Packit Service 3880ab
	IFLA_GENEVE_TTL,
Packit Service 3880ab
	IFLA_GENEVE_TOS,
Packit Service 3880ab
	IFLA_GENEVE_PORT,	/* destination port */
Packit Service 3880ab
	IFLA_GENEVE_COLLECT_METADATA,
Packit Service 3880ab
	IFLA_GENEVE_REMOTE6,
Packit Service 3880ab
	IFLA_GENEVE_UDP_CSUM,
Packit Service 3880ab
	IFLA_GENEVE_UDP_ZERO_CSUM6_TX,
Packit Service 3880ab
	IFLA_GENEVE_UDP_ZERO_CSUM6_RX,
Packit Service 3880ab
	IFLA_GENEVE_LABEL,
Packit Service 3880ab
	IFLA_GENEVE_TTL_INHERIT,
Packit Service 3880ab
	IFLA_GENEVE_DF,
Packit Service 3880ab
	__IFLA_GENEVE_MAX
Packit Service 3880ab
};
Packit Service 3880ab
#define IFLA_GENEVE_MAX	(__IFLA_GENEVE_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum ifla_geneve_df {
Packit Service 3880ab
	GENEVE_DF_UNSET = 0,
Packit Service 3880ab
	GENEVE_DF_SET,
Packit Service 3880ab
	GENEVE_DF_INHERIT,
Packit Service 3880ab
	__GENEVE_DF_END,
Packit Service 3880ab
	GENEVE_DF_MAX = __GENEVE_DF_END - 1,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* Bareudp section  */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_BAREUDP_UNSPEC,
Packit Service 3880ab
	IFLA_BAREUDP_PORT,
Packit Service 3880ab
	IFLA_BAREUDP_ETHERTYPE,
Packit Service 3880ab
	IFLA_BAREUDP_SRCPORT_MIN,
Packit Service 3880ab
	IFLA_BAREUDP_MULTIPROTO_MODE,
Packit Service 3880ab
	__IFLA_BAREUDP_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_BAREUDP_MAX (__IFLA_BAREUDP_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* PPP section */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_PPP_UNSPEC,
Packit Service 3880ab
	IFLA_PPP_DEV_FD,
Packit Service 3880ab
	__IFLA_PPP_MAX
Packit Service 3880ab
};
Packit Service 3880ab
#define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* GTP section */
Packit Service 3880ab
Packit Service 3880ab
enum ifla_gtp_role {
Packit Service 3880ab
	GTP_ROLE_GGSN = 0,
Packit Service 3880ab
	GTP_ROLE_SGSN,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_GTP_UNSPEC,
Packit Service 3880ab
	IFLA_GTP_FD0,
Packit Service 3880ab
	IFLA_GTP_FD1,
Packit Service 3880ab
	IFLA_GTP_PDP_HASHSIZE,
Packit Service 3880ab
	IFLA_GTP_ROLE,
Packit Service 3880ab
	__IFLA_GTP_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
#define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* Bonding section */
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_BOND_UNSPEC,
Packit Service 3880ab
	IFLA_BOND_MODE,
Packit Service 3880ab
	IFLA_BOND_ACTIVE_SLAVE,
Packit Service 3880ab
	IFLA_BOND_MIIMON,
Packit Service 3880ab
	IFLA_BOND_UPDELAY,
Packit Service 3880ab
	IFLA_BOND_DOWNDELAY,
Packit Service 3880ab
	IFLA_BOND_USE_CARRIER,
Packit Service 3880ab
	IFLA_BOND_ARP_INTERVAL,
Packit Service 3880ab
	IFLA_BOND_ARP_IP_TARGET,
Packit Service 3880ab
	IFLA_BOND_ARP_VALIDATE,
Packit Service 3880ab
	IFLA_BOND_ARP_ALL_TARGETS,
Packit Service 3880ab
	IFLA_BOND_PRIMARY,
Packit Service 3880ab
	IFLA_BOND_PRIMARY_RESELECT,
Packit Service 3880ab
	IFLA_BOND_FAIL_OVER_MAC,
Packit Service 3880ab
	IFLA_BOND_XMIT_HASH_POLICY,
Packit Service 3880ab
	IFLA_BOND_RESEND_IGMP,
Packit Service 3880ab
	IFLA_BOND_NUM_PEER_NOTIF,
Packit Service 3880ab
	IFLA_BOND_ALL_SLAVES_ACTIVE,
Packit Service 3880ab
	IFLA_BOND_MIN_LINKS,
Packit Service 3880ab
	IFLA_BOND_LP_INTERVAL,
Packit Service 3880ab
	IFLA_BOND_PACKETS_PER_SLAVE,
Packit Service 3880ab
	IFLA_BOND_AD_LACP_RATE,
Packit Service 3880ab
	IFLA_BOND_AD_SELECT,
Packit Service 3880ab
	IFLA_BOND_AD_INFO,
Packit Service 3880ab
	IFLA_BOND_AD_ACTOR_SYS_PRIO,
Packit Service 3880ab
	IFLA_BOND_AD_USER_PORT_KEY,
Packit Service 3880ab
	IFLA_BOND_AD_ACTOR_SYSTEM,
Packit Service 3880ab
	IFLA_BOND_TLB_DYNAMIC_LB,
Packit Service 3880ab
	IFLA_BOND_PEER_NOTIF_DELAY,
Packit Service 3880ab
	__IFLA_BOND_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_BOND_MAX	(__IFLA_BOND_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_BOND_AD_INFO_UNSPEC,
Packit Service 3880ab
	IFLA_BOND_AD_INFO_AGGREGATOR,
Packit Service 3880ab
	IFLA_BOND_AD_INFO_NUM_PORTS,
Packit Service 3880ab
	IFLA_BOND_AD_INFO_ACTOR_KEY,
Packit Service 3880ab
	IFLA_BOND_AD_INFO_PARTNER_KEY,
Packit Service 3880ab
	IFLA_BOND_AD_INFO_PARTNER_MAC,
Packit Service 3880ab
	__IFLA_BOND_AD_INFO_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_BOND_AD_INFO_MAX	(__IFLA_BOND_AD_INFO_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_BOND_SLAVE_UNSPEC,
Packit Service 3880ab
	IFLA_BOND_SLAVE_STATE,
Packit Service 3880ab
	IFLA_BOND_SLAVE_MII_STATUS,
Packit Service 3880ab
	IFLA_BOND_SLAVE_LINK_FAILURE_COUNT,
Packit Service 3880ab
	IFLA_BOND_SLAVE_PERM_HWADDR,
Packit Service 3880ab
	IFLA_BOND_SLAVE_QUEUE_ID,
Packit Service 3880ab
	IFLA_BOND_SLAVE_AD_AGGREGATOR_ID,
Packit Service 3880ab
	IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE,
Packit Service 3880ab
	IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE,
Packit Service 3880ab
	__IFLA_BOND_SLAVE_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_BOND_SLAVE_MAX	(__IFLA_BOND_SLAVE_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* SR-IOV virtual function management section */
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VF_INFO_UNSPEC,
Packit Service 3880ab
	IFLA_VF_INFO,
Packit Service 3880ab
	__IFLA_VF_INFO_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VF_UNSPEC,
Packit Service 3880ab
	IFLA_VF_MAC,		/* Hardware queue specific attributes */
Packit Service 3880ab
	IFLA_VF_VLAN,		/* VLAN ID and QoS */
Packit Service 3880ab
	IFLA_VF_TX_RATE,	/* Max TX Bandwidth Allocation */
Packit Service 3880ab
	IFLA_VF_SPOOFCHK,	/* Spoof Checking on/off switch */
Packit Service 3880ab
	IFLA_VF_LINK_STATE,	/* link state enable/disable/auto switch */
Packit Service 3880ab
	IFLA_VF_RATE,		/* Min and Max TX Bandwidth Allocation */
Packit Service 3880ab
	IFLA_VF_RSS_QUERY_EN,	/* RSS Redirection Table and Hash Key query
Packit Service 3880ab
				 * on/off switch
Packit Service 3880ab
				 */
Packit Service 3880ab
	IFLA_VF_STATS,		/* network device statistics */
Packit Service 3880ab
	IFLA_VF_TRUST,		/* Trust VF */
Packit Service 3880ab
	IFLA_VF_IB_NODE_GUID,	/* VF Infiniband node GUID */
Packit Service 3880ab
	IFLA_VF_IB_PORT_GUID,	/* VF Infiniband port GUID */
Packit Service 3880ab
	IFLA_VF_VLAN_LIST,	/* nested list of vlans, option for QinQ */
Packit Service 3880ab
	IFLA_VF_BROADCAST,	/* VF broadcast */
Packit Service 3880ab
	__IFLA_VF_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_VF_MAX (__IFLA_VF_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_mac {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u8 mac[32]; /* MAX_ADDR_LEN */
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_broadcast {
Packit Service 3880ab
	__u8 broadcast[32];
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_vlan {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
Packit Service 3880ab
	__u32 qos;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VF_VLAN_INFO_UNSPEC,
Packit Service 3880ab
	IFLA_VF_VLAN_INFO,	/* VLAN ID, QoS and VLAN protocol */
Packit Service 3880ab
	__IFLA_VF_VLAN_INFO_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_VF_VLAN_INFO_MAX (__IFLA_VF_VLAN_INFO_MAX - 1)
Packit Service 3880ab
#define MAX_VLAN_LIST_LEN 1
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_vlan_info {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
Packit Service 3880ab
	__u32 qos;
Packit Service 3880ab
	__be16 vlan_proto; /* VLAN protocol either 802.1Q or 802.1ad */
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_tx_rate {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_rate {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u32 min_tx_rate; /* Min Bandwidth in Mbps */
Packit Service 3880ab
	__u32 max_tx_rate; /* Max Bandwidth in Mbps */
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_spoofchk {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u32 setting;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_guid {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u64 guid;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VF_LINK_STATE_AUTO,	/* link state of the uplink */
Packit Service 3880ab
	IFLA_VF_LINK_STATE_ENABLE,	/* link always up */
Packit Service 3880ab
	IFLA_VF_LINK_STATE_DISABLE,	/* link always down */
Packit Service 3880ab
	__IFLA_VF_LINK_STATE_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_link_state {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u32 link_state;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_rss_query_en {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u32 setting;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VF_STATS_RX_PACKETS,
Packit Service 3880ab
	IFLA_VF_STATS_TX_PACKETS,
Packit Service 3880ab
	IFLA_VF_STATS_RX_BYTES,
Packit Service 3880ab
	IFLA_VF_STATS_TX_BYTES,
Packit Service 3880ab
	IFLA_VF_STATS_BROADCAST,
Packit Service 3880ab
	IFLA_VF_STATS_MULTICAST,
Packit Service 3880ab
	IFLA_VF_STATS_PAD,
Packit Service 3880ab
	IFLA_VF_STATS_RX_DROPPED,
Packit Service 3880ab
	IFLA_VF_STATS_TX_DROPPED,
Packit Service 3880ab
	__IFLA_VF_STATS_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
struct ifla_vf_trust {
Packit Service 3880ab
	__u32 vf;
Packit Service 3880ab
	__u32 setting;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* VF ports management section
Packit Service 3880ab
 *
Packit Service 3880ab
 *	Nested layout of set/get msg is:
Packit Service 3880ab
 *
Packit Service 3880ab
 *		[IFLA_NUM_VF]
Packit Service 3880ab
 *		[IFLA_VF_PORTS]
Packit Service 3880ab
 *			[IFLA_VF_PORT]
Packit Service 3880ab
 *				[IFLA_PORT_*], ...
Packit Service 3880ab
 *			[IFLA_VF_PORT]
Packit Service 3880ab
 *				[IFLA_PORT_*], ...
Packit Service 3880ab
 *			...
Packit Service 3880ab
 *		[IFLA_PORT_SELF]
Packit Service 3880ab
 *			[IFLA_PORT_*], ...
Packit Service 3880ab
 */
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_VF_PORT_UNSPEC,
Packit Service 3880ab
	IFLA_VF_PORT,			/* nest */
Packit Service 3880ab
	__IFLA_VF_PORT_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_PORT_UNSPEC,
Packit Service 3880ab
	IFLA_PORT_VF,			/* __u32 */
Packit Service 3880ab
	IFLA_PORT_PROFILE,		/* string */
Packit Service 3880ab
	IFLA_PORT_VSI_TYPE,		/* 802.1Qbg (pre-)standard VDP */
Packit Service 3880ab
	IFLA_PORT_INSTANCE_UUID,	/* binary UUID */
Packit Service 3880ab
	IFLA_PORT_HOST_UUID,		/* binary UUID */
Packit Service 3880ab
	IFLA_PORT_REQUEST,		/* __u8 */
Packit Service 3880ab
	IFLA_PORT_RESPONSE,		/* __u16, output only */
Packit Service 3880ab
	__IFLA_PORT_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
#define PORT_PROFILE_MAX	40
Packit Service 3880ab
#define PORT_UUID_MAX		16
Packit Service 3880ab
#define PORT_SELF_VF		-1
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	PORT_REQUEST_PREASSOCIATE = 0,
Packit Service 3880ab
	PORT_REQUEST_PREASSOCIATE_RR,
Packit Service 3880ab
	PORT_REQUEST_ASSOCIATE,
Packit Service 3880ab
	PORT_REQUEST_DISASSOCIATE,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	PORT_VDP_RESPONSE_SUCCESS = 0,
Packit Service 3880ab
	PORT_VDP_RESPONSE_INVALID_FORMAT,
Packit Service 3880ab
	PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
Packit Service 3880ab
	PORT_VDP_RESPONSE_UNUSED_VTID,
Packit Service 3880ab
	PORT_VDP_RESPONSE_VTID_VIOLATION,
Packit Service 3880ab
	PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
Packit Service 3880ab
	PORT_VDP_RESPONSE_OUT_OF_SYNC,
Packit Service 3880ab
	/* 0x08-0xFF reserved for future VDP use */
Packit Service 3880ab
	PORT_PROFILE_RESPONSE_SUCCESS = 0x100,
Packit Service 3880ab
	PORT_PROFILE_RESPONSE_INPROGRESS,
Packit Service 3880ab
	PORT_PROFILE_RESPONSE_INVALID,
Packit Service 3880ab
	PORT_PROFILE_RESPONSE_BADSTATE,
Packit Service 3880ab
	PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
Packit Service 3880ab
	PORT_PROFILE_RESPONSE_ERROR,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
struct ifla_port_vsi {
Packit Service 3880ab
	__u8 vsi_mgr_id;
Packit Service 3880ab
	__u8 vsi_type_id[3];
Packit Service 3880ab
	__u8 vsi_type_version;
Packit Service 3880ab
	__u8 pad[3];
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
Packit Service 3880ab
/* IPoIB section */
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_IPOIB_UNSPEC,
Packit Service 3880ab
	IFLA_IPOIB_PKEY,
Packit Service 3880ab
	IFLA_IPOIB_MODE,
Packit Service 3880ab
	IFLA_IPOIB_UMCAST,
Packit Service 3880ab
	__IFLA_IPOIB_MAX
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IPOIB_MODE_DATAGRAM  = 0, /* using unreliable datagram QPs */
Packit Service 3880ab
	IPOIB_MODE_CONNECTED = 1, /* using connected QPs */
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
Packit Service 3880ab
/* HSR/PRP section, both uses same interface */
Packit Service 3880ab
Packit Service 3880ab
/* Different redundancy protocols for hsr device */
Packit Service 3880ab
enum {
Packit Service 3880ab
	HSR_PROTOCOL_HSR,
Packit Service 3880ab
	HSR_PROTOCOL_PRP,
Packit Service 3880ab
	HSR_PROTOCOL_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_HSR_UNSPEC,
Packit Service 3880ab
	IFLA_HSR_SLAVE1,
Packit Service 3880ab
	IFLA_HSR_SLAVE2,
Packit Service 3880ab
	IFLA_HSR_MULTICAST_SPEC,	/* Last byte of supervision addr */
Packit Service 3880ab
	IFLA_HSR_SUPERVISION_ADDR,	/* Supervision frame multicast addr */
Packit Service 3880ab
	IFLA_HSR_SEQ_NR,
Packit Service 3880ab
	IFLA_HSR_VERSION,		/* HSR version */
Packit Service 3880ab
	IFLA_HSR_PROTOCOL,		/* Indicate different protocol than
Packit Service 3880ab
					 * HSR. For example PRP.
Packit Service 3880ab
					 */
Packit Service 3880ab
	__IFLA_HSR_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* STATS section */
Packit Service 3880ab
Packit Service 3880ab
struct if_stats_msg {
Packit Service 3880ab
	__u8  family;
Packit Service 3880ab
	__u8  pad1;
Packit Service 3880ab
	__u16 pad2;
Packit Service 3880ab
	__u32 ifindex;
Packit Service 3880ab
	__u32 filter_mask;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* A stats attribute can be netdev specific or a global stat.
Packit Service 3880ab
 * For netdev stats, lets use the prefix IFLA_STATS_LINK_*
Packit Service 3880ab
 */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */
Packit Service 3880ab
	IFLA_STATS_LINK_64,
Packit Service 3880ab
	IFLA_STATS_LINK_XSTATS,
Packit Service 3880ab
	IFLA_STATS_LINK_XSTATS_SLAVE,
Packit Service 3880ab
	IFLA_STATS_LINK_OFFLOAD_XSTATS,
Packit Service 3880ab
	IFLA_STATS_AF_SPEC,
Packit Service 3880ab
	__IFLA_STATS_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_STATS_MAX (__IFLA_STATS_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_STATS_FILTER_BIT(ATTR)	(1 << (ATTR - 1))
Packit Service 3880ab
Packit Service 3880ab
/* These are embedded into IFLA_STATS_LINK_XSTATS:
Packit Service 3880ab
 * [IFLA_STATS_LINK_XSTATS]
Packit Service 3880ab
 * -> [LINK_XSTATS_TYPE_xxx]
Packit Service 3880ab
 *    -> [rtnl link type specific attributes]
Packit Service 3880ab
 */
Packit Service 3880ab
enum {
Packit Service 3880ab
	LINK_XSTATS_TYPE_UNSPEC,
Packit Service 3880ab
	LINK_XSTATS_TYPE_BRIDGE,
Packit Service 3880ab
	LINK_XSTATS_TYPE_BOND,
Packit Service 3880ab
	__LINK_XSTATS_TYPE_MAX
Packit Service 3880ab
};
Packit Service 3880ab
#define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* These are stats embedded into IFLA_STATS_LINK_OFFLOAD_XSTATS */
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_OFFLOAD_XSTATS_UNSPEC,
Packit Service 3880ab
	IFLA_OFFLOAD_XSTATS_CPU_HIT, /* struct rtnl_link_stats64 */
Packit Service 3880ab
	__IFLA_OFFLOAD_XSTATS_MAX
Packit Service 3880ab
};
Packit Service 3880ab
#define IFLA_OFFLOAD_XSTATS_MAX (__IFLA_OFFLOAD_XSTATS_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* XDP section */
Packit Service 3880ab
Packit Service 3880ab
#define XDP_FLAGS_UPDATE_IF_NOEXIST	(1U << 0)
Packit Service 3880ab
#define XDP_FLAGS_SKB_MODE		(1U << 1)
Packit Service 3880ab
#define XDP_FLAGS_DRV_MODE		(1U << 2)
Packit Service 3880ab
#define XDP_FLAGS_HW_MODE		(1U << 3)
Packit Service 3880ab
#define XDP_FLAGS_REPLACE		(1U << 4)
Packit Service 3880ab
#define XDP_FLAGS_MODES			(XDP_FLAGS_SKB_MODE | \
Packit Service 3880ab
					 XDP_FLAGS_DRV_MODE | \
Packit Service 3880ab
					 XDP_FLAGS_HW_MODE)
Packit Service 3880ab
#define XDP_FLAGS_MASK			(XDP_FLAGS_UPDATE_IF_NOEXIST | \
Packit Service 3880ab
					 XDP_FLAGS_MODES | XDP_FLAGS_REPLACE)
Packit Service 3880ab
Packit Service 3880ab
/* These are stored into IFLA_XDP_ATTACHED on dump. */
Packit Service 3880ab
enum {
Packit Service 3880ab
	XDP_ATTACHED_NONE = 0,
Packit Service 3880ab
	XDP_ATTACHED_DRV,
Packit Service 3880ab
	XDP_ATTACHED_SKB,
Packit Service 3880ab
	XDP_ATTACHED_HW,
Packit Service 3880ab
	XDP_ATTACHED_MULTI,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_XDP_UNSPEC,
Packit Service 3880ab
	IFLA_XDP_FD,
Packit Service 3880ab
	IFLA_XDP_ATTACHED,
Packit Service 3880ab
	IFLA_XDP_FLAGS,
Packit Service 3880ab
	IFLA_XDP_PROG_ID,
Packit Service 3880ab
	IFLA_XDP_DRV_PROG_ID,
Packit Service 3880ab
	IFLA_XDP_SKB_PROG_ID,
Packit Service 3880ab
	IFLA_XDP_HW_PROG_ID,
Packit Service 3880ab
	IFLA_XDP_EXPECTED_FD,
Packit Service 3880ab
	__IFLA_XDP_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_EVENT_NONE,
Packit Service 3880ab
	IFLA_EVENT_REBOOT,		/* internal reset / reboot */
Packit Service 3880ab
	IFLA_EVENT_FEATURES,		/* change in offload features */
Packit Service 3880ab
	IFLA_EVENT_BONDING_FAILOVER,	/* change in active slave */
Packit Service 3880ab
	IFLA_EVENT_NOTIFY_PEERS,	/* re-sent grat. arp/ndisc */
Packit Service 3880ab
	IFLA_EVENT_IGMP_RESEND,		/* re-sent IGMP JOIN */
Packit Service 3880ab
	IFLA_EVENT_BONDING_OPTIONS,	/* change in bonding options */
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
/* tun section */
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_TUN_UNSPEC,
Packit Service 3880ab
	IFLA_TUN_OWNER,
Packit Service 3880ab
	IFLA_TUN_GROUP,
Packit Service 3880ab
	IFLA_TUN_TYPE,
Packit Service 3880ab
	IFLA_TUN_PI,
Packit Service 3880ab
	IFLA_TUN_VNET_HDR,
Packit Service 3880ab
	IFLA_TUN_PERSIST,
Packit Service 3880ab
	IFLA_TUN_MULTI_QUEUE,
Packit Service 3880ab
	IFLA_TUN_NUM_QUEUES,
Packit Service 3880ab
	IFLA_TUN_NUM_DISABLED_QUEUES,
Packit Service 3880ab
	__IFLA_TUN_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_TUN_MAX (__IFLA_TUN_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
/* rmnet section */
Packit Service 3880ab
Packit Service 3880ab
#define RMNET_FLAGS_INGRESS_DEAGGREGATION         (1U << 0)
Packit Service 3880ab
#define RMNET_FLAGS_INGRESS_MAP_COMMANDS          (1U << 1)
Packit Service 3880ab
#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4           (1U << 2)
Packit Service 3880ab
#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4            (1U << 3)
Packit Service 3880ab
Packit Service 3880ab
enum {
Packit Service 3880ab
	IFLA_RMNET_UNSPEC,
Packit Service 3880ab
	IFLA_RMNET_MUX_ID,
Packit Service 3880ab
	IFLA_RMNET_FLAGS,
Packit Service 3880ab
	__IFLA_RMNET_MAX,
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#define IFLA_RMNET_MAX	(__IFLA_RMNET_MAX - 1)
Packit Service 3880ab
Packit Service 3880ab
struct ifla_rmnet_flags {
Packit Service 3880ab
	__u32	flags;
Packit Service 3880ab
	__u32	mask;
Packit Service 3880ab
};
Packit Service 3880ab
Packit Service 3880ab
#endif /* _LINUX_IF_LINK_H */