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
  40/* The main device statistics structure */
  41struct rtnl_link_stats64 {
  42        __u64   rx_packets;             /* total packets received       */
  43        __u64   tx_packets;             /* total packets transmitted    */
  44        __u64   rx_bytes;               /* total bytes received         */
  45        __u64   tx_bytes;               /* total bytes transmitted      */
  46        __u64   rx_errors;              /* bad packets received         */
  47        __u64   tx_errors;              /* packet transmit problems     */
  48        __u64   rx_dropped;             /* no space in linux buffers    */
  49        __u64   tx_dropped;             /* no space available in linux  */
  50        __u64   multicast;              /* multicast packets received   */
  51        __u64   collisions;
  52
  53        /* detailed rx_errors: */
  54        __u64   rx_length_errors;
  55        __u64   rx_over_errors;         /* receiver ring buff overflow  */
  56        __u64   rx_crc_errors;          /* recved pkt with crc error    */
  57        __u64   rx_frame_errors;        /* recv'd frame alignment error */
  58        __u64   rx_fifo_errors;         /* recv'r fifo overrun          */
  59        __u64   rx_missed_errors;       /* receiver missed packet       */
  60
  61        /* detailed tx_errors */
  62        __u64   tx_aborted_errors;
  63        __u64   tx_carrier_errors;
  64        __u64   tx_fifo_errors;
  65        __u64   tx_heartbeat_errors;
  66        __u64   tx_window_errors;
  67
  68        /* for cslip etc */
  69        __u64   rx_compressed;
  70        __u64   tx_compressed;
  71};
  72
  73/* The struct should be in sync with struct ifmap */
  74struct rtnl_link_ifmap {
  75        __u64   mem_start;
  76        __u64   mem_end;
  77        __u64   base_addr;
  78        __u16   irq;
  79        __u8    dma;
  80        __u8    port;
  81};
  82
  83/*
  84 * IFLA_AF_SPEC
  85 *   Contains nested attributes for address family specific attributes.
  86 *   Each address family may create a attribute with the address family
  87 *   number as type and create its own attribute structure in it.
  88 *
  89 *   Example:
  90 *   [IFLA_AF_SPEC] = {
  91 *       [AF_INET] = {
  92 *           [IFLA_INET_CONF] = ...,
  93 *       },
  94 *       [AF_INET6] = {
  95 *           [IFLA_INET6_FLAGS] = ...,
  96 *           [IFLA_INET6_CONF] = ...,
  97 *       }
  98 *   }
  99 */
 100
 101enum {
 102        IFLA_UNSPEC,
 103        IFLA_ADDRESS,
 104        IFLA_BROADCAST,
 105        IFLA_IFNAME,
 106        IFLA_MTU,
 107        IFLA_LINK,
 108        IFLA_QDISC,
 109        IFLA_STATS,
 110        IFLA_COST,
 111#define IFLA_COST IFLA_COST
 112        IFLA_PRIORITY,
 113#define IFLA_PRIORITY IFLA_PRIORITY
 114        IFLA_MASTER,
 115#define IFLA_MASTER IFLA_MASTER
 116        IFLA_WIRELESS,          /* Wireless Extension event - see wireless.h */
 117#define IFLA_WIRELESS IFLA_WIRELESS
 118        IFLA_PROTINFO,          /* Protocol specific information for a link */
 119#define IFLA_PROTINFO IFLA_PROTINFO
 120        IFLA_TXQLEN,
 121#define IFLA_TXQLEN IFLA_TXQLEN
 122        IFLA_MAP,
 123#define IFLA_MAP IFLA_MAP
 124        IFLA_WEIGHT,
 125#define IFLA_WEIGHT IFLA_WEIGHT
 126        IFLA_OPERSTATE,
 127        IFLA_LINKMODE,
 128        IFLA_LINKINFO,
 129#define IFLA_LINKINFO IFLA_LINKINFO
 130        IFLA_NET_NS_PID,
 131        IFLA_IFALIAS,
 132        IFLA_NUM_VF,            /* Number of VFs if device is SR-IOV PF */
 133        IFLA_VFINFO_LIST,
 134        IFLA_STATS64,
 135        IFLA_VF_PORTS,
 136        IFLA_PORT_SELF,
 137        IFLA_AF_SPEC,
 138        IFLA_GROUP,             /* Group the device belongs to */
 139        IFLA_NET_NS_FD,
 140        IFLA_EXT_MASK,          /* Extended info mask, VFs, etc */
 141        IFLA_PROMISCUITY,       /* Promiscuity count: > 0 means acts PROMISC */
 142#define IFLA_PROMISCUITY IFLA_PROMISCUITY
 143        IFLA_NUM_TX_QUEUES,
 144        IFLA_NUM_RX_QUEUES,
 145        IFLA_CARRIER,
 146        IFLA_PHYS_PORT_ID,
 147        IFLA_CARRIER_CHANGES,
 148        IFLA_PHYS_SWITCH_ID,
 149        IFLA_LINK_NETNSID,
 150        IFLA_PHYS_PORT_NAME,
 151        __IFLA_MAX
 152};
 153
 154
 155#define IFLA_MAX (__IFLA_MAX - 1)
 156
 157/* backwards compatibility for userspace */
 158#ifndef __KERNEL__
 159#define IFLA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
 160#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
 161#endif
 162
 163enum {
 164        IFLA_INET_UNSPEC,
 165        IFLA_INET_CONF,
 166        __IFLA_INET_MAX,
 167};
 168
 169#define IFLA_INET_MAX (__IFLA_INET_MAX - 1)
 170
 171/* ifi_flags.
 172
 173   IFF_* flags.
 174
 175   The only change is:
 176   IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
 177   more not changeable by user. They describe link media
 178   characteristics and set by device driver.
 179
 180   Comments:
 181   - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
 182   - If neither of these three flags are set;
 183     the interface is NBMA.
 184
 185   - IFF_MULTICAST does not mean anything special:
 186   multicasts can be used on all not-NBMA links.
 187   IFF_MULTICAST means that this media uses special encapsulation
 188   for multicast frames. Apparently, all IFF_POINTOPOINT and
 189   IFF_BROADCAST devices are able to use multicasts too.
 190 */
 191
 192/* IFLA_LINK.
 193   For usual devices it is equal ifi_index.
 194   If it is a "virtual interface" (f.e. tunnel), ifi_link
 195   can point to real physical interface (f.e. for bandwidth calculations),
 196   or maybe 0, what means, that real media is unknown (usual
 197   for IPIP tunnels, when route to endpoint is allowed to change)
 198 */
 199
 200/* Subtype attributes for IFLA_PROTINFO */
 201enum {
 202        IFLA_INET6_UNSPEC,
 203        IFLA_INET6_FLAGS,       /* link flags                   */
 204        IFLA_INET6_CONF,        /* sysctl parameters            */
 205        IFLA_INET6_STATS,       /* statistics                   */
 206        IFLA_INET6_MCAST,       /* MC things. What of them?     */
 207        IFLA_INET6_CACHEINFO,   /* time values and max reasm size */
 208        IFLA_INET6_ICMP6STATS,  /* statistics (icmpv6)          */
 209        IFLA_INET6_TOKEN,       /* device token                 */
 210        IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */
 211        __IFLA_INET6_MAX
 212};
 213
 214#define IFLA_INET6_MAX  (__IFLA_INET6_MAX - 1)
 215
 216enum in6_addr_gen_mode {
 217        IN6_ADDR_GEN_MODE_EUI64,
 218        IN6_ADDR_GEN_MODE_NONE,
 219        IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
 220};
 221
 222/* Bridge section */
 223
 224enum {
 225        IFLA_BR_UNSPEC,
 226        IFLA_BR_FORWARD_DELAY,
 227        IFLA_BR_HELLO_TIME,
 228        IFLA_BR_MAX_AGE,
 229        IFLA_BR_AGEING_TIME,
 230        IFLA_BR_STP_STATE,
 231        IFLA_BR_PRIORITY,
 232        __IFLA_BR_MAX,
 233};
 234
 235#define IFLA_BR_MAX     (__IFLA_BR_MAX - 1)
 236
 237enum {
 238        BRIDGE_MODE_UNSPEC,
 239        BRIDGE_MODE_HAIRPIN,
 240};
 241
 242enum {
 243        IFLA_BRPORT_UNSPEC,
 244        IFLA_BRPORT_STATE,      /* Spanning tree state     */
 245        IFLA_BRPORT_PRIORITY,   /* "             priority  */
 246        IFLA_BRPORT_COST,       /* "             cost      */
 247        IFLA_BRPORT_MODE,       /* mode (hairpin)          */
 248        IFLA_BRPORT_GUARD,      /* bpdu guard              */
 249        IFLA_BRPORT_PROTECT,    /* root port protection    */
 250        IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave    */
 251        IFLA_BRPORT_LEARNING,   /* mac learning */
 252        IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */
 253        IFLA_BRPORT_PROXYARP,   /* proxy ARP */
 254        IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */
 255        IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */
 256        __IFLA_BRPORT_MAX
 257};
 258#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
 259
 260struct ifla_cacheinfo {
 261        __u32   max_reasm_len;
 262        __u32   tstamp;         /* ipv6InterfaceTable updated timestamp */
 263        __u32   reachable_time;
 264        __u32   retrans_time;
 265};
 266
 267enum {
 268        IFLA_INFO_UNSPEC,
 269        IFLA_INFO_KIND,
 270        IFLA_INFO_DATA,
 271        IFLA_INFO_XSTATS,
 272        IFLA_INFO_SLAVE_KIND,
 273        IFLA_INFO_SLAVE_DATA,
 274        __IFLA_INFO_MAX,
 275};
 276
 277#define IFLA_INFO_MAX   (__IFLA_INFO_MAX - 1)
 278
 279/* VLAN section */
 280
 281enum {
 282        IFLA_VLAN_UNSPEC,
 283        IFLA_VLAN_ID,
 284        IFLA_VLAN_FLAGS,
 285        IFLA_VLAN_EGRESS_QOS,
 286        IFLA_VLAN_INGRESS_QOS,
 287        IFLA_VLAN_PROTOCOL,
 288        __IFLA_VLAN_MAX,
 289};
 290
 291#define IFLA_VLAN_MAX   (__IFLA_VLAN_MAX - 1)
 292
 293struct ifla_vlan_flags {
 294        __u32   flags;
 295        __u32   mask;
 296};
 297
 298enum {
 299        IFLA_VLAN_QOS_UNSPEC,
 300        IFLA_VLAN_QOS_MAPPING,
 301        __IFLA_VLAN_QOS_MAX
 302};
 303
 304#define IFLA_VLAN_QOS_MAX       (__IFLA_VLAN_QOS_MAX - 1)
 305
 306struct ifla_vlan_qos_mapping {
 307        __u32 from;
 308        __u32 to;
 309};
 310
 311/* MACVLAN section */
 312enum {
 313        IFLA_MACVLAN_UNSPEC,
 314        IFLA_MACVLAN_MODE,
 315        IFLA_MACVLAN_FLAGS,
 316        IFLA_MACVLAN_MACADDR_MODE,
 317        IFLA_MACVLAN_MACADDR,
 318        IFLA_MACVLAN_MACADDR_DATA,
 319        IFLA_MACVLAN_MACADDR_COUNT,
 320        __IFLA_MACVLAN_MAX,
 321};
 322
 323#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1)
 324
 325enum macvlan_mode {
 326        MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */
 327        MACVLAN_MODE_VEPA    = 2, /* talk to other ports through ext bridge */
 328        MACVLAN_MODE_BRIDGE  = 4, /* talk to bridge ports directly */
 329        MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */
 330        MACVLAN_MODE_SOURCE  = 16,/* use source MAC address list to assign */
 331};
 332
 333enum macvlan_macaddr_mode {
 334        MACVLAN_MACADDR_ADD,
 335        MACVLAN_MACADDR_DEL,
 336        MACVLAN_MACADDR_FLUSH,
 337        MACVLAN_MACADDR_SET,
 338};
 339
 340#define MACVLAN_FLAG_NOPROMISC  1
 341
 342/* IPVLAN section */
 343enum {
 344        IFLA_IPVLAN_UNSPEC,
 345        IFLA_IPVLAN_MODE,
 346        __IFLA_IPVLAN_MAX
 347};
 348
 349#define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1)
 350
 351enum ipvlan_mode {
 352        IPVLAN_MODE_L2 = 0,
 353        IPVLAN_MODE_L3,
 354        IPVLAN_MODE_MAX
 355};
 356
 357/* VXLAN section */
 358enum {
 359        IFLA_VXLAN_UNSPEC,
 360        IFLA_VXLAN_ID,
 361        IFLA_VXLAN_GROUP,       /* group or remote address */
 362        IFLA_VXLAN_LINK,
 363        IFLA_VXLAN_LOCAL,
 364        IFLA_VXLAN_TTL,
 365        IFLA_VXLAN_TOS,
 366        IFLA_VXLAN_LEARNING,
 367        IFLA_VXLAN_AGEING,
 368        IFLA_VXLAN_LIMIT,
 369        IFLA_VXLAN_PORT_RANGE,  /* source port */
 370        IFLA_VXLAN_PROXY,
 371        IFLA_VXLAN_RSC,
 372        IFLA_VXLAN_L2MISS,
 373        IFLA_VXLAN_L3MISS,
 374        IFLA_VXLAN_PORT,        /* destination port */
 375        IFLA_VXLAN_GROUP6,
 376        IFLA_VXLAN_LOCAL6,
 377        IFLA_VXLAN_UDP_CSUM,
 378        IFLA_VXLAN_UDP_ZERO_CSUM6_TX,
 379        IFLA_VXLAN_UDP_ZERO_CSUM6_RX,
 380        IFLA_VXLAN_REMCSUM_TX,
 381        IFLA_VXLAN_REMCSUM_RX,
 382        IFLA_VXLAN_GBP,
 383        IFLA_VXLAN_REMCSUM_NOPARTIAL,
 384        __IFLA_VXLAN_MAX
 385};
 386#define IFLA_VXLAN_MAX  (__IFLA_VXLAN_MAX - 1)
 387
 388struct ifla_vxlan_port_range {
 389        __be16  low;
 390        __be16  high;
 391};
 392
 393/* GENEVE section */
 394enum {
 395        IFLA_GENEVE_UNSPEC,
 396        IFLA_GENEVE_ID,
 397        IFLA_GENEVE_REMOTE,
 398        IFLA_GENEVE_TTL,
 399        IFLA_GENEVE_TOS,
 400        __IFLA_GENEVE_MAX
 401};
 402#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
 403
 404/* Bonding section */
 405
 406enum {
 407        IFLA_BOND_UNSPEC,
 408        IFLA_BOND_MODE,
 409        IFLA_BOND_ACTIVE_SLAVE,
 410        IFLA_BOND_MIIMON,
 411        IFLA_BOND_UPDELAY,
 412        IFLA_BOND_DOWNDELAY,
 413        IFLA_BOND_USE_CARRIER,
 414        IFLA_BOND_ARP_INTERVAL,
 415        IFLA_BOND_ARP_IP_TARGET,
 416        IFLA_BOND_ARP_VALIDATE,
 417        IFLA_BOND_ARP_ALL_TARGETS,
 418        IFLA_BOND_PRIMARY,
 419        IFLA_BOND_PRIMARY_RESELECT,
 420        IFLA_BOND_FAIL_OVER_MAC,
 421        IFLA_BOND_XMIT_HASH_POLICY,
 422        IFLA_BOND_RESEND_IGMP,
 423        IFLA_BOND_NUM_PEER_NOTIF,
 424        IFLA_BOND_ALL_SLAVES_ACTIVE,
 425        IFLA_BOND_MIN_LINKS,
 426        IFLA_BOND_LP_INTERVAL,
 427        IFLA_BOND_PACKETS_PER_SLAVE,
 428        IFLA_BOND_AD_LACP_RATE,
 429        IFLA_BOND_AD_SELECT,
 430        IFLA_BOND_AD_INFO,
 431        IFLA_BOND_AD_ACTOR_SYS_PRIO,
 432        IFLA_BOND_AD_USER_PORT_KEY,
 433        IFLA_BOND_AD_ACTOR_SYSTEM,
 434        __IFLA_BOND_MAX,
 435};
 436
 437#define IFLA_BOND_MAX   (__IFLA_BOND_MAX - 1)
 438
 439enum {
 440        IFLA_BOND_AD_INFO_UNSPEC,
 441        IFLA_BOND_AD_INFO_AGGREGATOR,
 442        IFLA_BOND_AD_INFO_NUM_PORTS,
 443        IFLA_BOND_AD_INFO_ACTOR_KEY,
 444        IFLA_BOND_AD_INFO_PARTNER_KEY,
 445        IFLA_BOND_AD_INFO_PARTNER_MAC,
 446        __IFLA_BOND_AD_INFO_MAX,
 447};
 448
 449#define IFLA_BOND_AD_INFO_MAX   (__IFLA_BOND_AD_INFO_MAX - 1)
 450
 451enum {
 452        IFLA_BOND_SLAVE_UNSPEC,
 453        IFLA_BOND_SLAVE_STATE,
 454        IFLA_BOND_SLAVE_MII_STATUS,
 455        IFLA_BOND_SLAVE_LINK_FAILURE_COUNT,
 456        IFLA_BOND_SLAVE_PERM_HWADDR,
 457        IFLA_BOND_SLAVE_QUEUE_ID,
 458        IFLA_BOND_SLAVE_AD_AGGREGATOR_ID,
 459        IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE,
 460        IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE,
 461        __IFLA_BOND_SLAVE_MAX,
 462};
 463
 464#define IFLA_BOND_SLAVE_MAX     (__IFLA_BOND_SLAVE_MAX - 1)
 465
 466/* SR-IOV virtual function management section */
 467
 468enum {
 469        IFLA_VF_INFO_UNSPEC,
 470        IFLA_VF_INFO,
 471        __IFLA_VF_INFO_MAX,
 472};
 473
 474#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1)
 475
 476enum {
 477        IFLA_VF_UNSPEC,
 478        IFLA_VF_MAC,            /* Hardware queue specific attributes */
 479        IFLA_VF_VLAN,
 480        IFLA_VF_TX_RATE,        /* Max TX Bandwidth Allocation */
 481        IFLA_VF_SPOOFCHK,       /* Spoof Checking on/off switch */
 482        IFLA_VF_LINK_STATE,     /* link state enable/disable/auto switch */
 483        IFLA_VF_RATE,           /* Min and Max TX Bandwidth Allocation */
 484        IFLA_VF_RSS_QUERY_EN,   /* RSS Redirection Table and Hash Key query
 485                                 * on/off switch
 486                                 */
 487        IFLA_VF_STATS,          /* network device statistics */
 488        __IFLA_VF_MAX,
 489};
 490
 491#define IFLA_VF_MAX (__IFLA_VF_MAX - 1)
 492
 493struct ifla_vf_mac {
 494        __u32 vf;
 495        __u8 mac[32]; /* MAX_ADDR_LEN */
 496};
 497
 498struct ifla_vf_vlan {
 499        __u32 vf;
 500        __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
 501        __u32 qos;
 502};
 503
 504struct ifla_vf_tx_rate {
 505        __u32 vf;
 506        __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
 507};
 508
 509struct ifla_vf_rate {
 510        __u32 vf;
 511        __u32 min_tx_rate; /* Min Bandwidth in Mbps */
 512        __u32 max_tx_rate; /* Max Bandwidth in Mbps */
 513};
 514
 515struct ifla_vf_spoofchk {
 516        __u32 vf;
 517        __u32 setting;
 518};
 519
 520enum {
 521        IFLA_VF_LINK_STATE_AUTO,        /* link state of the uplink */
 522        IFLA_VF_LINK_STATE_ENABLE,      /* link always up */
 523        IFLA_VF_LINK_STATE_DISABLE,     /* link always down */
 524        __IFLA_VF_LINK_STATE_MAX,
 525};
 526
 527struct ifla_vf_link_state {
 528        __u32 vf;
 529        __u32 link_state;
 530};
 531
 532struct ifla_vf_rss_query_en {
 533        __u32 vf;
 534        __u32 setting;
 535};
 536
 537enum {
 538        IFLA_VF_STATS_RX_PACKETS,
 539        IFLA_VF_STATS_TX_PACKETS,
 540        IFLA_VF_STATS_RX_BYTES,
 541        IFLA_VF_STATS_TX_BYTES,
 542        IFLA_VF_STATS_BROADCAST,
 543        IFLA_VF_STATS_MULTICAST,
 544        __IFLA_VF_STATS_MAX,
 545};
 546
 547#define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1)
 548
 549/* VF ports management section
 550 *
 551 *      Nested layout of set/get msg is:
 552 *
 553 *              [IFLA_NUM_VF]
 554 *              [IFLA_VF_PORTS]
 555 *                      [IFLA_VF_PORT]
 556 *                              [IFLA_PORT_*], ...
 557 *                      [IFLA_VF_PORT]
 558 *                              [IFLA_PORT_*], ...
 559 *                      ...
 560 *              [IFLA_PORT_SELF]
 561 *                      [IFLA_PORT_*], ...
 562 */
 563
 564enum {
 565        IFLA_VF_PORT_UNSPEC,
 566        IFLA_VF_PORT,                   /* nest */
 567        __IFLA_VF_PORT_MAX,
 568};
 569
 570#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1)
 571
 572enum {
 573        IFLA_PORT_UNSPEC,
 574        IFLA_PORT_VF,                   /* __u32 */
 575        IFLA_PORT_PROFILE,              /* string */
 576        IFLA_PORT_VSI_TYPE,             /* 802.1Qbg (pre-)standard VDP */
 577        IFLA_PORT_INSTANCE_UUID,        /* binary UUID */
 578        IFLA_PORT_HOST_UUID,            /* binary UUID */
 579        IFLA_PORT_REQUEST,              /* __u8 */
 580        IFLA_PORT_RESPONSE,             /* __u16, output only */
 581        __IFLA_PORT_MAX,
 582};
 583
 584#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1)
 585
 586#define PORT_PROFILE_MAX        40
 587#define PORT_UUID_MAX           16
 588#define PORT_SELF_VF            -1
 589
 590enum {
 591        PORT_REQUEST_PREASSOCIATE = 0,
 592        PORT_REQUEST_PREASSOCIATE_RR,
 593        PORT_REQUEST_ASSOCIATE,
 594        PORT_REQUEST_DISASSOCIATE,
 595};
 596
 597enum {
 598        PORT_VDP_RESPONSE_SUCCESS = 0,
 599        PORT_VDP_RESPONSE_INVALID_FORMAT,
 600        PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
 601        PORT_VDP_RESPONSE_UNUSED_VTID,
 602        PORT_VDP_RESPONSE_VTID_VIOLATION,
 603        PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
 604        PORT_VDP_RESPONSE_OUT_OF_SYNC,
 605        /* 0x08-0xFF reserved for future VDP use */
 606        PORT_PROFILE_RESPONSE_SUCCESS = 0x100,
 607        PORT_PROFILE_RESPONSE_INPROGRESS,
 608        PORT_PROFILE_RESPONSE_INVALID,
 609        PORT_PROFILE_RESPONSE_BADSTATE,
 610        PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
 611        PORT_PROFILE_RESPONSE_ERROR,
 612};
 613
 614struct ifla_port_vsi {
 615        __u8 vsi_mgr_id;
 616        __u8 vsi_type_id[3];
 617        __u8 vsi_type_version;
 618        __u8 pad[3];
 619};
 620
 621
 622/* IPoIB section */
 623
 624enum {
 625        IFLA_IPOIB_UNSPEC,
 626        IFLA_IPOIB_PKEY,
 627        IFLA_IPOIB_MODE,
 628        IFLA_IPOIB_UMCAST,
 629        __IFLA_IPOIB_MAX
 630};
 631
 632enum {
 633        IPOIB_MODE_DATAGRAM  = 0, /* using unreliable datagram QPs */
 634        IPOIB_MODE_CONNECTED = 1, /* using connected QPs */
 635};
 636
 637#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
 638
 639
 640/* HSR section */
 641
 642enum {
 643        IFLA_HSR_UNSPEC,
 644        IFLA_HSR_SLAVE1,
 645        IFLA_HSR_SLAVE2,
 646        IFLA_HSR_MULTICAST_SPEC,        /* Last byte of supervision addr */
 647        IFLA_HSR_SUPERVISION_ADDR,      /* Supervision frame multicast addr */
 648        IFLA_HSR_SEQ_NR,
 649        __IFLA_HSR_MAX,
 650};
 651
 652#define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1)
 653
 654#endif /* _UAPI_LINUX_IF_LINK_H */
 655