home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD v1.2 / amidev_cd_12.iso / devcon / milan_1991 / devcon91.2 / network / sana2 / include / sana2packetmagic.h < prev    next >
C/C++ Source or Header  |  1992-09-01  |  2KB  |  93 lines

  1. #ifndef SANA2_SANA2PACKETMAGIC_H
  2. #define SANA2_SANA2PACKETMAGIC_H 1
  3. /*
  4. **    $Filename: sana2packetmagic.h $
  5. **    $Release: Developer Information$
  6. **    $Revision: 1.2 $
  7. **    $Date: 91/05/08 $
  8. **
  9. **    Defined types of magic for the Sana2PacketType structure.
  10. **
  11. **    (C) Copyright 1991 Raymond S. Brand
  12. **        All Rights Reserved
  13. **
  14. **    (C) Copyright 1991 Commodore-Amiga Inc.
  15. **        All Rights Reserved
  16. */
  17.  
  18. /*
  19. ** Contributions from:
  20. **    Raymond S. Brand,   rsbx@cbmvax.commodore.com,  (215) 431-9100
  21. **    Martin Hunt,      martin@cbmvax.commodore.com,  (215) 431-9100
  22. **    Perry Kivolowitz,           ASDG Incorporated,  (608) 273-6585
  23. */
  24.  
  25. #ifndef SANA2_SANA2DEVICE_H
  26. #include <sana2/sana2device.h>
  27. #endif    /* !SANA2_SANA2DEVICE_H */
  28.  
  29.  
  30. /*
  31.  * The SANA-II Sana2PacketType structure Magic value is an unsigned 32
  32.  * number. The upper 16 bits identify the type of network wire to which
  33.  * the Magic value applies and the lower 16 bits identify the particular
  34.  * type of magic.
  35.  */
  36.  
  37.  
  38. /*
  39.  * defined types of ethernet magic
  40.  */
  41.  
  42. #define S2MAGIC_ETHERNET_E2    ((((S2WireType_Ethernet)&0xffff)<<16)|0x0000)
  43. /*
  44.  * For ethernet, this is the default case. Mask is ignored, Length is 2,
  45.  * Match points to a UWORD to match against the type field of the packet.
  46.  */
  47.  
  48. #define S2MAGIC_ETHERNET_8023    ((((S2WireType_Ethernet)&0xffff)<<16)|0x0001)
  49. /*
  50.  * The caller is declaring his intent to receive any of the valid 802.3
  51.  * ethernet packet types. The Match and Mask fields are ignored, Length
  52.  * is 0.
  53.  * 
  54.  * SANA-II ethernet driver writers need to support a read queue for 802.3
  55.  * packets separate from packets of any non-802.3 type.
  56.  * 
  57.  * A possible flow through an ethernet driver's read interrupt routine
  58.  * might look like the following:
  59.  * 
  60.  *     ...
  61.  * 
  62.  *     sniff packet type...
  63.  * 
  64.  *     if (NoSpecificReadWaiting())
  65.  *         {
  66.  *         if (IsAn802() && 802ReadWaiting())
  67.  *             {
  68.  *             Return802();
  69.  *             }
  70.  *         else
  71.  *             {
  72.  *             if (OrphanReadWaiting())
  73.  *                 {
  74.  *                 ReturnOrphan();
  75.  *                 }
  76.  *             else
  77.  *                 {
  78.  *                 DropPacket();
  79.  *                 }
  80.  *             }
  81.  *         }
  82.  *     else
  83.  *         {
  84.  *         ReturnSpecificPacket();
  85.  *         }
  86.  * 
  87.  *     ...
  88.  * 
  89.  */
  90.  
  91.  
  92. #endif    /* SANA2_SANA2PACKETMAGIC_H */
  93.