1ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#ifndef _LINUX_IF_LINK_H 2ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define _LINUX_IF_LINK_H 3ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 467881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger#include <linux/types.h> 5ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#include <linux/netlink.h> 6ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 704a9fc0a50f9a7677f22c9746cf2f4aadc2c8257Stephen Hemminger/* This struct should be in sync with struct rtnl_link_stats64 */ 8ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct rtnl_link_stats { 9ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_packets; /* total packets received */ 10ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_packets; /* total packets transmitted */ 11ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_bytes; /* total bytes received */ 12ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_bytes; /* total bytes transmitted */ 13ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_errors; /* bad packets received */ 14ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_errors; /* packet transmit problems */ 15ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_dropped; /* no space in linux buffers */ 16ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_dropped; /* no space available in linux */ 17ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 multicast; /* multicast packets received */ 18ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 collisions; 19ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 20ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger /* detailed rx_errors: */ 21ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_length_errors; 22ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_over_errors; /* receiver ring buff overflow */ 23ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_crc_errors; /* recved pkt with crc error */ 24ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_frame_errors; /* recv'd frame alignment error */ 25ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_fifo_errors; /* recv'r fifo overrun */ 26ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_missed_errors; /* receiver missed packet */ 27ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 28ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger /* detailed tx_errors */ 29ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_aborted_errors; 30ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_carrier_errors; 31ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_fifo_errors; 32ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_heartbeat_errors; 33ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_window_errors; 34ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 35ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger /* for cslip etc */ 36ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 rx_compressed; 37ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tx_compressed; 38ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger}; 39ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 4004a9fc0a50f9a7677f22c9746cf2f4aadc2c8257Stephen Hemminger/* The main device statistics structure */ 41b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemmingerstruct rtnl_link_stats64 { 42b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_packets; /* total packets received */ 43b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_packets; /* total packets transmitted */ 44b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_bytes; /* total bytes received */ 45b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_bytes; /* total bytes transmitted */ 46b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_errors; /* bad packets received */ 47b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_errors; /* packet transmit problems */ 48b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_dropped; /* no space in linux buffers */ 49b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_dropped; /* no space available in linux */ 50b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 multicast; /* multicast packets received */ 51b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 collisions; 52b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 53b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger /* detailed rx_errors: */ 54b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_length_errors; 55b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_over_errors; /* receiver ring buff overflow */ 56b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_crc_errors; /* recved pkt with crc error */ 57b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_frame_errors; /* recv'd frame alignment error */ 58b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_fifo_errors; /* recv'r fifo overrun */ 59b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_missed_errors; /* receiver missed packet */ 60b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 61b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger /* detailed tx_errors */ 62b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_aborted_errors; 63b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_carrier_errors; 64b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_fifo_errors; 65b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_heartbeat_errors; 66b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_window_errors; 67b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 68b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger /* for cslip etc */ 69b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 rx_compressed; 70b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u64 tx_compressed; 71b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger}; 72b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 73ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger/* The struct should be in sync with struct ifmap */ 74ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct rtnl_link_ifmap { 75ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u64 mem_start; 76ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u64 mem_end; 77ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u64 base_addr; 78ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u16 irq; 79ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u8 dma; 80ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u8 port; 81ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger}; 82ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 839351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger/* 849351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * IFLA_AF_SPEC 859351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * Contains nested attributes for address family specific attributes. 869351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * Each address family may create a attribute with the address family 879351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * number as type and create its own attribute structure in it. 889351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * 899351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * Example: 909351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * [IFLA_AF_SPEC] = { 919351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * [AF_INET] = { 929351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * [IFLA_INET_CONF] = ..., 939351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * }, 949351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * [AF_INET6] = { 959351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * [IFLA_INET6_FLAGS] = ..., 969351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * [IFLA_INET6_CONF] = ..., 979351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * } 989351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger * } 999351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger */ 1009351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger 101ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 102ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_UNSPEC, 103ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_ADDRESS, 104ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_BROADCAST, 105ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_IFNAME, 106ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_MTU, 107ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_LINK, 108ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_QDISC, 109ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_STATS, 110ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_COST, 111ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_COST IFLA_COST 112ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_PRIORITY, 113ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_PRIORITY IFLA_PRIORITY 114ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_MASTER, 115ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_MASTER IFLA_MASTER 116ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */ 117ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_WIRELESS IFLA_WIRELESS 118ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_PROTINFO, /* Protocol specific information for a link */ 119ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_PROTINFO IFLA_PROTINFO 120ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_TXQLEN, 121ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_TXQLEN IFLA_TXQLEN 122ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_MAP, 123ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_MAP IFLA_MAP 124ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_WEIGHT, 125ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_WEIGHT IFLA_WEIGHT 126ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_OPERSTATE, 127ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_LINKMODE, 128a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_LINKINFO, 129a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define IFLA_LINKINFO IFLA_LINKINFO 1305472ac6f9fab8632b89da31df56419c8423b020dStephen Hemminger IFLA_NET_NS_PID, 13105bfd165958d1859275b0158fedcb00cea58ad0dStephen Hemminger IFLA_IFALIAS, 1328ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger IFLA_NUM_VF, /* Number of VFs if device is SR-IOV PF */ 133a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger IFLA_VFINFO_LIST, 134b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_STATS64, 135b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_VF_PORTS, 136b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_PORT_SELF, 1379351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger IFLA_AF_SPEC, 13821cfb5e1d9dfce7612ba622bcaf8e301268a35c8Stephen Hemminger IFLA_GROUP, /* Group the device belongs to */ 139e760a19a437997820f16846636c0db23faa6d3baStephen Hemminger IFLA_NET_NS_FD, 140c23abafbdcdd3754bea50f1452fed36da5515379Stephen Hemminger IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ 141ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __IFLA_MAX 142ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger}; 143ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 144ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 145ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_MAX (__IFLA_MAX - 1) 146ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 1475a8ba228620604880f47d9087d7c5cdbebb12ffdStephen Hemminger/* backwards compatibility for userspace */ 1485a8ba228620604880f47d9087d7c5cdbebb12ffdStephen Hemminger#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) 1495a8ba228620604880f47d9087d7c5cdbebb12ffdStephen Hemminger#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg)) 1505a8ba228620604880f47d9087d7c5cdbebb12ffdStephen Hemminger 1519351fec72d2bb4e7501c12949855ab252b037bceStephen Hemmingerenum { 1529351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger IFLA_INET_UNSPEC, 1539351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger IFLA_INET_CONF, 1549351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger __IFLA_INET_MAX, 1559351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger}; 1569351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger 1579351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger#define IFLA_INET_MAX (__IFLA_INET_MAX - 1) 1589351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger 159ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger/* ifi_flags. 160ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 161ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFF_* flags. 162ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 163ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger The only change is: 164ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are 165ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger more not changeable by user. They describe link media 166ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger characteristics and set by device driver. 167ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 168ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger Comments: 169ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid 170ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger - If neither of these three flags are set; 171ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger the interface is NBMA. 172ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 173ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger - IFF_MULTICAST does not mean anything special: 174ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger multicasts can be used on all not-NBMA links. 175ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFF_MULTICAST means that this media uses special encapsulation 176ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger for multicast frames. Apparently, all IFF_POINTOPOINT and 177ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFF_BROADCAST devices are able to use multicasts too. 178ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger */ 179ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 180ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger/* IFLA_LINK. 181ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger For usual devices it is equal ifi_index. 182ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger If it is a "virtual interface" (f.e. tunnel), ifi_link 183ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger can point to real physical interface (f.e. for bandwidth calculations), 184ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger or maybe 0, what means, that real media is unknown (usual 185ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger for IPIP tunnels, when route to endpoint is allowed to change) 186ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger */ 187ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 188ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger/* Subtype attributes for IFLA_PROTINFO */ 189ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 190ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_INET6_UNSPEC, 191ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_INET6_FLAGS, /* link flags */ 192ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_INET6_CONF, /* sysctl parameters */ 193ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_INET6_STATS, /* statistics */ 194ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_INET6_MCAST, /* MC things. What of them? */ 195ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger IFLA_INET6_CACHEINFO, /* time values and max reasm size */ 196de3d12f48ac1869fc9f9cb442b2d692b027d8a14Stephen Hemminger IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */ 197ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __IFLA_INET6_MAX 198ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger}; 199ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 200ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) 201ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 202ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct ifla_cacheinfo { 203ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 max_reasm_len; 204ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ 205ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 reachable_time; 206ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger __u32 retrans_time; 207ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger}; 208ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger 209ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 210a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_INFO_UNSPEC, 211a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_INFO_KIND, 212a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_INFO_DATA, 213a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_INFO_XSTATS, 214a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger __IFLA_INFO_MAX, 215a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger}; 216a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger 217a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1) 218a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger 219a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger/* VLAN section */ 220a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger 221ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 222a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_VLAN_UNSPEC, 223a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_VLAN_ID, 224a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_VLAN_FLAGS, 225a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_VLAN_EGRESS_QOS, 226a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_VLAN_INGRESS_QOS, 227a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger __IFLA_VLAN_MAX, 228a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger}; 229a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger 230a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1) 231a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger 232a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemmingerstruct ifla_vlan_flags { 233a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger __u32 flags; 234a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger __u32 mask; 235a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger}; 236a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger 237ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 238a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_VLAN_QOS_UNSPEC, 239a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger IFLA_VLAN_QOS_MAPPING, 240a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger __IFLA_VLAN_QOS_MAX 241a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger}; 242a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger 243a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1) 244a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger 245ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct ifla_vlan_qos_mapping { 246a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger __u32 from; 247a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger __u32 to; 248a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger}; 249a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger 250ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger/* MACVLAN section */ 251ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 252ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger IFLA_MACVLAN_UNSPEC, 253ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger IFLA_MACVLAN_MODE, 254ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger __IFLA_MACVLAN_MAX, 255ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger}; 256ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger 257ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1) 258ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger 259ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum macvlan_mode { 260ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */ 261ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger MACVLAN_MODE_VEPA = 2, /* talk to other ports through ext bridge */ 262ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger MACVLAN_MODE_BRIDGE = 4, /* talk to bridge ports directly */ 2639351fec72d2bb4e7501c12949855ab252b037bceStephen Hemminger MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */ 264ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger}; 265ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemminger 26604a9fc0a50f9a7677f22c9746cf2f4aadc2c8257Stephen Hemminger/* SR-IOV virtual function management section */ 2678ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger 268a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemmingerenum { 269a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger IFLA_VF_INFO_UNSPEC, 270a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger IFLA_VF_INFO, 271a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger __IFLA_VF_INFO_MAX, 272a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger}; 273a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger 274a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1) 275a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger 276a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemmingerenum { 277a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger IFLA_VF_UNSPEC, 278a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger IFLA_VF_MAC, /* Hardware queue specific attributes */ 279a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger IFLA_VF_VLAN, 280a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger IFLA_VF_TX_RATE, /* TX Bandwidth Allocation */ 2819044a4547d73df5c41fd53c83e5ccc2a59200797Stephen Hemminger IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */ 282a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger __IFLA_VF_MAX, 283a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger}; 284a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger 285a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger#define IFLA_VF_MAX (__IFLA_VF_MAX - 1) 286a171395410bb8a6428e099a5b9d55e35a86f3b24Stephen Hemminger 2878ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemmingerstruct ifla_vf_mac { 2888ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger __u32 vf; 2898ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger __u8 mac[32]; /* MAX_ADDR_LEN */ 2908ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger}; 2918ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger 2928ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemmingerstruct ifla_vf_vlan { 2938ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger __u32 vf; 2948ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ 2958ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger __u32 qos; 2968ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger}; 2978ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger 2988ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemmingerstruct ifla_vf_tx_rate { 2998ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger __u32 vf; 3008ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ 3018ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger}; 3028ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger 3039044a4547d73df5c41fd53c83e5ccc2a59200797Stephen Hemmingerstruct ifla_vf_spoofchk { 3048ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger __u32 vf; 3059044a4547d73df5c41fd53c83e5ccc2a59200797Stephen Hemminger __u32 setting; 3068ecdcce08319d0e39b0d32c1d17db3f69d85a35cStephen Hemminger}; 307b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 308b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger/* VF ports management section 309b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * 310b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * Nested layout of set/get msg is: 311b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * 312b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * [IFLA_NUM_VF] 313b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * [IFLA_VF_PORTS] 314b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * [IFLA_VF_PORT] 315b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * [IFLA_PORT_*], ... 316b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * [IFLA_VF_PORT] 317b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * [IFLA_PORT_*], ... 318b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * ... 319b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * [IFLA_PORT_SELF] 320b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger * [IFLA_PORT_*], ... 321b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger */ 322b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 323b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemmingerenum { 324b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_VF_PORT_UNSPEC, 325b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_VF_PORT, /* nest */ 326b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __IFLA_VF_PORT_MAX, 327b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger}; 328b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 329b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1) 330b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 331b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemmingerenum { 332b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_PORT_UNSPEC, 333b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_PORT_VF, /* __u32 */ 334b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_PORT_PROFILE, /* string */ 335b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_PORT_VSI_TYPE, /* 802.1Qbg (pre-)standard VDP */ 336b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_PORT_INSTANCE_UUID, /* binary UUID */ 337b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_PORT_HOST_UUID, /* binary UUID */ 338b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_PORT_REQUEST, /* __u8 */ 339b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger IFLA_PORT_RESPONSE, /* __u16, output only */ 340b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __IFLA_PORT_MAX, 341b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger}; 342b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 343b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1) 344b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 345b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger#define PORT_PROFILE_MAX 40 346b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger#define PORT_UUID_MAX 16 347b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger#define PORT_SELF_VF -1 348b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 349b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemmingerenum { 350b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_REQUEST_PREASSOCIATE = 0, 351b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_REQUEST_PREASSOCIATE_RR, 352b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_REQUEST_ASSOCIATE, 353b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_REQUEST_DISASSOCIATE, 354b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger}; 355b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 356b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemmingerenum { 357b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_VDP_RESPONSE_SUCCESS = 0, 358b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_VDP_RESPONSE_INVALID_FORMAT, 359b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES, 360b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_VDP_RESPONSE_UNUSED_VTID, 361b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_VDP_RESPONSE_VTID_VIOLATION, 362b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION, 363b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_VDP_RESPONSE_OUT_OF_SYNC, 364b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger /* 0x08-0xFF reserved for future VDP use */ 365b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_PROFILE_RESPONSE_SUCCESS = 0x100, 366b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_PROFILE_RESPONSE_INPROGRESS, 367b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_PROFILE_RESPONSE_INVALID, 368b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_PROFILE_RESPONSE_BADSTATE, 369b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES, 370b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger PORT_PROFILE_RESPONSE_ERROR, 371b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger}; 372b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 373b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemmingerstruct ifla_port_vsi { 374b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u8 vsi_mgr_id; 375b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u8 vsi_type_id[3]; 376b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u8 vsi_type_version; 377b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger __u8 pad[3]; 378b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger}; 379b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger 380ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#endif /* _LINUX_IF_LINK_H */ 381