linux/include/uapi/linux/if_link.h
<<
>>
Prefs
   1#ifndef _UAPI_LINUX_IF_LINK_H
   2#define _UAPI_LINUX_IF_LINK_H
   3
   4#include <linux/types.h>
   5#include <linux/netlink.h>
   6
   7/* This struct should be in sync with struct rtnl_link_stats64 */
   8struct rtnl_link_stats {
   9        __u32   rx_packets;             /* total packets received       */
  10        __u32   tx_packets;             /* total packets transmitted    */
  11        __u32   rx_bytes;               /* total bytes received         */
  12        __u32   tx_bytes;               /* total bytes transmitted      */
  13        __u32   rx_errors;              /* bad packets received         */
  14        __u32   tx_errors;              /* packet transmit problems     */
  15        __u32   rx_dropped;             /* no space in linux buffers    */
  16        __u32   tx_dropped;             /* no space available in linux  */
  17        __u32   multicast;              /* multicast packets received   */
  18        __u32   collisions;
  19
  20        /* detailed rx_errors: */
  21        __u32   rx_length_errors;
  22        __u32   rx_over_errors;         /* receiver ring buff overflow  */
  23        __u32   rx_crc_errors;          /* recved pkt with crc error    */
  24        __u32   rx_frame_errors;        /* recv'd frame alignment error */
  25        __u32   rx_fifo_errors;         /* recv'r fifo overrun          */
  26        __u32   rx_missed_errors;       /* receiver missed packet       */
  27
  28        /* detailed tx_errors */
  29        __u32   tx_aborted_errors;
  30        __u32   tx_carrier_errors;
  31        __u32   tx_fifo_errors;
  32        __u32   tx_heartbeat_errors;
  33        __u32   tx_window_errors;
  34
  35        /* for cslip etc */
  36        __u32   rx_compressed;
  37        __u32   tx_compressed;
  38
  39        __u32   rx_nohandler;           /* dropped, no handler found    */
  40};
  41
  42/* The main device statistics structure */
  43struct rtnl_link_stats64 {
  44        __u64   rx_packets;             /* total packets received       */
  45        __u64   tx_packets;             /* total packets transmitted    */
  46        __u64   rx_bytes;               /* total bytes received         */
  47        __u64   tx_bytes;               /* total bytes transmitted      */
  48        __u64   rx_errors;              /* bad packets received         */
  49        __u64   tx_errors;              /* packet transmit problems     */
  50        __u64   rx_dropped;             /* no space in linux buffers    */
  51        __u64   tx_dropped;             /* no space available in linux  */
  52        __u64   multicast;              /* multicast packets received   */
  53        __u64   collisions;
  54
  55        /* detailed rx_errors: */
  56        __u64   rx_length_errors;
  57        __u64   rx_over_errors;         /* receiver ring buff overflow  */
  58        __u64   rx_crc_errors;          /* recved pkt with crc error    */
  59        __u64   rx_frame_errors;        /* recv'd frame alignment error */
  60        __u64   rx_fifo_errors;         /* recv'r fifo overrun          */
  61        __u64   rx_missed_errors;       /* receiver missed packet       */
  62
  63        /* detailed tx_errors */
  64        __u64   tx_aborted_errors;
  65        __u64   tx_carrier_errors;
  66        __u64   tx_fifo_errors;
  67        __u64   tx_heartbeat_errors;
  68        __u64   tx_window_errors;
  69
  70        /* for cslip etc */
  71        __u64   rx_compressed;
  72        __u64   tx_compressed;
  73
  74        __u64   rx_nohandler;           /* dropped, no handler found    */
  75};
  76
  77/* The struct should be in sync with struct ifmap */
  78struct rtnl_link_ifmap {
  79        __u64   mem_start;
  80        __u64   mem_end;
  81        __u64   base_addr;
  82        __u16   irq;
  83        __u8    dma;
  84        __u8    port;
  85};
  86
  87/*
  88 * IFLA_AF_SPEC
  89 *   Contains nested attributes for address family specific attributes.
  90 *   Each address family may create a attribute with the address family
  91 *   number as type and create its own attribute structure in it.
  92 *
  93 *   Example:
  94 *   [IFLA_AF_SPEC] = {
  95 *       [AF_INET] = {
  96 *           [IFLA_INET_CONF] = ...,
  97 *       },
  98 *       [AF_INET6] = {
  99 *           [IFLA_INET6_FLAGS] = ...,
 100 *           [IFLA_INET6_CONF] = ...,
 101 *       }
 102 *   }
 103 */
 104
 105enum {
 106        IFLA_UNSPEC,
 107        IFLA_ADDRESS,
 108        IFLA_BROADCAST,
 109        IFLA_IFNAME,
 110        IFLA_MTU,
 111        IFLA_LINK,
 112        IFLA_QDISC,
 113        IFLA_STATS,
 114        IFLA_COST,
 115#define IFLA_COST IFLA_COST
 116        IFLA_PRIORITY,
 117#define IFLA_PRIORITY IFLA_PRIORITY
 118        IFLA_MASTER,
 119#define IFLA_MASTER IFLA_MASTER
 120        IFLA_WIRELESS,          /* Wireless Extension event - see wireless.h */
 121#define IFLA_WIRELESS IFLA_WIRELESS
 122        IFLA_PROTINFO,          /* Protocol specific information for a link */
 123#define IFLA_PROTINFO IFLA_PROTINFO
 124        IFLA_TXQLEN,
 125#define IFLA_TXQLEN IFLA_TXQLEN
 126        IFLA_MAP,
 127#define IFLA_MAP IFLA_MAP
 128        IFLA_WEIGHT,
 129#define IFLA_WEIGHT IFLA_WEIGHT
 130        IFLA_OPERSTATE,
 131        IFLA_LINKMODE,
 132        IFLA_LINKINFO,
 133#define IFLA_LINKINFO IFLA_LINKINFO
 134        IFLA_NET_NS_PID,
 135        IFLA_IFALIAS,
 136        IFLA_NUM_VF,            /* Number of VFs if device is SR-IOV PF */
 137        IFLA_VFINFO_LIST,
 138        IFLA_STATS64,
 139        IFLA_VF_PORTS,
 140        IFLA_PORT_SELF,
 141        IFLA_AF_SPEC,
 142        IFLA_GROUP,             /* Group the device belongs to */
 143        IFLA_NET_NS_FD,
 144        IFLA_EXT_MASK,          /* Extended info mask, VFs, etc */
 145        IFLA_PROMISCUITY,       /* Promiscuity count: > 0 means acts PROMISC */
 146#define IFLA_PROMISCUITY IFLA_PROMISCUITY
 147        IFLA_NUM_TX_QUEUES,
 148        IFLA_NUM_RX_QUEUES,
 149        IFLA_CARRIER,
 150        IFLA_PHYS_PORT_ID,
 151        IFLA_CARRIER_CHANGES,
 152        IFLA_PHYS_SWITCH_ID,
 153        IFLA_LINK_NETNSID,
 154        IFLA_PHYS_PORT_NAME,
 155        IFLA_PROTO_DOWN,
 156        IFLA_GSO_MAX_SEGS,
 157        IFLA_GSO_MAX_SIZE,
 158        IFLA_PAD,
 159        IFLA_XDP,
 160        __IFLA_MAX
 161};
 162
 163
 164#define IFLA_MAX (__IFLA_MAX - 1)
 165
 166/* backwards compatibility for userspace */
 167#ifndef __KERNEL__
 168#define IFLA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
 169#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
 170#endif
 171
 172enum {
 173        IFLA_INET_UNSPEC,
 174        IFLA_INET_CONF,
 175        __IFLA_INET_MAX,
 176};
 177
 178#define IFLA_INET_MAX (__IFLA_INET_MAX - 1)
 179
 180/* ifi_flags.
 181
 182   IFF_* flags.
 183
 184   The only change is:
 185   IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
 186   more not changeable by user. They describe link media
 187   characteristics and set by device driver.
 188
 189   Comments:
 190   - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
 191   - If neither of these three flags are set;
 192     the interface is NBMA.
 193
 194   - IFF_MULTICAST does not mean anything special:
 195   multicasts can be used on all not-NBMA links.
 196   IFF_MULTICAST means that this media uses special encapsulation
 197   for multicast frames. Apparently, all IFF_POINTOPOINT and
 198   IFF_BROADCAST devices are able to use multicasts too.
 199 */
 200
 201/* IFLA_LINK.
 202   For usual devices it is equal ifi_index.
 203   If it is a "virtual interface" (f.e. tunnel), ifi_link
 204   can point to real physical interface (f.e. for bandwidth calculations),
 205   or maybe 0, what means, that real media is unknown (usual
 206   for IPIP tunnels, when route to endpoint is allowed to change)
 207 */
 208
 209/* Subtype attributes for IFLA_PROTINFO */
 210enum {
 211        IFLA_INET6_UNSPEC,
 212        IFLA_INET6_FLAGS,       /* link flags                   */
 213        IFLA_INET6_CONF,        /* sysctl parameters            */
 214        IFLA_INET6_STATS,       /* statistics                   */
 215        IFLA_INET6_MCAST,       /* MC things. What of them?     */
 216        IFLA_INET6_CACHEINFO,   /* time values and max reasm size */
 217        IFLA_INET6_ICMP6STATS,  /* statistics (icmpv6)          */
 218        IFLA_INET6_TOKEN,       /* device token                 */
 219        IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */
 220        __IFLA_INET6_MAX
 221};
 222
 223#define IFLA_INET6_MAX  (__IFLA_INET6_MAX - 1)
 224
 225enum in6_addr_gen_mode {
 226        IN6_ADDR_GEN_MODE_EUI64,
 227        IN6_ADDR_GEN_MODE_NONE,
 228        IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
 229        IN6_ADDR_GEN_MODE_RANDOM,
 230};
 231
 232/* Bridge section */
 233
 234enum {
 235        IFLA_BR_UNSPEC,
 236        IFLA_BR_FORWARD_DELAY,
 237        IFLA_BR_HELLO_TIME,
 238        IFLA_BR_MAX_AGE,
 239        IFLA_BR_AGEING_TIME,
 240        IFLA_BR_STP_STATE,
 241        IFLA_BR_PRIORITY,
 242        IFLA_BR_VLAN_FILTERING,
 243        IFLA_BR_VLAN_PROTOCOL,
 244        IFLA_BR_GROUP_FWD_MASK,
 245        IFLA_BR_ROOT_ID,
 246        IFLA_BR_BRIDGE_ID,
 247        IFLA_BR_ROOT_PORT,
 248        IFLA_BR_ROOT_PATH_COST,
 249        IFLA_BR_TOPOLOGY_CHANGE,
 250        IFLA_BR_TOPOLOGY_CHANGE_DETECTED,
 251        IFLA_BR_HELLO_TIMER,
 252        IFLA_BR_TCN_TIMER,
 253        IFLA_BR_TOPOLOGY_CHANGE_TIMER,
 254        IFLA_BR_GC_TIMER,
 255        IFLA_BR_GROUP_ADDR,
 256        IFLA_BR_FDB_FLUSH,
 257        IFLA_BR_MCAST_ROUTER,
 258        IFLA_BR_MCAST_SNOOPING,
 259        IFLA_BR_MCAST_QUERY_USE_IFADDR,
 260        IFLA_BR_MCAST_QUERIER,
 261        IFLA_BR_MCAST_HASH_ELASTICITY,
 262        IFLA_BR_MCAST_HASH_MAX,
 263        IFLA_BR_MCAST_LAST_MEMBER_CNT,
 264        IFLA_BR_MCAST_STARTUP_QUERY_CNT,
 265        IFLA_BR_MCAST_LAST_MEMBER_INTVL,
 266        IFLA_BR_MCAST_MEMBERSHIP_INTVL,
 267        IFLA_BR_MCAST_QUERIER_INTVL,
 268        IFLA_BR_MCAST_QUERY_INTVL,
 269        IFLA_BR_MCAST_QUERY_RESPONSE_INTVL,
 270        IFLA_BR_MCAST_STARTUP_QUERY_INTVL,
 271        IFLA_BR_NF_CALL_IPTABLES,
 272        IFLA_BR_NF_CALL_IP6TABLES,
 273        IFLA_BR_NF_CALL_ARPTABLES,
 274        IFLA_BR_VLAN_DEFAULT_PVID,
 275        IFLA_BR_PAD,
 276        IFLA_BR_VLAN_STATS_ENABLED,
 277        IFLA_BR_MCAST_STATS_ENABLED,
 278        __IFLA_BR_MAX,
 279};
 280
 281#define IFLA_BR_MAX     (__IFLA_BR_MAX - 1)
 282
 283struct ifla_bridge_id {
 284        __u8    prio[2];
 285        __u8    addr[6]; /* ETH_ALEN */
 286};
 287
 288enum {
 289        BRIDGE_MODE_UNSPEC,
 290        BRIDGE_MODE_HAIRPIN,
 291};
 292
 293enum {
 294        IFLA_BRPORT_UNSPEC,
 295        IFLA_BRPORT_STATE,      /* Spanning tree state     */
 296        IFLA_BRPORT_PRIORITY,   /* "             priority  */
 297        IFLA_BRPORT_COST,       /* "             cost      */
 298        IFLA_BRPORT_MODE,       /* mode (hairpin)          */
 299        IFLA_BRPORT_GUARD,      /* bpdu guard              */
 300        IFLA_BRPORT_PROTECT,    /* root port protection    */
 301        IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave    */
 302        IFLA_BRPORT_LEARNING,   /* mac learning */
 303        IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */
 304        IFLA_BRPORT_PROXYARP,   /* proxy ARP */
 305        IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */
 306        IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */
 307        IFLA_BRPORT_ROOT_ID,    /* designated root */
 308        IFLA_BRPORT_BRIDGE_ID,  /* designated bridge */
 309        IFLA_BRPORT_DESIGNATED_PORT,
 310        IFLA_BRPORT_DESIGNATED_COST,
 311        IFLA_BRPORT_ID,
 312        IFLA_BRPORT_NO,
 313        IFLA_BRPORT_TOPOLOGY_CHANGE_ACK,
 314        IFLA_BRPORT_CONFIG_PENDING,
 315        IFLA_BRPORT_MESSAGE_AGE_TIMER,
 316        IFLA_BRPORT_FORWARD_DELAY_TIMER,
 317        IFLA_BRPORT_HOLD_TIMER,
 318        IFLA_BRPORT_FLUSH,
 319        IFLA_BRPORT_MULTICAST_ROUTER,
 320        IFLA_BRPORT_PAD,
 321        __IFLA_BRPORT_MAX
 322};
 323#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
 324
 325struct ifla_cacheinfo {
 326        __u32   max_reasm_len;
 327        __u32   tstamp;         /* ipv6InterfaceTable updated timestamp */
 328        __u32   reachable_time;
 329        __u32   retrans_time;
 330};
 331
 332enum {
 333        IFLA_INFO_UNSPEC,
 334        IFLA_INFO_KIND,
 335        IFLA_INFO_DATA,
 336        IFLA_INFO_XSTATS,
 337        IFLA_INFO_SLAVE_KIND,
 338        IFLA_INFO_SLAVE_DATA,
 339        __IFLA_INFO_MAX,
 340};
 341
 342#define IFLA_INFO_MAX   (__IFLA_INFO_MAX - 1)
 343
 344/* VLAN section */
 345
 346enum {
 347        IFLA_VLAN_UNSPEC,
 348        IFLA_VLAN_ID,
 349        IFLA_VLAN_FLAGS,
 350        IFLA_VLAN_EGRESS_QOS,
 351        IFLA_VLAN_INGRESS_QOS,
 352        IFLA_VLAN_PROTOCOL,
 353        __IFLA_VLAN_MAX,
 354};
 355
 356#define IFLA_VLAN_MAX   (__IFLA_VLAN_MAX - 1)
 357
 358struct ifla_vlan_flags {
 359        __u32   flags;
 360        __u32   mask;
 361};
 362
 363enum {
 364        IFLA_VLAN_QOS_UNSPEC,
 365        IFLA_VLAN_QOS_MAPPING,
 366        __IFLA_VLAN_QOS_MAX
 367};
 368
 369#define IFLA_VLAN_QOS_MAX       (__IFLA_VLAN_QOS_MAX - 1)
 370
 371struct ifla_vlan_qos_mapping {
 372        __u32 from;
 373        __u32 to;
 374};
 375
 376/* MACVLAN section */
 377enum {
 378        IFLA_MACVLAN_UNSPEC,
 379        IFLA_MACVLAN_MODE,
 380        IFLA_MACVLAN_FLAGS,
 381        IFLA_MACVLAN_MACADDR_MODE,
 382        IFLA_MACVLAN_MACADDR,
 383        IFLA_MACVLAN_MACADDR_DATA,
 384        IFLA_MACVLAN_MACADDR_COUNT,
 385        __IFLA_MACVLAN_MAX,
 386};
 387
 388#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1)
 389
 390enum macvlan_mode {
 391        MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */
 392        MACVLAN_MODE_VEPA    = 2, /* talk to other ports through ext bridge */
 393        MACVLAN_MODE_BRIDGE  = 4, /* talk to bridge ports directly */
 394        MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */
 395        MACVLAN_MODE_SOURCE  = 16,/* use source MAC address list to assign */
 396};
 397
 398enum macvlan_macaddr_mode {
 399        MACVLAN_MACADDR_ADD,
 400        MACVLAN_MACADDR_DEL,
 401        MACVLAN_MACADDR_FLUSH,
 402        MACVLAN_MACADDR_SET,
 403};
 404
 405#define MACVLAN_FLAG_NOPROMISC  1
 406
 407/* VRF section */
 408enum {
 409        IFLA_VRF_UNSPEC,
 410        IFLA_VRF_TABLE,
 411        __IFLA_VRF_MAX
 412};
 413
 414#define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1)
 415
 416enum {
 417        IFLA_VRF_PORT_UNSPEC,
 418        IFLA_VRF_PORT_TABLE,
 419        __IFLA_VRF_PORT_MAX
 420};
 421
 422#define IFLA_VRF_PORT_MAX (__IFLA_VRF_PORT_MAX - 1)
 423
 424/* MACSEC section */
 425enum {
 426        IFLA_MACSEC_UNSPEC,
 427        IFLA_MACSEC_SCI,
 428        IFLA_MACSEC_PORT,
 429        IFLA_MACSEC_ICV_LEN,
 430        IFLA_MACSEC_CIPHER_SUITE,
 431        IFLA_MACSEC_WINDOW,
 432        IFLA_MACSEC_ENCODING_SA,
 433        IFLA_MACSEC_ENCRYPT,
 434        IFLA_MACSEC_PROTECT,
 435        IFLA_MACSEC_INC_SCI,
 436        IFLA_MACSEC_ES,
 437        IFLA_MACSEC_SCB,
 438        IFLA_MACSEC_REPLAY_PROTECT,
 439        IFLA_MACSEC_VALIDATION,
 440        IFLA_MACSEC_PAD,
 441        __IFLA_MACSEC_MAX,
 442};
 443
 444#define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1)
 445
 446enum macsec_validation_type {
 447        MACSEC_VALIDATE_DISABLED = 0,
 448        MACSEC_VALIDATE_CHECK = 1,
 449        MACSEC_VALIDATE_STRICT = 2,
 450        __MACSEC_VALIDATE_END,
 451        MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1,
 452};
 453
 454/* IPVLAN section */
 455enum {
 456        IFLA_IPVLAN_UNSPEC,
 457        IFLA_IPVLAN_MODE,
 458        __IFLA_IPVLAN_MAX
 459};
 460
 461#define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1)
 462
 463enum ipvlan_mode {
 464        IPVLAN_MODE_L2 = 0,
 465        IPVLAN_MODE_L3,
 466        IPVLAN_MODE_MAX
 467};
 468
 469/* VXLAN section */
 470enum {
 471        IFLA_VXLAN_UNSPEC,
 472        IFLA_VXLAN_ID,
 473        IFLA_VXLAN_GROUP,       /* group or remote address */
 474        IFLA_VXLAN_LINK,
 475        IFLA_VXLAN_LOCAL,
 476        IFLA_VXLAN_TTL,
 477        IFLA_VXLAN_TOS,
 478        IFLA_VXLAN_LEARNING,
 479        IFLA_VXLAN_AGEING,
 480        IFLA_VXLAN_LIMIT,
 481        IFLA_VXLAN_PORT_RANGE,  /* source port */
 482        IFLA_VXLAN_PROXY,
 483        IFLA_VXLAN_RSC,
 484        IFLA_VXLAN_L2MISS,
 485        IFLA_VXLAN_L3MISS,
 486        IFLA_VXLAN_PORT,        /* destination port */
 487        IFLA_VXLAN_GROUP6,
 488        IFLA_VXLAN_LOCAL6,
 489        IFLA_VXLAN_UDP_CSUM,
 490        IFLA_VXLAN_UDP_ZERO_CSUM6_TX,
 491        IFLA_VXLAN_UDP_ZERO_CSUM6_RX,
 492        IFLA_VXLAN_REMCSUM_TX,
 493        IFLA_VXLAN_REMCSUM_RX,
 494        IFLA_VXLAN_GBP,
 495        IFLA_VXLAN_REMCSUM_NOPARTIAL,
 496        IFLA_VXLAN_COLLECT_METADATA,
 497        IFLA_VXLAN_LABEL,
 498        IFLA_VXLAN_GPE,
 499        __IFLA_VXLAN_MAX
 500};
 501#define IFLA_VXLAN_MAX  (__IFLA_VXLAN_MAX - 1)
 502
 503struct ifla_vxlan_port_range {
 504        __be16  low;
 505        __be16  high;
 506};
 507
 508/* GENEVE section */
 509enum {
 510        IFLA_GENEVE_UNSPEC,
 511        IFLA_GENEVE_ID,
 512        IFLA_GENEVE_REMOTE,
 513        IFLA_GENEVE_TTL,
 514        IFLA_GENEVE_TOS,
 515        IFLA_GENEVE_PORT,       /* destination port */
 516        IFLA_GENEVE_COLLECT_METADATA,
 517        IFLA_GENEVE_REMOTE6,
 518        IFLA_GENEVE_UDP_CSUM,
 519        IFLA_GENEVE_UDP_ZERO_CSUM6_TX,
 520        IFLA_GENEVE_UDP_ZERO_CSUM6_RX,
 521        IFLA_GENEVE_LABEL,
 522        __IFLA_GENEVE_MAX
 523};
 524#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
 525
 526/* PPP section */
 527enum {
 528        IFLA_PPP_UNSPEC,
 529        IFLA_PPP_DEV_FD,
 530        __IFLA_PPP_MAX
 531};
 532#define IFLA_PPP_MAX (__IFLA_PPP_MAX - 1)
 533
 534/* GTP section */
 535enum {
 536        IFLA_GTP_UNSPEC,
 537        IFLA_GTP_FD0,
 538        IFLA_GTP_FD1,
 539        IFLA_GTP_PDP_HASHSIZE,
 540        __IFLA_GTP_MAX,
 541};
 542#define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)
 543
 544/* Bonding section */
 545
 546enum {
 547        IFLA_BOND_UNSPEC,
 548        IFLA_BOND_MODE,
 549        IFLA_BOND_ACTIVE_SLAVE,
 550        IFLA_BOND_MIIMON,
 551        IFLA_BOND_UPDELAY,
 552        IFLA_BOND_DOWNDELAY,
 553        IFLA_BOND_USE_CARRIER,
 554        IFLA_BOND_ARP_INTERVAL,
 555        IFLA_BOND_ARP_IP_TARGET,
 556        IFLA_BOND_ARP_VALIDATE,
 557        IFLA_BOND_ARP_ALL_TARGETS,
 558        IFLA_BOND_PRIMARY,
 559        IFLA_BOND_PRIMARY_RESELECT,
 560        IFLA_BOND_FAIL_OVER_MAC,
 561        IFLA_BOND_XMIT_HASH_POLICY,
 562        IFLA_BOND_RESEND_IGMP,
 563        IFLA_BOND_NUM_PEER_NOTIF,
 564        IFLA_BOND_ALL_SLAVES_ACTIVE,
 565        IFLA_BOND_MIN_LINKS,
 566        IFLA_BOND_LP_INTERVAL,
 567        IFLA_BOND_PACKETS_PER_SLAVE,
 568        IFLA_BOND_AD_LACP_RATE,
 569        IFLA_BOND_AD_SELECT,
 570        IFLA_BOND_AD_INFO,
 571        IFLA_BOND_AD_ACTOR_SYS_PRIO,
 572        IFLA_BOND_AD_USER_PORT_KEY,
 573        IFLA_BOND_AD_ACTOR_SYSTEM,
 574        IFLA_BOND_TLB_DYNAMIC_LB,
 575        __IFLA_BOND_MAX,
 576};
 577
 578#define IFLA_BOND_MAX   (__IFLA_BOND_MAX - 1)
 579
 580enum {
 581        IFLA_BOND_AD_INFO_UNSPEC,
 582        IFLA_BOND_AD_INFO_AGGREGATOR,
 583        IFLA_BOND_AD_INFO_NUM_PORTS,
 584        IFLA_BOND_AD_INFO_ACTOR_KEY,
 585        IFLA_BOND_AD_INFO_PARTNER_KEY,
 586        IFLA_BOND_AD_INFO_PARTNER_MAC,
 587        __IFLA_BOND_AD_INFO_MAX,
 588};
 589
 590#define IFLA_BOND_AD_INFO_MAX   (__IFLA_BOND_AD_INFO_MAX - 1)
 591
 592enum {
 593        IFLA_BOND_SLAVE_UNSPEC,
 594        IFLA_BOND_SLAVE_STATE,
 595        IFLA_BOND_SLAVE_MII_STATUS,
 596        IFLA_BOND_SLAVE_LINK_FAILURE_COUNT,
 597        IFLA_BOND_SLAVE_PERM_HWADDR,
 598        IFLA_BOND_SLAVE_QUEUE_ID,
 599        IFLA_BOND_SLAVE_AD_AGGREGATOR_ID,
 600        IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE,
 601        IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE,
 602        __IFLA_BOND_SLAVE_MAX,
 603};
 604
 605#define IFLA_BOND_SLAVE_MAX     (__IFLA_BOND_SLAVE_MAX - 1)
 606
 607/* SR-IOV virtual function management section */
 608
 609enum {
 610        IFLA_VF_INFO_UNSPEC,
 611        IFLA_VF_INFO,
 612        __IFLA_VF_INFO_MAX,
 613};
 614
 615#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1)
 616
 617enum {
 618        IFLA_VF_UNSPEC,
 619        IFLA_VF_MAC,            /* Hardware queue specific attributes */
 620        IFLA_VF_VLAN,
 621        IFLA_VF_TX_RATE,        /* Max TX Bandwidth Allocation */
 622        IFLA_VF_SPOOFCHK,       /* Spoof Checking on/off switch */
 623        IFLA_VF_LINK_STATE,     /* link state enable/disable/auto switch */
 624        IFLA_VF_RATE,           /* Min and Max TX Bandwidth Allocation */
 625        IFLA_VF_RSS_QUERY_EN,   /* RSS Redirection Table and Hash Key query
 626                                 * on/off switch
 627                                 */
 628        IFLA_VF_STATS,          /* network device statistics */
 629        IFLA_VF_TRUST,          /* Trust VF */
 630        IFLA_VF_IB_NODE_GUID,   /* VF Infiniband node GUID */
 631        IFLA_VF_IB_PORT_GUID,   /* VF Infiniband port GUID */
 632        __IFLA_VF_MAX,
 633};
 634
 635#define IFLA_VF_MAX (__IFLA_VF_MAX - 1)
 636
 637struct ifla_vf_mac {
 638        __u32 vf;
 639        __u8 mac[32]; /* MAX_ADDR_LEN */
 640};
 641
 642struct ifla_vf_vlan {
 643        __u32 vf;
 644        __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
 645        __u32 qos;
 646};
 647
 648struct ifla_vf_tx_rate {
 649        __u32 vf;
 650        __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
 651};
 652
 653struct ifla_vf_rate {
 654        __u32 vf;
 655        __u32 min_tx_rate; /* Min Bandwidth in Mbps */
 656        __u32 max_tx_rate; /* Max Bandwidth in Mbps */
 657};
 658
 659struct ifla_vf_spoofchk {
 660        __u32 vf;
 661        __u32 setting;
 662};
 663
 664struct ifla_vf_guid {
 665        __u32 vf;
 666        __u64 guid;
 667};
 668
 669enum {
 670        IFLA_VF_LINK_STATE_AUTO,        /* link state of the uplink */
 671        IFLA_VF_LINK_STATE_ENABLE,      /* link always up */
 672        IFLA_VF_LINK_STATE_DISABLE,     /* link always down */
 673        __IFLA_VF_LINK_STATE_MAX,
 674};
 675
 676struct ifla_vf_link_state {
 677        __u32 vf;
 678        __u32 link_state;
 679};
 680
 681struct ifla_vf_rss_query_en {
 682        __u32 vf;
 683        __u32 setting;
 684};
 685
 686enum {
 687        IFLA_VF_STATS_RX_PACKETS,
 688        IFLA_VF_STATS_TX_PACKETS,
 689        IFLA_VF_STATS_RX_BYTES,
 690        IFLA_VF_STATS_TX_BYTES,
 691        IFLA_VF_STATS_BROADCAST,
 692        IFLA_VF_STATS_MULTICAST,
 693        IFLA_VF_STATS_PAD,
 694        __IFLA_VF_STATS_MAX,
 695};
 696
 697#define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1)
 698
 699struct ifla_vf_trust {
 700        __u32 vf;
 701        __u32 setting;
 702};
 703
 704/* VF ports management section
 705 *
 706 *      Nested layout of set/get msg is:
 707 *
 708 *              [IFLA_NUM_VF]
 709 *              [IFLA_VF_PORTS]
 710 *                      [IFLA_VF_PORT]
 711 *                              [IFLA_PORT_*], ...
 712 *                      [IFLA_VF_PORT]
 713 *                              [IFLA_PORT_*], ...
 714 *                      ...
 715 *              [IFLA_PORT_SELF]
 716 *                      [IFLA_PORT_*], ...
 717 */
 718
 719enum {
 720        IFLA_VF_PORT_UNSPEC,
 721        IFLA_VF_PORT,                   /* nest */
 722        __IFLA_VF_PORT_MAX,
 723};
 724
 725#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1)
 726
 727enum {
 728        IFLA_PORT_UNSPEC,
 729        IFLA_PORT_VF,                   /* __u32 */
 730        IFLA_PORT_PROFILE,              /* string */
 731        IFLA_PORT_VSI_TYPE,             /* 802.1Qbg (pre-)standard VDP */
 732        IFLA_PORT_INSTANCE_UUID,        /* binary UUID */
 733        IFLA_PORT_HOST_UUID,            /* binary UUID */
 734        IFLA_PORT_REQUEST,              /* __u8 */
 735        IFLA_PORT_RESPONSE,             /* __u16, output only */
 736        __IFLA_PORT_MAX,
 737};
 738
 739#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1)
 740
 741#define PORT_PROFILE_MAX        40
 742#define PORT_UUID_MAX           16
 743#define PORT_SELF_VF            -1
 744
 745enum {
 746        PORT_REQUEST_PREASSOCIATE = 0,
 747        PORT_REQUEST_PREASSOCIATE_RR,
 748        PORT_REQUEST_ASSOCIATE,
 749        PORT_REQUEST_DISASSOCIATE,
 750};
 751
 752enum {
 753        PORT_VDP_RESPONSE_SUCCESS = 0,
 754        PORT_VDP_RESPONSE_INVALID_FORMAT,
 755        PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
 756        PORT_VDP_RESPONSE_UNUSED_VTID,
 757        PORT_VDP_RESPONSE_VTID_VIOLATION,
 758        PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
 759        PORT_VDP_RESPONSE_OUT_OF_SYNC,
 760        /* 0x08-0xFF reserved for future VDP use */
 761        PORT_PROFILE_RESPONSE_SUCCESS = 0x100,
 762        PORT_PROFILE_RESPONSE_INPROGRESS,
 763        PORT_PROFILE_RESPONSE_INVALID,
 764        PORT_PROFILE_RESPONSE_BADSTATE,
 765        PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
 766        PORT_PROFILE_RESPONSE_ERROR,
 767};
 768
 769struct ifla_port_vsi {
 770        __u8 vsi_mgr_id;
 771        __u8 vsi_type_id[3];
 772        __u8 vsi_type_version;
 773        __u8 pad[3];
 774};
 775
 776
 777/* IPoIB section */
 778
 779enum {
 780        IFLA_IPOIB_UNSPEC,
 781        IFLA_IPOIB_PKEY,
 782        IFLA_IPOIB_MODE,
 783        IFLA_IPOIB_UMCAST,
 784        __IFLA_IPOIB_MAX
 785};
 786
 787enum {
 788        IPOIB_MODE_DATAGRAM  = 0, /* using unreliable datagram QPs */
 789        IPOIB_MODE_CONNECTED = 1, /* using connected QPs */
 790};
 791
 792#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
 793
 794
 795/* HSR section */
 796
 797enum {
 798        IFLA_HSR_UNSPEC,
 799        IFLA_HSR_SLAVE1,
 800        IFLA_HSR_SLAVE2,
 801        IFLA_HSR_MULTICAST_SPEC,        /* Last byte of supervision addr */
 802        IFLA_HSR_SUPERVISION_ADDR,      /* Supervision frame multicast addr */
 803        IFLA_HSR_SEQ_NR,
 804        IFLA_HSR_VERSION,               /* HSR version */
 805        __IFLA_HSR_MAX,
 806};
 807
 808#define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1)
 809
 810/* STATS section */
 811
 812struct if_stats_msg {
 813        __u8  family;
 814        __u8  pad1;
 815        __u16 pad2;
 816        __u32 ifindex;
 817        __u32 filter_mask;
 818};
 819
 820/* A stats attribute can be netdev specific or a global stat.
 821 * For netdev stats, lets use the prefix IFLA_STATS_LINK_*
 822 */
 823enum {
 824        IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */
 825        IFLA_STATS_LINK_64,
 826        IFLA_STATS_LINK_XSTATS,
 827        IFLA_STATS_LINK_XSTATS_SLAVE,
 828        __IFLA_STATS_MAX,
 829};
 830
 831#define IFLA_STATS_MAX (__IFLA_STATS_MAX - 1)
 832
 833#define IFLA_STATS_FILTER_BIT(ATTR)     (1 << (ATTR - 1))
 834
 835/* These are embedded into IFLA_STATS_LINK_XSTATS:
 836 * [IFLA_STATS_LINK_XSTATS]
 837 * -> [LINK_XSTATS_TYPE_xxx]
 838 *    -> [rtnl link type specific attributes]
 839 */
 840enum {
 841        LINK_XSTATS_TYPE_UNSPEC,
 842        LINK_XSTATS_TYPE_BRIDGE,
 843        __LINK_XSTATS_TYPE_MAX
 844};
 845#define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1)
 846
 847/* XDP section */
 848
 849enum {
 850        IFLA_XDP_UNSPEC,
 851        IFLA_XDP_FD,
 852        IFLA_XDP_ATTACHED,
 853        __IFLA_XDP_MAX,
 854};
 855
 856#define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1)
 857
 858#endif /* _UAPI_LINUX_IF_LINK_H */
 859