if_link.h
001: #ifndef _LINUX_IF_LINK_H
002: #define _LINUX_IF_LINK_H
003:
004: #include <linux/types.h>
005: #include <linux/netlink.h>
006:
007:
008: struct rtnl_link_stats {
009: __u32 rx_packets;
010: __u32 tx_packets;
011: __u32 rx_bytes;
012: __u32 tx_bytes;
013: __u32 rx_errors;
014: __u32 tx_errors;
015: __u32 rx_dropped;
016: __u32 tx_dropped;
017: __u32 multicast;
018: __u32 collisions;
019:
020:
021: __u32 rx_length_errors;
022: __u32 rx_over_errors;
023: __u32 rx_crc_errors;
024: __u32 rx_frame_errors;
025: __u32 rx_fifo_errors;
026: __u32 rx_missed_errors;
027:
028:
029: __u32 tx_aborted_errors;
030: __u32 tx_carrier_errors;
031: __u32 tx_fifo_errors;
032: __u32 tx_heartbeat_errors;
033: __u32 tx_window_errors;
034:
035:
036: __u32 rx_compressed;
037: __u32 tx_compressed;
038: };
039:
040:
041: struct rtnl_link_stats64 {
042: __u64 rx_packets;
043: __u64 tx_packets;
044: __u64 rx_bytes;
045: __u64 tx_bytes;
046: __u64 rx_errors;
047: __u64 tx_errors;
048: __u64 rx_dropped;
049: __u64 tx_dropped;
050: __u64 multicast;
051: __u64 collisions;
052:
053:
054: __u64 rx_length_errors;
055: __u64 rx_over_errors;
056: __u64 rx_crc_errors;
057: __u64 rx_frame_errors;
058: __u64 rx_fifo_errors;
059: __u64 rx_missed_errors;
060:
061:
062: __u64 tx_aborted_errors;
063: __u64 tx_carrier_errors;
064: __u64 tx_fifo_errors;
065: __u64 tx_heartbeat_errors;
066: __u64 tx_window_errors;
067:
068:
069: __u64 rx_compressed;
070: __u64 tx_compressed;
071: };
072:
073:
074: struct rtnl_link_ifmap {
075: __u64 mem_start;
076: __u64 mem_end;
077: __u64 base_addr;
078: __u16 irq;
079: __u8 dma;
080: __u8 port;
081: };
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
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,
117: #define IFLA_WIRELESS IFLA_WIRELESS
118: IFLA_PROTINFO,
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,
133: IFLA_VFINFO_LIST,
134: IFLA_STATS64,
135: IFLA_VF_PORTS,
136: IFLA_PORT_SELF,
137: IFLA_AF_SPEC,
138: IFLA_GROUP,
139: IFLA_NET_NS_FD,
140: __IFLA_MAX
141: };
142:
143:
144: #define IFLA_MAX (__IFLA_MAX - 1)
145:
146:
147: #define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
148: #define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
149:
150: enum {
151: IFLA_INET_UNSPEC,
152: IFLA_INET_CONF,
153: __IFLA_INET_MAX,
154: };
155:
156: #define IFLA_INET_MAX (__IFLA_INET_MAX - 1)
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188: enum {
189: IFLA_INET6_UNSPEC,
190: IFLA_INET6_FLAGS,
191: IFLA_INET6_CONF,
192: IFLA_INET6_STATS,
193: IFLA_INET6_MCAST,
194: IFLA_INET6_CACHEINFO,
195: IFLA_INET6_ICMP6STATS,
196: __IFLA_INET6_MAX
197: };
198:
199: #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
200:
201: struct ifla_cacheinfo {
202: __u32 max_reasm_len;
203: __u32 tstamp;
204: __u32 reachable_time;
205: __u32 retrans_time;
206: };
207:
208: enum {
209: IFLA_INFO_UNSPEC,
210: IFLA_INFO_KIND,
211: IFLA_INFO_DATA,
212: IFLA_INFO_XSTATS,
213: __IFLA_INFO_MAX,
214: };
215:
216: #define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1)
217:
218:
219:
220: enum {
221: IFLA_VLAN_UNSPEC,
222: IFLA_VLAN_ID,
223: IFLA_VLAN_FLAGS,
224: IFLA_VLAN_EGRESS_QOS,
225: IFLA_VLAN_INGRESS_QOS,
226: __IFLA_VLAN_MAX,
227: };
228:
229: #define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1)
230:
231: struct ifla_vlan_flags {
232: __u32 flags;
233: __u32 mask;
234: };
235:
236: enum {
237: IFLA_VLAN_QOS_UNSPEC,
238: IFLA_VLAN_QOS_MAPPING,
239: __IFLA_VLAN_QOS_MAX
240: };
241:
242: #define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1)
243:
244: struct ifla_vlan_qos_mapping {
245: __u32 from;
246: __u32 to;
247: };
248:
249:
250: enum {
251: IFLA_MACVLAN_UNSPEC,
252: IFLA_MACVLAN_MODE,
253: __IFLA_MACVLAN_MAX,
254: };
255:
256: #define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1)
257:
258: enum macvlan_mode {
259: MACVLAN_MODE_PRIVATE = 1,
260: MACVLAN_MODE_VEPA = 2,
261: MACVLAN_MODE_BRIDGE = 4,
262: MACVLAN_MODE_PASSTHRU = 8,
263: };
264:
265:
266:
267: enum {
268: IFLA_VF_INFO_UNSPEC,
269: IFLA_VF_INFO,
270: __IFLA_VF_INFO_MAX,
271: };
272:
273: #define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1)
274:
275: enum {
276: IFLA_VF_UNSPEC,
277: IFLA_VF_MAC,
278: IFLA_VF_VLAN,
279: IFLA_VF_TX_RATE,
280: IFLA_VF_SPOOFCHK,
281: __IFLA_VF_MAX,
282: };
283:
284: #define IFLA_VF_MAX (__IFLA_VF_MAX - 1)
285:
286: struct ifla_vf_mac {
287: __u32 vf;
288: __u8 mac[32];
289: };
290:
291: struct ifla_vf_vlan {
292: __u32 vf;
293: __u32 vlan;
294: __u32 qos;
295: };
296:
297: struct ifla_vf_tx_rate {
298: __u32 vf;
299: __u32 rate;
300: };
301:
302: struct ifla_vf_spoofchk {
303: __u32 vf;
304: __u32 setting;
305: };
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322: enum {
323: IFLA_VF_PORT_UNSPEC,
324: IFLA_VF_PORT,
325: __IFLA_VF_PORT_MAX,
326: };
327:
328: #define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1)
329:
330: enum {
331: IFLA_PORT_UNSPEC,
332: IFLA_PORT_VF,
333: IFLA_PORT_PROFILE,
334: IFLA_PORT_VSI_TYPE,
335: IFLA_PORT_INSTANCE_UUID,
336: IFLA_PORT_HOST_UUID,
337: IFLA_PORT_REQUEST,
338: IFLA_PORT_RESPONSE,
339: __IFLA_PORT_MAX,
340: };
341:
342: #define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1)
343:
344: #define PORT_PROFILE_MAX 40
345: #define PORT_UUID_MAX 16
346: #define PORT_SELF_VF -1
347:
348: enum {
349: PORT_REQUEST_PREASSOCIATE = 0,
350: PORT_REQUEST_PREASSOCIATE_RR,
351: PORT_REQUEST_ASSOCIATE,
352: PORT_REQUEST_DISASSOCIATE,
353: };
354:
355: enum {
356: PORT_VDP_RESPONSE_SUCCESS = 0,
357: PORT_VDP_RESPONSE_INVALID_FORMAT,
358: PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
359: PORT_VDP_RESPONSE_UNUSED_VTID,
360: PORT_VDP_RESPONSE_VTID_VIOLATION,
361: PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
362: PORT_VDP_RESPONSE_OUT_OF_SYNC,
363:
364: PORT_PROFILE_RESPONSE_SUCCESS = 0x100,
365: PORT_PROFILE_RESPONSE_INPROGRESS,
366: PORT_PROFILE_RESPONSE_INVALID,
367: PORT_PROFILE_RESPONSE_BADSTATE,
368: PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
369: PORT_PROFILE_RESPONSE_ERROR,
370: };
371:
372: struct ifla_port_vsi {
373: __u8 vsi_mgr_id;
374: __u8 vsi_type_id[3];
375: __u8 vsi_type_version;
376: __u8 pad[3];
377: };
378:
379: #endif
380:
© Andrew Scott 2006 -
2025,
All Rights Reserved