1 /* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6 #ifndef _UAPI_LINUX_IF_FDDI_H 7 #define _UAPI_LINUX_IF_FDDI_H 8 #include <linux/types.h> 9 #define FDDI_K_ALEN 6 10 #define FDDI_K_8022_HLEN 16 11 #define FDDI_K_SNAP_HLEN 21 12 #define FDDI_K_8022_ZLEN 16 13 #define FDDI_K_SNAP_ZLEN 21 14 #define FDDI_K_8022_DLEN 4475 15 #define FDDI_K_SNAP_DLEN 4470 16 #define FDDI_K_LLC_ZLEN 13 17 #define FDDI_K_LLC_LEN 4491 18 #define FDDI_K_OUI_LEN 3 19 #define FDDI_FC_K_VOID 0x00 20 #define FDDI_FC_K_NON_RESTRICTED_TOKEN 0x80 21 #define FDDI_FC_K_RESTRICTED_TOKEN 0xC0 22 #define FDDI_FC_K_SMT_MIN 0x41 23 #define FDDI_FC_K_SMT_MAX 0x4F 24 #define FDDI_FC_K_MAC_MIN 0xC1 25 #define FDDI_FC_K_MAC_MAX 0xCF 26 #define FDDI_FC_K_ASYNC_LLC_MIN 0x50 27 #define FDDI_FC_K_ASYNC_LLC_DEF 0x54 28 #define FDDI_FC_K_ASYNC_LLC_MAX 0x5F 29 #define FDDI_FC_K_SYNC_LLC_MIN 0xD0 30 #define FDDI_FC_K_SYNC_LLC_MAX 0xD7 31 #define FDDI_FC_K_IMPLEMENTOR_MIN 0x60 32 #define FDDI_FC_K_IMPLEMENTOR_MAX 0x6F 33 #define FDDI_FC_K_RESERVED_MIN 0x70 34 #define FDDI_FC_K_RESERVED_MAX 0x7F 35 #define FDDI_EXTENDED_SAP 0xAA 36 #define FDDI_UI_CMD 0x03 37 struct fddi_8022_1_hdr { 38 __u8 dsap; 39 __u8 ssap; 40 __u8 ctrl; 41 } __attribute__((packed)); 42 struct fddi_8022_2_hdr { 43 __u8 dsap; 44 __u8 ssap; 45 __u8 ctrl_1; 46 __u8 ctrl_2; 47 } __attribute__((packed)); 48 struct fddi_snap_hdr { 49 __u8 dsap; 50 __u8 ssap; 51 __u8 ctrl; 52 __u8 oui[FDDI_K_OUI_LEN]; 53 __be16 ethertype; 54 } __attribute__((packed)); 55 struct fddihdr { 56 __u8 fc; 57 __u8 daddr[FDDI_K_ALEN]; 58 __u8 saddr[FDDI_K_ALEN]; 59 union { 60 struct fddi_8022_1_hdr llc_8022_1; 61 struct fddi_8022_2_hdr llc_8022_2; 62 struct fddi_snap_hdr llc_snap; 63 } hdr; 64 } __attribute__((packed)); 65 #endif 66