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