OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [linux/] [if_link.h] - Blame information for rev 13

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.