0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef _UAPI_LINUX_IF_FDDI_H
0027 #define _UAPI_LINUX_IF_FDDI_H
0028
0029 #include <linux/types.h>
0030
0031
0032
0033
0034
0035 #define FDDI_K_ALEN 6
0036 #define FDDI_K_8022_HLEN 16
0037 #define FDDI_K_SNAP_HLEN 21
0038 #define FDDI_K_8022_ZLEN 16
0039
0040 #define FDDI_K_SNAP_ZLEN 21
0041
0042 #define FDDI_K_8022_DLEN 4475
0043 #define FDDI_K_SNAP_DLEN 4470
0044 #define FDDI_K_LLC_ZLEN 13
0045 #define FDDI_K_LLC_LEN 4491
0046 #define FDDI_K_OUI_LEN 3
0047
0048
0049
0050 #define FDDI_FC_K_CLASS_MASK 0x80
0051 #define FDDI_FC_K_CLASS_SYNC 0x80
0052 #define FDDI_FC_K_CLASS_ASYNC 0x00
0053 #define FDDI_FC_K_ALEN_MASK 0x40
0054 #define FDDI_FC_K_ALEN_48 0x40
0055 #define FDDI_FC_K_ALEN_16 0x00
0056 #define FDDI_FC_K_FORMAT_MASK 0x30
0057 #define FDDI_FC_K_FORMAT_FUTURE 0x30
0058 #define FDDI_FC_K_FORMAT_IMPLEMENTOR 0x20
0059 #define FDDI_FC_K_FORMAT_LLC 0x10
0060 #define FDDI_FC_K_FORMAT_MANAGEMENT 0x00
0061 #define FDDI_FC_K_CONTROL_MASK 0x0f
0062
0063
0064 #define FDDI_FC_K_VOID 0x00
0065 #define FDDI_FC_K_NON_RESTRICTED_TOKEN 0x80
0066 #define FDDI_FC_K_RESTRICTED_TOKEN 0xC0
0067 #define FDDI_FC_K_SMT_MIN 0x41
0068 #define FDDI_FC_K_SMT_MAX 0x4F
0069 #define FDDI_FC_K_MAC_MIN 0xC1
0070 #define FDDI_FC_K_MAC_MAX 0xCF
0071 #define FDDI_FC_K_ASYNC_LLC_MIN 0x50
0072 #define FDDI_FC_K_ASYNC_LLC_DEF 0x54
0073 #define FDDI_FC_K_ASYNC_LLC_MAX 0x5F
0074 #define FDDI_FC_K_SYNC_LLC_MIN 0xD0
0075 #define FDDI_FC_K_SYNC_LLC_MAX 0xD7
0076 #define FDDI_FC_K_IMPLEMENTOR_MIN 0x60
0077 #define FDDI_FC_K_IMPLEMENTOR_MAX 0x6F
0078 #define FDDI_FC_K_RESERVED_MIN 0x70
0079 #define FDDI_FC_K_RESERVED_MAX 0x7F
0080
0081
0082 #define FDDI_EXTENDED_SAP 0xAA
0083 #define FDDI_UI_CMD 0x03
0084
0085
0086 struct fddi_8022_1_hdr {
0087 __u8 dsap;
0088 __u8 ssap;
0089 __u8 ctrl;
0090 } __attribute__((packed));
0091
0092
0093 struct fddi_8022_2_hdr {
0094 __u8 dsap;
0095 __u8 ssap;
0096 __u8 ctrl_1;
0097 __u8 ctrl_2;
0098 } __attribute__((packed));
0099
0100
0101 struct fddi_snap_hdr {
0102 __u8 dsap;
0103 __u8 ssap;
0104 __u8 ctrl;
0105 __u8 oui[FDDI_K_OUI_LEN];
0106 __be16 ethertype;
0107 } __attribute__((packed));
0108
0109
0110 struct fddihdr {
0111 __u8 fc;
0112 __u8 daddr[FDDI_K_ALEN];
0113 __u8 saddr[FDDI_K_ALEN];
0114 union {
0115 struct fddi_8022_1_hdr llc_8022_1;
0116 struct fddi_8022_2_hdr llc_8022_2;
0117 struct fddi_snap_hdr llc_snap;
0118 } hdr;
0119 } __attribute__((packed));
0120
0121
0122 #endif