Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 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 27 28 29
30 1 2 3 4 5 6


if_fddi.h
001: /*
002:  * INET         An implementation of the TCP/IP protocol suite for the LINUX
003:  *              operating system.  INET is implemented using the BSD Socket
004:  *              interface as the means of communication with the user level.
005:  *
006:  *              Global definitions for the ANSI FDDI interface.
007:  *
008:  * Version:     @(#)if_fddi.h   1.0.2   Sep 29 2004
009:  *
010:  * Author:      Lawrence V. Stefani, <stefani@lkg.dec.com>
011:  *
012:  *              if_fddi.h is based on previous if_ether.h and if_tr.h work by
013:  *                      Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
014:  *                      Donald Becker, <becker@super.org>
015:  *                      Alan Cox, <alan@lxorguk.ukuu.org.uk>
016:  *                      Steve Whitehouse, <gw7rrm@eeshack3.swan.ac.uk>
017:  *                      Peter De Schrijver, <stud11@cc4.kuleuven.ac.be>
018:  *
019:  *              This program is free software; you can redistribute it and/or
020:  *              modify it under the terms of the GNU General Public License
021:  *              as published by the Free Software Foundation; either version
022:  *              2 of the License, or (at your option) any later version.
023:  */
024: #ifndef _LINUX_IF_FDDI_H
025: #define _LINUX_IF_FDDI_H
026: 
027: #include <linux/types.h>
028: 
029: /*
030:  *  Define max and min legal sizes.  The frame sizes do not include
031:  *  4 byte FCS/CRC (frame check sequence).
032:  */
033: #define FDDI_K_ALEN                     6               /* Octets in one FDDI address */
034: #define FDDI_K_8022_HLEN        16              /* Total octets in 802.2 header */
035: #define FDDI_K_SNAP_HLEN        21              /* Total octets in 802.2 SNAP header */
036: #define FDDI_K_8022_ZLEN        16              /* Min octets in 802.2 frame sans FCS */
037: #define FDDI_K_SNAP_ZLEN        21              /* Min octets in 802.2 SNAP frame sans FCS */
038: #define FDDI_K_8022_DLEN        4475    /* Max octets in 802.2 payload */
039: #define FDDI_K_SNAP_DLEN        4470    /* Max octets in 802.2 SNAP payload */
040: #define FDDI_K_LLC_ZLEN         13              /* Min octets in LLC frame sans FCS */
041: #define FDDI_K_LLC_LEN          4491    /* Max octets in LLC frame sans FCS */
042: 
043: /* Define FDDI Frame Control (FC) Byte values */
044: #define FDDI_FC_K_VOID                                  0x00    
045: #define FDDI_FC_K_NON_RESTRICTED_TOKEN  0x80    
046: #define FDDI_FC_K_RESTRICTED_TOKEN              0xC0    
047: #define FDDI_FC_K_SMT_MIN                               0x41
048: #define FDDI_FC_K_SMT_MAX                               0x4F
049: #define FDDI_FC_K_MAC_MIN                               0xC1
050: #define FDDI_FC_K_MAC_MAX                               0xCF    
051: #define FDDI_FC_K_ASYNC_LLC_MIN                 0x50
052: #define FDDI_FC_K_ASYNC_LLC_DEF                 0x54
053: #define FDDI_FC_K_ASYNC_LLC_MAX                 0x5F
054: #define FDDI_FC_K_SYNC_LLC_MIN                  0xD0
055: #define FDDI_FC_K_SYNC_LLC_MAX                  0xD7
056: #define FDDI_FC_K_IMPLEMENTOR_MIN               0x60
057: #define FDDI_FC_K_IMPLEMENTOR_MAX               0x6F
058: #define FDDI_FC_K_RESERVED_MIN                  0x70
059: #define FDDI_FC_K_RESERVED_MAX                  0x7F
060: 
061: /* Define LLC and SNAP constants */
062: #define FDDI_EXTENDED_SAP       0xAA
063: #define FDDI_UI_CMD                     0x03
064: 
065: /* Define 802.2 Type 1 header */
066: struct fddi_8022_1_hdr {
067:         __u8    dsap;                                   /* destination service access point */
068:         __u8    ssap;                                   /* source service access point */
069:         __u8    ctrl;                                   /* control byte #1 */
070: } __attribute__((packed));
071: 
072: /* Define 802.2 Type 2 header */
073: struct fddi_8022_2_hdr {
074:         __u8    dsap;                                   /* destination service access point */
075:         __u8    ssap;                                   /* source service access point */
076:         __u8    ctrl_1;                                 /* control byte #1 */
077:         __u8    ctrl_2;                                 /* control byte #2 */
078: } __attribute__((packed));
079: 
080: /* Define 802.2 SNAP header */
081: #define FDDI_K_OUI_LEN  3
082: struct fddi_snap_hdr {
083:         __u8    dsap;                                   /* always 0xAA */
084:         __u8    ssap;                                   /* always 0xAA */
085:         __u8    ctrl;                                   /* always 0x03 */
086:         __u8    oui[FDDI_K_OUI_LEN];    /* organizational universal id */
087:         __be16  ethertype;                              /* packet type ID field */
088: } __attribute__((packed));
089: 
090: /* Define FDDI LLC frame header */
091: struct fddihdr {
092:         __u8    fc;                                             /* frame control */
093:         __u8    daddr[FDDI_K_ALEN];             /* destination address */
094:         __u8    saddr[FDDI_K_ALEN];             /* source address */
095:         union
096:                 {
097:                 struct fddi_8022_1_hdr          llc_8022_1;
098:                 struct fddi_8022_2_hdr          llc_8022_2;
099:                 struct fddi_snap_hdr            llc_snap;
100:                 } hdr;
101: } __attribute__((packed));
102: 
103: 
104: #endif  /* _LINUX_IF_FDDI_H */
105: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/