home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 January: Mac OS SDK / Dev.CD Jan 96 SDK / Dev.CD Jan 96 SDK1.toast / Development Kits (Disc 1) / OpenTransport / Open Transport 1.0.5b4 / Open Transport SDK / Open Tpt Module Developer / Includes / OpenTptDevLinks.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-24  |  2.5 KB  |  114 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        OpenTptDevLinks.h
  3.  
  4.     Contains:    Link related constants and structures
  5.  
  6.     Copyright:    © 1993-1995 by Apple Computer, Inc., all rights reserved.
  7.  
  8.  
  9.  
  10. */
  11.  
  12. #ifndef __OPENTPTDEVLINKS__
  13. #define __OPENTPTDEVLINKS__
  14.  
  15. #ifndef __OPENTPTLINKS__
  16. #include <OpenTptLinks.h>
  17. #endif
  18.  
  19. #ifndef __OPENTPTDEV__
  20. #include <OpenTptDev.h>
  21. #endif
  22.  
  23. /*******************************************************************************
  24. ** Link related constants
  25. ********************************************************************************/
  26.  
  27. enum
  28. {
  29.     kEnetPacketHeaderLength        = (2*k48BitAddrLength)+k8022DLSAPLength,
  30.     //
  31.     // The TSDU for ethernet.
  32.     //
  33.     kEnetTSDU                    = 1514,
  34.     //
  35.     // The TSDU for TokenRing.
  36.     //
  37.     kTokenRingTSDU                = 4458,
  38.     //
  39.     // The TSDU for FDDI.
  40.     //
  41.     kFDDITSDU                    = 4458, //%%% Until someone tells me different
  42.     
  43.     
  44.     k8022SAPLength                = 1,
  45.     
  46.     //
  47.     // define the length of the header portion of an 802.2 packet.
  48.     //
  49.     k8022BasicHeaderLength        = 3, // = SSAP+DSAP+ControlByte
  50.     k8022SNAPHeaderLength        = k8022SNAPLength + k8022BasicHeaderLength
  51. };
  52.  
  53. /*******************************************************************************
  54. ** Address Types recognized by the Enet DLPI
  55. ********************************************************************************/
  56.  
  57. enum EAddrType
  58. {
  59.     keaStandardAddress=0, keaMulticast, keaBroadcast, keaBadAddress,
  60.     keaRawPacketBit = 0x80000000
  61. };
  62.  
  63. /*******************************************************************************
  64. ** Packet Header Structures
  65. ********************************************************************************/
  66.  
  67. struct EnetPacketHeader
  68. {
  69.     UInt8    fDestAddr[k48BitAddrLength];
  70.     UInt8    fSourceAddr[k48BitAddrLength];
  71.     UInt16    fProto;
  72. };
  73.  
  74. typedef struct EnetPacketHeader    EnetPacketHeader;
  75.  
  76. struct T8022Header
  77. {
  78.     UInt8    fDSAP;
  79.     UInt8    fSSAP;
  80.     UInt8    fCtrl;
  81. };
  82.  
  83. typedef struct T8022Header    T8022Header;
  84.  
  85. struct T8022SNAPHeader
  86. {
  87.     UInt8    fDSAP;
  88.     UInt8    fSSAP;
  89.     UInt8    fCtrl;
  90.     UInt8    fSNAP[k8022SNAPLength];
  91. };
  92.  
  93. typedef struct T8022SNAPHeader    T8022SNAPHeader;
  94.  
  95. struct T8022FullPacketHeader
  96. {
  97.     EnetPacketHeader    fEnetPart;
  98.     T8022SNAPHeader        f8022Part;
  99. };
  100.  
  101. typedef struct T8022FullPacketHeader    T8022FullPacketHeader;
  102.  
  103. /*    -------------------------------------------------------------------------
  104.     Define the lengths of the structures above
  105.     ------------------------------------------------------------------------- */
  106. enum
  107. {
  108.     kT8022HeaderLength                = 3,
  109.     kT8022SNAPHeaderLength            = 3 + k8022SNAPLength,
  110.     kT8022FullPacketHeaderLength    = kEnetPacketHeaderLength + kT8022SNAPHeaderLength
  111. };
  112.  
  113.  
  114. #endif