OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / prebuilt / linux-x86 / toolchain / i686-linux-glibc2.7-4.4.3 / sysroot / usr / include / linux / if_tr.h
1 /*
2  * INET         An implementation of the TCP/IP protocol suite for the LINUX
3  *              operating system.  INET is implemented using the  BSD Socket
4  *              interface as the means of communication with the user level.
5  *
6  *              Global definitions for the Token-Ring IEEE 802.5 interface.
7  *
8  * Version:     @(#)if_tr.h     0.0     07/11/94
9  *
10  * Author:      Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
11  *              Donald Becker, <becker@super.org>
12  *              Peter De Schrijver, <stud11@cc4.kuleuven.ac.be>
13  *
14  *              This program is free software; you can redistribute it and/or
15  *              modify it under the terms of the GNU General Public License
16  *              as published by the Free Software Foundation; either version
17  *              2 of the License, or (at your option) any later version.
18  */
19 #ifndef _LINUX_IF_TR_H
20 #define _LINUX_IF_TR_H
21
22 #include <asm/byteorder.h>      /* For __be16 */
23
24 /* IEEE 802.5 Token-Ring magic constants.  The frame sizes omit the preamble
25    and FCS/CRC (frame check sequence). */
26 #define TR_ALEN         6               /* Octets in one token-ring addr */
27 #define TR_HLEN         (sizeof(struct trh_hdr)+sizeof(struct trllc))
28 #define AC              0x10
29 #define LLC_FRAME       0x40
30
31 /* LLC and SNAP constants */
32 #define EXTENDED_SAP    0xAA
33 #define UI_CMD          0x03
34
35 /* This is an Token-Ring frame header. */
36 struct trh_hdr {
37         __u8  ac;                       /* access control field */
38         __u8  fc;                       /* frame control field */
39         __u8  daddr[TR_ALEN];           /* destination address */
40         __u8  saddr[TR_ALEN];           /* source address */
41         __be16 rcf;                     /* route control field */
42         __be16 rseg[8];                 /* routing registers */
43 };
44
45
46 /* This is an Token-Ring LLC structure */
47 struct trllc {
48         __u8  dsap;                     /* destination SAP */
49         __u8  ssap;                     /* source SAP */
50         __u8  llc;                      /* LLC control field */
51         __u8  protid[3];                /* protocol id */
52         __be16 ethertype;               /* ether type field */
53 };
54
55 /* Token-Ring statistics collection data. */
56 struct tr_statistics {
57         unsigned long rx_packets;       /* total packets received       */
58         unsigned long tx_packets;       /* total packets transmitted    */
59         unsigned long rx_bytes;         /* total bytes received         */
60         unsigned long tx_bytes;         /* total bytes transmitted      */
61         unsigned long rx_errors;        /* bad packets received         */
62         unsigned long tx_errors;        /* packet transmit problems     */
63         unsigned long rx_dropped;       /* no space in linux buffers    */
64         unsigned long tx_dropped;       /* no space available in linux  */
65         unsigned long multicast;        /* multicast packets received   */
66         unsigned long transmit_collision;
67
68         /* detailed Token-Ring errors. See IBM Token-Ring Network
69            Architecture for more info */
70
71         unsigned long line_errors;
72         unsigned long internal_errors;
73         unsigned long burst_errors;
74         unsigned long A_C_errors;
75         unsigned long abort_delimiters;
76         unsigned long lost_frames;
77         unsigned long recv_congest_count;
78         unsigned long frame_copied_errors;
79         unsigned long frequency_errors;
80         unsigned long token_errors;
81         unsigned long dummy1;
82 };
83
84 /* source routing stuff */
85 #define TR_RII                  0x80
86 #define TR_RCF_DIR_BIT          0x80
87 #define TR_RCF_LEN_MASK         0x1f00
88 #define TR_RCF_BROADCAST        0x8000  /* all-routes broadcast */
89 #define TR_RCF_LIMITED_BROADCAST 0xC000 /* single-route broadcast */
90 #define TR_RCF_FRAME2K          0x20
91 #define TR_RCF_BROADCAST_MASK   0xC000
92 #define TR_MAXRIFLEN            18
93
94 #endif  /* _LINUX_IF_TR_H */