Blame view

include/linux/if_link.h 8.27 KB
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
1
2
  #ifndef _LINUX_IF_LINK_H
  #define _LINUX_IF_LINK_H
85db53102   Jaswinder Singh Rajput   headers_check fix...
3
  #include <linux/types.h>
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
4
  #include <linux/netlink.h>
be1f3c2c0   Ben Hutchings   net: Enable 64-bi...
5
  /* This struct should be in sync with struct rtnl_link_stats64 */
d94d9fee9   Eric Dumazet   net: cleanup incl...
6
  struct rtnl_link_stats {
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  	__u32	rx_packets;		/* total packets received	*/
  	__u32	tx_packets;		/* total packets transmitted	*/
  	__u32	rx_bytes;		/* total bytes received 	*/
  	__u32	tx_bytes;		/* total bytes transmitted	*/
  	__u32	rx_errors;		/* bad packets received		*/
  	__u32	tx_errors;		/* packet transmit problems	*/
  	__u32	rx_dropped;		/* no space in linux buffers	*/
  	__u32	tx_dropped;		/* no space available in linux	*/
  	__u32	multicast;		/* multicast packets received	*/
  	__u32	collisions;
  
  	/* detailed rx_errors: */
  	__u32	rx_length_errors;
  	__u32	rx_over_errors;		/* receiver ring buff overflow	*/
  	__u32	rx_crc_errors;		/* recved pkt with crc error	*/
  	__u32	rx_frame_errors;	/* recv'd frame alignment error */
  	__u32	rx_fifo_errors;		/* recv'r fifo overrun		*/
  	__u32	rx_missed_errors;	/* receiver missed packet	*/
  
  	/* detailed tx_errors */
  	__u32	tx_aborted_errors;
  	__u32	tx_carrier_errors;
  	__u32	tx_fifo_errors;
  	__u32	tx_heartbeat_errors;
  	__u32	tx_window_errors;
  
  	/* for cslip etc */
  	__u32	rx_compressed;
  	__u32	tx_compressed;
  };
be1f3c2c0   Ben Hutchings   net: Enable 64-bi...
37
  /* The main device statistics structure */
10708f37a   Jan Engelhardt   net: core: add IF...
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  struct rtnl_link_stats64 {
  	__u64	rx_packets;		/* total packets received	*/
  	__u64	tx_packets;		/* total packets transmitted	*/
  	__u64	rx_bytes;		/* total bytes received 	*/
  	__u64	tx_bytes;		/* total bytes transmitted	*/
  	__u64	rx_errors;		/* bad packets received		*/
  	__u64	tx_errors;		/* packet transmit problems	*/
  	__u64	rx_dropped;		/* no space in linux buffers	*/
  	__u64	tx_dropped;		/* no space available in linux	*/
  	__u64	multicast;		/* multicast packets received	*/
  	__u64	collisions;
  
  	/* detailed rx_errors: */
  	__u64	rx_length_errors;
  	__u64	rx_over_errors;		/* receiver ring buff overflow	*/
  	__u64	rx_crc_errors;		/* recved pkt with crc error	*/
  	__u64	rx_frame_errors;	/* recv'd frame alignment error */
  	__u64	rx_fifo_errors;		/* recv'r fifo overrun		*/
  	__u64	rx_missed_errors;	/* receiver missed packet	*/
  
  	/* detailed tx_errors */
  	__u64	tx_aborted_errors;
  	__u64	tx_carrier_errors;
  	__u64	tx_fifo_errors;
  	__u64	tx_heartbeat_errors;
  	__u64	tx_window_errors;
  
  	/* for cslip etc */
  	__u64	rx_compressed;
  	__u64	tx_compressed;
  };
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
69
  /* The struct should be in sync with struct ifmap */
d94d9fee9   Eric Dumazet   net: cleanup incl...
70
  struct rtnl_link_ifmap {
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
71
72
73
74
75
76
77
  	__u64	mem_start;
  	__u64	mem_end;
  	__u64	base_addr;
  	__u16	irq;
  	__u8	dma;
  	__u8	port;
  };
d94d9fee9   Eric Dumazet   net: cleanup incl...
78
  enum {
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
  	IFLA_UNSPEC,
  	IFLA_ADDRESS,
  	IFLA_BROADCAST,
  	IFLA_IFNAME,
  	IFLA_MTU,
  	IFLA_LINK,
  	IFLA_QDISC,
  	IFLA_STATS,
  	IFLA_COST,
  #define IFLA_COST IFLA_COST
  	IFLA_PRIORITY,
  #define IFLA_PRIORITY IFLA_PRIORITY
  	IFLA_MASTER,
  #define IFLA_MASTER IFLA_MASTER
  	IFLA_WIRELESS,		/* Wireless Extension event - see wireless.h */
  #define IFLA_WIRELESS IFLA_WIRELESS
  	IFLA_PROTINFO,		/* Protocol specific information for a link */
  #define IFLA_PROTINFO IFLA_PROTINFO
  	IFLA_TXQLEN,
  #define IFLA_TXQLEN IFLA_TXQLEN
  	IFLA_MAP,
  #define IFLA_MAP IFLA_MAP
  	IFLA_WEIGHT,
  #define IFLA_WEIGHT IFLA_WEIGHT
  	IFLA_OPERSTATE,
  	IFLA_LINKMODE,
38f7b870d   Patrick McHardy   [RTNETLINK]: Link...
105
106
  	IFLA_LINKINFO,
  #define IFLA_LINKINFO IFLA_LINKINFO
d8a5ec672   Eric W. Biederman   [NET]: netlink su...
107
  	IFLA_NET_NS_PID,
0b815a1a6   Stephen Hemminger   net: network devi...
108
  	IFLA_IFALIAS,
b280da8d5   Williams, Mitch A   if_link: Add SR-I...
109
  	IFLA_NUM_VF,		/* Number of VFs if device is SR-IOV PF */
c02db8c62   Chris Wright   rtnetlink: make S...
110
  	IFLA_VFINFO_LIST,
10708f37a   Jan Engelhardt   net: core: add IF...
111
  	IFLA_STATS64,
57b610805   Scott Feldman   net: Add netlink ...
112
113
  	IFLA_VF_PORTS,
  	IFLA_PORT_SELF,
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
114
115
116
117
118
  	__IFLA_MAX
  };
  
  
  #define IFLA_MAX (__IFLA_MAX - 1)
d3dcc077b   David S. Miller   [NETLINK]: Put {I...
119
120
121
122
123
  /* backwards compatibility for userspace */
  #ifndef __KERNEL__
  #define IFLA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
  #define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
  #endif
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
  /* ifi_flags.
  
     IFF_* flags.
  
     The only change is:
     IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
     more not changeable by user. They describe link media
     characteristics and set by device driver.
  
     Comments:
     - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
     - If neither of these three flags are set;
       the interface is NBMA.
  
     - IFF_MULTICAST does not mean anything special:
     multicasts can be used on all not-NBMA links.
     IFF_MULTICAST means that this media uses special encapsulation
     for multicast frames. Apparently, all IFF_POINTOPOINT and
     IFF_BROADCAST devices are able to use multicasts too.
   */
  
  /* IFLA_LINK.
     For usual devices it is equal ifi_index.
     If it is a "virtual interface" (f.e. tunnel), ifi_link
     can point to real physical interface (f.e. for bandwidth calculations),
     or maybe 0, what means, that real media is unknown (usual
     for IPIP tunnels, when route to endpoint is allowed to change)
   */
  
  /* Subtype attributes for IFLA_PROTINFO */
d94d9fee9   Eric Dumazet   net: cleanup incl...
154
  enum {
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
155
156
157
158
159
160
  	IFLA_INET6_UNSPEC,
  	IFLA_INET6_FLAGS,	/* link flags			*/
  	IFLA_INET6_CONF,	/* sysctl parameters		*/
  	IFLA_INET6_STATS,	/* statistics			*/
  	IFLA_INET6_MCAST,	/* MC things. What of them?	*/
  	IFLA_INET6_CACHEINFO,	/* time values and max reasm size */
bf99f1bde   YOSHIFUJI Hideaki   [IPV6] SNMP: Netl...
161
  	IFLA_INET6_ICMP6STATS,	/* statistics (icmpv6)		*/
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
162
163
164
165
  	__IFLA_INET6_MAX
  };
  
  #define IFLA_INET6_MAX	(__IFLA_INET6_MAX - 1)
d94d9fee9   Eric Dumazet   net: cleanup incl...
166
  struct ifla_cacheinfo {
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
167
168
169
170
171
  	__u32	max_reasm_len;
  	__u32	tstamp;		/* ipv6InterfaceTable updated timestamp */
  	__u32	reachable_time;
  	__u32	retrans_time;
  };
d94d9fee9   Eric Dumazet   net: cleanup incl...
172
  enum {
38f7b870d   Patrick McHardy   [RTNETLINK]: Link...
173
174
175
176
177
178
179
180
  	IFLA_INFO_UNSPEC,
  	IFLA_INFO_KIND,
  	IFLA_INFO_DATA,
  	IFLA_INFO_XSTATS,
  	__IFLA_INFO_MAX,
  };
  
  #define IFLA_INFO_MAX	(__IFLA_INFO_MAX - 1)
07b5b17e1   Patrick McHardy   [VLAN]: Use rtnl_...
181
  /* VLAN section */
d94d9fee9   Eric Dumazet   net: cleanup incl...
182
  enum {
07b5b17e1   Patrick McHardy   [VLAN]: Use rtnl_...
183
184
185
186
187
188
189
190
191
192
193
194
195
196
  	IFLA_VLAN_UNSPEC,
  	IFLA_VLAN_ID,
  	IFLA_VLAN_FLAGS,
  	IFLA_VLAN_EGRESS_QOS,
  	IFLA_VLAN_INGRESS_QOS,
  	__IFLA_VLAN_MAX,
  };
  
  #define IFLA_VLAN_MAX	(__IFLA_VLAN_MAX - 1)
  
  struct ifla_vlan_flags {
  	__u32	flags;
  	__u32	mask;
  };
d94d9fee9   Eric Dumazet   net: cleanup incl...
197
  enum {
07b5b17e1   Patrick McHardy   [VLAN]: Use rtnl_...
198
199
200
201
202
203
  	IFLA_VLAN_QOS_UNSPEC,
  	IFLA_VLAN_QOS_MAPPING,
  	__IFLA_VLAN_QOS_MAX
  };
  
  #define IFLA_VLAN_QOS_MAX	(__IFLA_VLAN_QOS_MAX - 1)
d94d9fee9   Eric Dumazet   net: cleanup incl...
204
  struct ifla_vlan_qos_mapping {
07b5b17e1   Patrick McHardy   [VLAN]: Use rtnl_...
205
206
207
  	__u32 from;
  	__u32 to;
  };
27c0b1a85   Arnd Bergmann   macvlan: export m...
208
209
210
211
212
213
214
215
216
217
218
219
220
221
  /* MACVLAN section */
  enum {
  	IFLA_MACVLAN_UNSPEC,
  	IFLA_MACVLAN_MODE,
  	__IFLA_MACVLAN_MAX,
  };
  
  #define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1)
  
  enum macvlan_mode {
  	MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */
  	MACVLAN_MODE_VEPA    = 2, /* talk to other ports through ext bridge */
  	MACVLAN_MODE_BRIDGE  = 4, /* talk to bridge ports directly */
  };
65155b370   Uwe Kleine-König   fix typos concern...
222
  /* SR-IOV virtual function management section */
b280da8d5   Williams, Mitch A   if_link: Add SR-I...
223

c02db8c62   Chris Wright   rtnetlink: make S...
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
  enum {
  	IFLA_VF_INFO_UNSPEC,
  	IFLA_VF_INFO,
  	__IFLA_VF_INFO_MAX,
  };
  
  #define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1)
  
  enum {
  	IFLA_VF_UNSPEC,
  	IFLA_VF_MAC,		/* Hardware queue specific attributes */
  	IFLA_VF_VLAN,
  	IFLA_VF_TX_RATE,	/* TX Bandwidth Allocation */
  	__IFLA_VF_MAX,
  };
  
  #define IFLA_VF_MAX (__IFLA_VF_MAX - 1)
b280da8d5   Williams, Mitch A   if_link: Add SR-I...
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
  struct ifla_vf_mac {
  	__u32 vf;
  	__u8 mac[32]; /* MAX_ADDR_LEN */
  };
  
  struct ifla_vf_vlan {
  	__u32 vf;
  	__u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
  	__u32 qos;
  };
  
  struct ifla_vf_tx_rate {
  	__u32 vf;
  	__u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
  };
  
  struct ifla_vf_info {
  	__u32 vf;
  	__u8 mac[32];
  	__u32 vlan;
  	__u32 qos;
  	__u32 tx_rate;
  };
57b610805   Scott Feldman   net: Add netlink ...
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
  
  /* VF ports management section
   *
   *	Nested layout of set/get msg is:
   *
   *		[IFLA_NUM_VF]
   *		[IFLA_VF_PORTS]
   *			[IFLA_VF_PORT]
   *				[IFLA_PORT_*], ...
   *			[IFLA_VF_PORT]
   *				[IFLA_PORT_*], ...
   *			...
   *		[IFLA_PORT_SELF]
   *			[IFLA_PORT_*], ...
   */
  
  enum {
  	IFLA_VF_PORT_UNSPEC,
  	IFLA_VF_PORT,			/* nest */
  	__IFLA_VF_PORT_MAX,
  };
  
  #define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1)
  
  enum {
  	IFLA_PORT_UNSPEC,
  	IFLA_PORT_VF,			/* __u32 */
  	IFLA_PORT_PROFILE,		/* string */
  	IFLA_PORT_VSI_TYPE,		/* 802.1Qbg (pre-)standard VDP */
  	IFLA_PORT_INSTANCE_UUID,	/* binary UUID */
  	IFLA_PORT_HOST_UUID,		/* binary UUID */
  	IFLA_PORT_REQUEST,		/* __u8 */
  	IFLA_PORT_RESPONSE,		/* __u16, output only */
  	__IFLA_PORT_MAX,
  };
  
  #define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1)
  
  #define PORT_PROFILE_MAX	40
  #define PORT_UUID_MAX		16
  #define PORT_SELF_VF		-1
  
  enum {
  	PORT_REQUEST_PREASSOCIATE = 0,
  	PORT_REQUEST_PREASSOCIATE_RR,
  	PORT_REQUEST_ASSOCIATE,
  	PORT_REQUEST_DISASSOCIATE,
  };
  
  enum {
  	PORT_VDP_RESPONSE_SUCCESS = 0,
  	PORT_VDP_RESPONSE_INVALID_FORMAT,
  	PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
  	PORT_VDP_RESPONSE_UNUSED_VTID,
  	PORT_VDP_RESPONSE_VTID_VIOLATION,
  	PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
  	PORT_VDP_RESPONSE_OUT_OF_SYNC,
  	/* 0x08-0xFF reserved for future VDP use */
  	PORT_PROFILE_RESPONSE_SUCCESS = 0x100,
  	PORT_PROFILE_RESPONSE_INPROGRESS,
  	PORT_PROFILE_RESPONSE_INVALID,
  	PORT_PROFILE_RESPONSE_BADSTATE,
  	PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
  	PORT_PROFILE_RESPONSE_ERROR,
  };
  
  struct ifla_port_vsi {
  	__u8 vsi_mgr_id;
  	__u8 vsi_type_id[3];
  	__u8 vsi_type_version;
  	__u8 pad[3];
  };
cbde1668e   YOSHIFUJI Hideaki   [NET]: Move netli...
336
  #endif /* _LINUX_IF_LINK_H */