1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #ifndef _UAPI_LINUX_IF_FDDI_H
27 #define _UAPI_LINUX_IF_FDDI_H
28
29 #include <linux/types.h>
30
31
32
33
34
35 #define FDDI_K_ALEN 6
36 #define FDDI_K_8022_HLEN 16
37 #define FDDI_K_SNAP_HLEN 21
38 #define FDDI_K_8022_ZLEN 16
39
40 #define FDDI_K_SNAP_ZLEN 21
41
42 #define FDDI_K_8022_DLEN 4475
43 #define FDDI_K_SNAP_DLEN 4470
44 #define FDDI_K_LLC_ZLEN 13
45 #define FDDI_K_LLC_LEN 4491
46 #define FDDI_K_OUI_LEN 3
47
48
49
50 #define FDDI_FC_K_CLASS_MASK 0x80
51 #define FDDI_FC_K_CLASS_SYNC 0x80
52 #define FDDI_FC_K_CLASS_ASYNC 0x00
53 #define FDDI_FC_K_ALEN_MASK 0x40
54 #define FDDI_FC_K_ALEN_48 0x40
55 #define FDDI_FC_K_ALEN_16 0x00
56 #define FDDI_FC_K_FORMAT_MASK 0x30
57 #define FDDI_FC_K_FORMAT_FUTURE 0x30
58 #define FDDI_FC_K_FORMAT_IMPLEMENTOR 0x20
59 #define FDDI_FC_K_FORMAT_LLC 0x10
60 #define FDDI_FC_K_FORMAT_MANAGEMENT 0x00
61 #define FDDI_FC_K_CONTROL_MASK 0x0f
62
63
64 #define FDDI_FC_K_VOID 0x00
65 #define FDDI_FC_K_NON_RESTRICTED_TOKEN 0x80
66 #define FDDI_FC_K_RESTRICTED_TOKEN 0xC0
67 #define FDDI_FC_K_SMT_MIN 0x41
68 #define FDDI_FC_K_SMT_MAX 0x4F
69 #define FDDI_FC_K_MAC_MIN 0xC1
70 #define FDDI_FC_K_MAC_MAX 0xCF
71 #define FDDI_FC_K_ASYNC_LLC_MIN 0x50
72 #define FDDI_FC_K_ASYNC_LLC_DEF 0x54
73 #define FDDI_FC_K_ASYNC_LLC_MAX 0x5F
74 #define FDDI_FC_K_SYNC_LLC_MIN 0xD0
75 #define FDDI_FC_K_SYNC_LLC_MAX 0xD7
76 #define FDDI_FC_K_IMPLEMENTOR_MIN 0x60
77 #define FDDI_FC_K_IMPLEMENTOR_MAX 0x6F
78 #define FDDI_FC_K_RESERVED_MIN 0x70
79 #define FDDI_FC_K_RESERVED_MAX 0x7F
80
81
82 #define FDDI_EXTENDED_SAP 0xAA
83 #define FDDI_UI_CMD 0x03
84
85
86 struct fddi_8022_1_hdr {
87 __u8 dsap;
88 __u8 ssap;
89 __u8 ctrl;
90 } __attribute__((packed));
91
92
93 struct fddi_8022_2_hdr {
94 __u8 dsap;
95 __u8 ssap;
96 __u8 ctrl_1;
97 __u8 ctrl_2;
98 } __attribute__((packed));
99
100
101 struct fddi_snap_hdr {
102 __u8 dsap;
103 __u8 ssap;
104 __u8 ctrl;
105 __u8 oui[FDDI_K_OUI_LEN];
106 __be16 ethertype;
107 } __attribute__((packed));
108
109
110 struct fddihdr {
111 __u8 fc;
112 __u8 daddr[FDDI_K_ALEN];
113 __u8 saddr[FDDI_K_ALEN];
114 union {
115 struct fddi_8022_1_hdr llc_8022_1;
116 struct fddi_8022_2_hdr llc_8022_2;
117 struct fddi_snap_hdr llc_snap;
118 } hdr;
119 } __attribute__((packed));
120
121
122 #endif