aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/if.h129
-rw-r--r--include/linux/rtnetlink.h133
2 files changed, 130 insertions, 132 deletions
diff --git a/include/linux/if.h b/include/linux/if.h
index 374e20ad8b0d..cd080d765324 100644
--- a/include/linux/if.h
+++ b/include/linux/if.h
@@ -212,5 +212,134 @@ struct ifconf
212#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ 212#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */
213#define ifc_req ifc_ifcu.ifcu_req /* array of structures */ 213#define ifc_req ifc_ifcu.ifcu_req /* array of structures */
214 214
215/* The struct should be in sync with struct net_device_stats */
216struct rtnl_link_stats
217{
218 __u32 rx_packets; /* total packets received */
219 __u32 tx_packets; /* total packets transmitted */
220 __u32 rx_bytes; /* total bytes received */
221 __u32 tx_bytes; /* total bytes transmitted */
222 __u32 rx_errors; /* bad packets received */
223 __u32 tx_errors; /* packet transmit problems */
224 __u32 rx_dropped; /* no space in linux buffers */
225 __u32 tx_dropped; /* no space available in linux */
226 __u32 multicast; /* multicast packets received */
227 __u32 collisions;
228
229 /* detailed rx_errors: */
230 __u32 rx_length_errors;
231 __u32 rx_over_errors; /* receiver ring buff overflow */
232 __u32 rx_crc_errors; /* recved pkt with crc error */
233 __u32 rx_frame_errors; /* recv'd frame alignment error */
234 __u32 rx_fifo_errors; /* recv'r fifo overrun */
235 __u32 rx_missed_errors; /* receiver missed packet */
236
237 /* detailed tx_errors */
238 __u32 tx_aborted_errors;
239 __u32 tx_carrier_errors;
240 __u32 tx_fifo_errors;
241 __u32 tx_heartbeat_errors;
242 __u32 tx_window_errors;
243
244 /* for cslip etc */
245 __u32 rx_compressed;
246 __u32 tx_compressed;
247};
248
249/* The struct should be in sync with struct ifmap */
250struct rtnl_link_ifmap
251{
252 __u64 mem_start;
253 __u64 mem_end;
254 __u64 base_addr;
255 __u16 irq;
256 __u8 dma;
257 __u8 port;
258};
259
260enum
261{
262 IFLA_UNSPEC,
263 IFLA_ADDRESS,
264 IFLA_BROADCAST,
265 IFLA_IFNAME,
266 IFLA_MTU,
267 IFLA_LINK,
268 IFLA_QDISC,
269 IFLA_STATS,
270 IFLA_COST,
271#define IFLA_COST IFLA_COST
272 IFLA_PRIORITY,
273#define IFLA_PRIORITY IFLA_PRIORITY
274 IFLA_MASTER,
275#define IFLA_MASTER IFLA_MASTER
276 IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */
277#define IFLA_WIRELESS IFLA_WIRELESS
278 IFLA_PROTINFO, /* Protocol specific information for a link */
279#define IFLA_PROTINFO IFLA_PROTINFO
280 IFLA_TXQLEN,
281#define IFLA_TXQLEN IFLA_TXQLEN
282 IFLA_MAP,
283#define IFLA_MAP IFLA_MAP
284 IFLA_WEIGHT,
285#define IFLA_WEIGHT IFLA_WEIGHT
286 IFLA_OPERSTATE,
287 IFLA_LINKMODE,
288 __IFLA_MAX
289};
290
291
292#define IFLA_MAX (__IFLA_MAX - 1)
293
294/* ifi_flags.
295
296 IFF_* flags.
297
298 The only change is:
299 IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
300 more not changeable by user. They describe link media
301 characteristics and set by device driver.
302
303 Comments:
304 - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
305 - If neither of these three flags are set;
306 the interface is NBMA.
307
308 - IFF_MULTICAST does not mean anything special:
309 multicasts can be used on all not-NBMA links.
310 IFF_MULTICAST means that this media uses special encapsulation
311 for multicast frames. Apparently, all IFF_POINTOPOINT and
312 IFF_BROADCAST devices are able to use multicasts too.
313 */
314
315/* IFLA_LINK.
316 For usual devices it is equal ifi_index.
317 If it is a "virtual interface" (f.e. tunnel), ifi_link
318 can point to real physical interface (f.e. for bandwidth calculations),
319 or maybe 0, what means, that real media is unknown (usual
320 for IPIP tunnels, when route to endpoint is allowed to change)
321 */
322
323/* Subtype attributes for IFLA_PROTINFO */
324enum
325{
326 IFLA_INET6_UNSPEC,
327 IFLA_INET6_FLAGS, /* link flags */
328 IFLA_INET6_CONF, /* sysctl parameters */
329 IFLA_INET6_STATS, /* statistics */
330 IFLA_INET6_MCAST, /* MC things. What of them? */
331 IFLA_INET6_CACHEINFO, /* time values and max reasm size */
332 __IFLA_INET6_MAX
333};
334
335#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
336
337struct ifla_cacheinfo
338{
339 __u32 max_reasm_len;
340 __u32 tstamp; /* ipv6InterfaceTable updated timestamp */
341 __u32 reachable_time;
342 __u32 retrans_time;
343};
215 344
216#endif /* _LINUX_IF_H */ 345#endif /* _LINUX_IF_H */
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index 890c4d4038b6..84f3eb426da2 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -2,6 +2,7 @@
2#define __LINUX_RTNETLINK_H 2#define __LINUX_RTNETLINK_H
3 3
4#include <linux/netlink.h> 4#include <linux/netlink.h>
5#include <linux/if.h>
5 6
6/**** 7/****
7 * Routing/neighbour discovery messages. 8 * Routing/neighbour discovery messages.
@@ -607,138 +608,6 @@ struct prefix_cacheinfo
607 __u32 valid_time; 608 __u32 valid_time;
608}; 609};
609 610
610/* The struct should be in sync with struct net_device_stats */
611struct rtnl_link_stats
612{
613 __u32 rx_packets; /* total packets received */
614 __u32 tx_packets; /* total packets transmitted */
615 __u32 rx_bytes; /* total bytes received */
616 __u32 tx_bytes; /* total bytes transmitted */
617 __u32 rx_errors; /* bad packets received */
618 __u32 tx_errors; /* packet transmit problems */
619 __u32 rx_dropped; /* no space in linux buffers */
620 __u32 tx_dropped; /* no space available in linux */
621 __u32 multicast; /* multicast packets received */
622 __u32 collisions;
623
624 /* detailed rx_errors: */
625 __u32 rx_length_errors;
626 __u32 rx_over_errors; /* receiver ring buff overflow */
627 __u32 rx_crc_errors; /* recved pkt with crc error */
628 __u32 rx_frame_errors; /* recv'd frame alignment error */
629 __u32 rx_fifo_errors; /* recv'r fifo overrun */
630 __u32 rx_missed_errors; /* receiver missed packet */
631
632 /* detailed tx_errors */
633 __u32 tx_aborted_errors;
634 __u32 tx_carrier_errors;
635 __u32 tx_fifo_errors;
636 __u32 tx_heartbeat_errors;
637 __u32 tx_window_errors;
638
639 /* for cslip etc */
640 __u32 rx_compressed;
641 __u32 tx_compressed;
642};
643
644/* The struct should be in sync with struct ifmap */
645struct rtnl_link_ifmap
646{
647 __u64 mem_start;
648 __u64 mem_end;
649 __u64 base_addr;
650 __u16 irq;
651 __u8 dma;
652 __u8 port;
653};
654
655enum
656{
657 IFLA_UNSPEC,
658 IFLA_ADDRESS,
659 IFLA_BROADCAST,
660 IFLA_IFNAME,
661 IFLA_MTU,
662 IFLA_LINK,
663 IFLA_QDISC,
664 IFLA_STATS,
665 IFLA_COST,
666#define IFLA_COST IFLA_COST
667 IFLA_PRIORITY,
668#define IFLA_PRIORITY IFLA_PRIORITY
669 IFLA_MASTER,
670#define IFLA_MASTER IFLA_MASTER
671 IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */
672#define IFLA_WIRELESS IFLA_WIRELESS
673 IFLA_PROTINFO, /* Protocol specific information for a link */
674#define IFLA_PROTINFO IFLA_PROTINFO
675 IFLA_TXQLEN,
676#define IFLA_TXQLEN IFLA_TXQLEN
677 IFLA_MAP,
678#define IFLA_MAP IFLA_MAP
679 IFLA_WEIGHT,
680#define IFLA_WEIGHT IFLA_WEIGHT
681 IFLA_OPERSTATE,
682 IFLA_LINKMODE,
683 __IFLA_MAX
684};
685
686
687#define IFLA_MAX (__IFLA_MAX - 1)
688
689#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
690#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
691
692/* ifi_flags.
693
694 IFF_* flags.
695
696 The only change is:
697 IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
698 more not changeable by user. They describe link media
699 characteristics and set by device driver.
700
701 Comments:
702 - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
703 - If neither of these three flags are set;
704 the interface is NBMA.
705
706 - IFF_MULTICAST does not mean anything special:
707 multicasts can be used on all not-NBMA links.
708 IFF_MULTICAST means that this media uses special encapsulation
709 for multicast frames. Apparently, all IFF_POINTOPOINT and
710 IFF_BROADCAST devices are able to use multicasts too.
711 */
712
713/* IFLA_LINK.
714 For usual devices it is equal ifi_index.
715 If it is a "virtual interface" (f.e. tunnel), ifi_link
716 can point to real physical interface (f.e. for bandwidth calculations),
717 or maybe 0, what means, that real media is unknown (usual
718 for IPIP tunnels, when route to endpoint is allowed to change)
719 */
720
721/* Subtype attributes for IFLA_PROTINFO */
722enum
723{
724 IFLA_INET6_UNSPEC,
725 IFLA_INET6_FLAGS, /* link flags */
726 IFLA_INET6_CONF, /* sysctl parameters */
727 IFLA_INET6_STATS, /* statistics */
728 IFLA_INET6_MCAST, /* MC things. What of them? */
729 IFLA_INET6_CACHEINFO, /* time values and max reasm size */
730 __IFLA_INET6_MAX
731};
732
733#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
734
735struct ifla_cacheinfo
736{
737 __u32 max_reasm_len;
738 __u32 tstamp; /* ipv6InterfaceTable updated timestamp */
739 __u32 reachable_time;
740 __u32 retrans_time;
741};
742 611
743/***************************************************************** 612/*****************************************************************
744 * Traffic control messages. 613 * Traffic control messages.