rtnl: expose physical switch id for particular device
[linux-2.6-block.git] / include / uapi / linux / if_link.h
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 */
8 struct 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 */
41 struct 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 */
74 struct 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
101 enum {
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_MAX
150 };
151
152
153 #define IFLA_MAX (__IFLA_MAX - 1)
154
155 /* backwards compatibility for userspace */
156 #ifndef __KERNEL__
157 #define IFLA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
158 #define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
159 #endif
160
161 enum {
162         IFLA_INET_UNSPEC,
163         IFLA_INET_CONF,
164         __IFLA_INET_MAX,
165 };
166
167 #define IFLA_INET_MAX (__IFLA_INET_MAX - 1)
168
169 /* ifi_flags.
170
171    IFF_* flags.
172
173    The only change is:
174    IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
175    more not changeable by user. They describe link media
176    characteristics and set by device driver.
177
178    Comments:
179    - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
180    - If neither of these three flags are set;
181      the interface is NBMA.
182
183    - IFF_MULTICAST does not mean anything special:
184    multicasts can be used on all not-NBMA links.
185    IFF_MULTICAST means that this media uses special encapsulation
186    for multicast frames. Apparently, all IFF_POINTOPOINT and
187    IFF_BROADCAST devices are able to use multicasts too.
188  */
189
190 /* IFLA_LINK.
191    For usual devices it is equal ifi_index.
192    If it is a "virtual interface" (f.e. tunnel), ifi_link
193    can point to real physical interface (f.e. for bandwidth calculations),
194    or maybe 0, what means, that real media is unknown (usual
195    for IPIP tunnels, when route to endpoint is allowed to change)
196  */
197
198 /* Subtype attributes for IFLA_PROTINFO */
199 enum {
200         IFLA_INET6_UNSPEC,
201         IFLA_INET6_FLAGS,       /* link flags                   */
202         IFLA_INET6_CONF,        /* sysctl parameters            */
203         IFLA_INET6_STATS,       /* statistics                   */
204         IFLA_INET6_MCAST,       /* MC things. What of them?     */
205         IFLA_INET6_CACHEINFO,   /* time values and max reasm size */
206         IFLA_INET6_ICMP6STATS,  /* statistics (icmpv6)          */
207         IFLA_INET6_TOKEN,       /* device token                 */
208         IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */
209         __IFLA_INET6_MAX
210 };
211
212 #define IFLA_INET6_MAX  (__IFLA_INET6_MAX - 1)
213
214 enum in6_addr_gen_mode {
215         IN6_ADDR_GEN_MODE_EUI64,
216         IN6_ADDR_GEN_MODE_NONE,
217 };
218
219 /* Bridge section */
220
221 enum {
222         IFLA_BR_UNSPEC,
223         IFLA_BR_FORWARD_DELAY,
224         IFLA_BR_HELLO_TIME,
225         IFLA_BR_MAX_AGE,
226         __IFLA_BR_MAX,
227 };
228
229 #define IFLA_BR_MAX     (__IFLA_BR_MAX - 1)
230
231 enum {
232         BRIDGE_MODE_UNSPEC,
233         BRIDGE_MODE_HAIRPIN,
234 };
235
236 enum {
237         IFLA_BRPORT_UNSPEC,
238         IFLA_BRPORT_STATE,      /* Spanning tree state     */
239         IFLA_BRPORT_PRIORITY,   /* "             priority  */
240         IFLA_BRPORT_COST,       /* "             cost      */
241         IFLA_BRPORT_MODE,       /* mode (hairpin)          */
242         IFLA_BRPORT_GUARD,      /* bpdu guard              */
243         IFLA_BRPORT_PROTECT,    /* root port protection    */
244         IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave    */
245         IFLA_BRPORT_LEARNING,   /* mac learning */
246         IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */
247         IFLA_BRPORT_PROXYARP,   /* proxy ARP */
248         __IFLA_BRPORT_MAX
249 };
250 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
251
252 struct ifla_cacheinfo {
253         __u32   max_reasm_len;
254         __u32   tstamp;         /* ipv6InterfaceTable updated timestamp */
255         __u32   reachable_time;
256         __u32   retrans_time;
257 };
258
259 enum {
260         IFLA_INFO_UNSPEC,
261         IFLA_INFO_KIND,
262         IFLA_INFO_DATA,
263         IFLA_INFO_XSTATS,
264         IFLA_INFO_SLAVE_KIND,
265         IFLA_INFO_SLAVE_DATA,
266         __IFLA_INFO_MAX,
267 };
268
269 #define IFLA_INFO_MAX   (__IFLA_INFO_MAX - 1)
270
271 /* VLAN section */
272
273 enum {
274         IFLA_VLAN_UNSPEC,
275         IFLA_VLAN_ID,
276         IFLA_VLAN_FLAGS,
277         IFLA_VLAN_EGRESS_QOS,
278         IFLA_VLAN_INGRESS_QOS,
279         IFLA_VLAN_PROTOCOL,
280         __IFLA_VLAN_MAX,
281 };
282
283 #define IFLA_VLAN_MAX   (__IFLA_VLAN_MAX - 1)
284
285 struct ifla_vlan_flags {
286         __u32   flags;
287         __u32   mask;
288 };
289
290 enum {
291         IFLA_VLAN_QOS_UNSPEC,
292         IFLA_VLAN_QOS_MAPPING,
293         __IFLA_VLAN_QOS_MAX
294 };
295
296 #define IFLA_VLAN_QOS_MAX       (__IFLA_VLAN_QOS_MAX - 1)
297
298 struct ifla_vlan_qos_mapping {
299         __u32 from;
300         __u32 to;
301 };
302
303 /* MACVLAN section */
304 enum {
305         IFLA_MACVLAN_UNSPEC,
306         IFLA_MACVLAN_MODE,
307         IFLA_MACVLAN_FLAGS,
308         IFLA_MACVLAN_MACADDR_MODE,
309         IFLA_MACVLAN_MACADDR,
310         IFLA_MACVLAN_MACADDR_DATA,
311         IFLA_MACVLAN_MACADDR_COUNT,
312         __IFLA_MACVLAN_MAX,
313 };
314
315 #define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1)
316
317 enum macvlan_mode {
318         MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */
319         MACVLAN_MODE_VEPA    = 2, /* talk to other ports through ext bridge */
320         MACVLAN_MODE_BRIDGE  = 4, /* talk to bridge ports directly */
321         MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */
322         MACVLAN_MODE_SOURCE  = 16,/* use source MAC address list to assign */
323 };
324
325 enum macvlan_macaddr_mode {
326         MACVLAN_MACADDR_ADD,
327         MACVLAN_MACADDR_DEL,
328         MACVLAN_MACADDR_FLUSH,
329         MACVLAN_MACADDR_SET,
330 };
331
332 #define MACVLAN_FLAG_NOPROMISC  1
333
334 /* IPVLAN section */
335 enum {
336         IFLA_IPVLAN_UNSPEC,
337         IFLA_IPVLAN_MODE,
338         __IFLA_IPVLAN_MAX
339 };
340
341 #define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1)
342
343 enum ipvlan_mode {
344         IPVLAN_MODE_L2 = 0,
345         IPVLAN_MODE_L3,
346         IPVLAN_MODE_MAX
347 };
348
349 /* VXLAN section */
350 enum {
351         IFLA_VXLAN_UNSPEC,
352         IFLA_VXLAN_ID,
353         IFLA_VXLAN_GROUP,       /* group or remote address */
354         IFLA_VXLAN_LINK,
355         IFLA_VXLAN_LOCAL,
356         IFLA_VXLAN_TTL,
357         IFLA_VXLAN_TOS,
358         IFLA_VXLAN_LEARNING,
359         IFLA_VXLAN_AGEING,
360         IFLA_VXLAN_LIMIT,
361         IFLA_VXLAN_PORT_RANGE,  /* source port */
362         IFLA_VXLAN_PROXY,
363         IFLA_VXLAN_RSC,
364         IFLA_VXLAN_L2MISS,
365         IFLA_VXLAN_L3MISS,
366         IFLA_VXLAN_PORT,        /* destination port */
367         IFLA_VXLAN_GROUP6,
368         IFLA_VXLAN_LOCAL6,
369         IFLA_VXLAN_UDP_CSUM,
370         IFLA_VXLAN_UDP_ZERO_CSUM6_TX,
371         IFLA_VXLAN_UDP_ZERO_CSUM6_RX,
372         __IFLA_VXLAN_MAX
373 };
374 #define IFLA_VXLAN_MAX  (__IFLA_VXLAN_MAX - 1)
375
376 struct ifla_vxlan_port_range {
377         __be16  low;
378         __be16  high;
379 };
380
381 /* Bonding section */
382
383 enum {
384         IFLA_BOND_UNSPEC,
385         IFLA_BOND_MODE,
386         IFLA_BOND_ACTIVE_SLAVE,
387         IFLA_BOND_MIIMON,
388         IFLA_BOND_UPDELAY,
389         IFLA_BOND_DOWNDELAY,
390         IFLA_BOND_USE_CARRIER,
391         IFLA_BOND_ARP_INTERVAL,
392         IFLA_BOND_ARP_IP_TARGET,
393         IFLA_BOND_ARP_VALIDATE,
394         IFLA_BOND_ARP_ALL_TARGETS,
395         IFLA_BOND_PRIMARY,
396         IFLA_BOND_PRIMARY_RESELECT,
397         IFLA_BOND_FAIL_OVER_MAC,
398         IFLA_BOND_XMIT_HASH_POLICY,
399         IFLA_BOND_RESEND_IGMP,
400         IFLA_BOND_NUM_PEER_NOTIF,
401         IFLA_BOND_ALL_SLAVES_ACTIVE,
402         IFLA_BOND_MIN_LINKS,
403         IFLA_BOND_LP_INTERVAL,
404         IFLA_BOND_PACKETS_PER_SLAVE,
405         IFLA_BOND_AD_LACP_RATE,
406         IFLA_BOND_AD_SELECT,
407         IFLA_BOND_AD_INFO,
408         __IFLA_BOND_MAX,
409 };
410
411 #define IFLA_BOND_MAX   (__IFLA_BOND_MAX - 1)
412
413 enum {
414         IFLA_BOND_AD_INFO_UNSPEC,
415         IFLA_BOND_AD_INFO_AGGREGATOR,
416         IFLA_BOND_AD_INFO_NUM_PORTS,
417         IFLA_BOND_AD_INFO_ACTOR_KEY,
418         IFLA_BOND_AD_INFO_PARTNER_KEY,
419         IFLA_BOND_AD_INFO_PARTNER_MAC,
420         __IFLA_BOND_AD_INFO_MAX,
421 };
422
423 #define IFLA_BOND_AD_INFO_MAX   (__IFLA_BOND_AD_INFO_MAX - 1)
424
425 enum {
426         IFLA_BOND_SLAVE_UNSPEC,
427         IFLA_BOND_SLAVE_STATE,
428         IFLA_BOND_SLAVE_MII_STATUS,
429         IFLA_BOND_SLAVE_LINK_FAILURE_COUNT,
430         IFLA_BOND_SLAVE_PERM_HWADDR,
431         IFLA_BOND_SLAVE_QUEUE_ID,
432         IFLA_BOND_SLAVE_AD_AGGREGATOR_ID,
433         __IFLA_BOND_SLAVE_MAX,
434 };
435
436 #define IFLA_BOND_SLAVE_MAX     (__IFLA_BOND_SLAVE_MAX - 1)
437
438 /* SR-IOV virtual function management section */
439
440 enum {
441         IFLA_VF_INFO_UNSPEC,
442         IFLA_VF_INFO,
443         __IFLA_VF_INFO_MAX,
444 };
445
446 #define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1)
447
448 enum {
449         IFLA_VF_UNSPEC,
450         IFLA_VF_MAC,            /* Hardware queue specific attributes */
451         IFLA_VF_VLAN,
452         IFLA_VF_TX_RATE,        /* Max TX Bandwidth Allocation */
453         IFLA_VF_SPOOFCHK,       /* Spoof Checking on/off switch */
454         IFLA_VF_LINK_STATE,     /* link state enable/disable/auto switch */
455         IFLA_VF_RATE,           /* Min and Max TX Bandwidth Allocation */
456         __IFLA_VF_MAX,
457 };
458
459 #define IFLA_VF_MAX (__IFLA_VF_MAX - 1)
460
461 struct ifla_vf_mac {
462         __u32 vf;
463         __u8 mac[32]; /* MAX_ADDR_LEN */
464 };
465
466 struct ifla_vf_vlan {
467         __u32 vf;
468         __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
469         __u32 qos;
470 };
471
472 struct ifla_vf_tx_rate {
473         __u32 vf;
474         __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
475 };
476
477 struct ifla_vf_rate {
478         __u32 vf;
479         __u32 min_tx_rate; /* Min Bandwidth in Mbps */
480         __u32 max_tx_rate; /* Max Bandwidth in Mbps */
481 };
482
483 struct ifla_vf_spoofchk {
484         __u32 vf;
485         __u32 setting;
486 };
487
488 enum {
489         IFLA_VF_LINK_STATE_AUTO,        /* link state of the uplink */
490         IFLA_VF_LINK_STATE_ENABLE,      /* link always up */
491         IFLA_VF_LINK_STATE_DISABLE,     /* link always down */
492         __IFLA_VF_LINK_STATE_MAX,
493 };
494
495 struct ifla_vf_link_state {
496         __u32 vf;
497         __u32 link_state;
498 };
499
500 /* VF ports management section
501  *
502  *      Nested layout of set/get msg is:
503  *
504  *              [IFLA_NUM_VF]
505  *              [IFLA_VF_PORTS]
506  *                      [IFLA_VF_PORT]
507  *                              [IFLA_PORT_*], ...
508  *                      [IFLA_VF_PORT]
509  *                              [IFLA_PORT_*], ...
510  *                      ...
511  *              [IFLA_PORT_SELF]
512  *                      [IFLA_PORT_*], ...
513  */
514
515 enum {
516         IFLA_VF_PORT_UNSPEC,
517         IFLA_VF_PORT,                   /* nest */
518         __IFLA_VF_PORT_MAX,
519 };
520
521 #define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1)
522
523 enum {
524         IFLA_PORT_UNSPEC,
525         IFLA_PORT_VF,                   /* __u32 */
526         IFLA_PORT_PROFILE,              /* string */
527         IFLA_PORT_VSI_TYPE,             /* 802.1Qbg (pre-)standard VDP */
528         IFLA_PORT_INSTANCE_UUID,        /* binary UUID */
529         IFLA_PORT_HOST_UUID,            /* binary UUID */
530         IFLA_PORT_REQUEST,              /* __u8 */
531         IFLA_PORT_RESPONSE,             /* __u16, output only */
532         __IFLA_PORT_MAX,
533 };
534
535 #define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1)
536
537 #define PORT_PROFILE_MAX        40
538 #define PORT_UUID_MAX           16
539 #define PORT_SELF_VF            -1
540
541 enum {
542         PORT_REQUEST_PREASSOCIATE = 0,
543         PORT_REQUEST_PREASSOCIATE_RR,
544         PORT_REQUEST_ASSOCIATE,
545         PORT_REQUEST_DISASSOCIATE,
546 };
547
548 enum {
549         PORT_VDP_RESPONSE_SUCCESS = 0,
550         PORT_VDP_RESPONSE_INVALID_FORMAT,
551         PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
552         PORT_VDP_RESPONSE_UNUSED_VTID,
553         PORT_VDP_RESPONSE_VTID_VIOLATION,
554         PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
555         PORT_VDP_RESPONSE_OUT_OF_SYNC,
556         /* 0x08-0xFF reserved for future VDP use */
557         PORT_PROFILE_RESPONSE_SUCCESS = 0x100,
558         PORT_PROFILE_RESPONSE_INPROGRESS,
559         PORT_PROFILE_RESPONSE_INVALID,
560         PORT_PROFILE_RESPONSE_BADSTATE,
561         PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
562         PORT_PROFILE_RESPONSE_ERROR,
563 };
564
565 struct ifla_port_vsi {
566         __u8 vsi_mgr_id;
567         __u8 vsi_type_id[3];
568         __u8 vsi_type_version;
569         __u8 pad[3];
570 };
571
572
573 /* IPoIB section */
574
575 enum {
576         IFLA_IPOIB_UNSPEC,
577         IFLA_IPOIB_PKEY,
578         IFLA_IPOIB_MODE,
579         IFLA_IPOIB_UMCAST,
580         __IFLA_IPOIB_MAX
581 };
582
583 enum {
584         IPOIB_MODE_DATAGRAM  = 0, /* using unreliable datagram QPs */
585         IPOIB_MODE_CONNECTED = 1, /* using connected QPs */
586 };
587
588 #define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
589
590
591 /* HSR section */
592
593 enum {
594         IFLA_HSR_UNSPEC,
595         IFLA_HSR_SLAVE1,
596         IFLA_HSR_SLAVE2,
597         IFLA_HSR_MULTICAST_SPEC,        /* Last byte of supervision addr */
598         IFLA_HSR_SUPERVISION_ADDR,      /* Supervision frame multicast addr */
599         IFLA_HSR_SEQ_NR,
600         __IFLA_HSR_MAX,
601 };
602
603 #define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1)
604
605 #endif /* _UAPI_LINUX_IF_LINK_H */