if_llc.h

Upload User: acmefrp
Upload Date: 2010-03-06
Package Size: 23768k
Code Size: 2k
Category: OS Develop
Development Platform: C/C++
  1. /*      @(#)if_llc.h 1.1 92/07/30 SMI      */
  2. /*
  3.  * Copyright (c) 1988 by Sun Microsystems, Inc.
  4.  */
  5. /* 
  6.  * Structure of a IEEE 802.2 LLC header
  7.  */
  8. struct llc_hdr1 {
  9. u_char d_lsap; /* destination link service access point */
  10. u_char s_lsap; /* source link service access point */
  11. u_char control; /* short control field */
  12. };
  13. #define LLC_HDR1_LEN 3 /* DON'T use sizeof(struct llc_hdr1) */
  14. struct llc_hdr2 {
  15. u_char d_lsap; /* destination link service access point */
  16. u_char s_lsap; /* source link service access point */
  17. u_short control; /* long control field */
  18. };
  19. #define LLC_HDR2_LEN 4 /* DON'T use sizeof(struct llc_hdr2) */
  20. struct llc_snap_hdr {
  21. u_char d_lsap; /* destination link service access point */
  22. u_char s_lsap; /* source link service access point */
  23. u_char control; /* short control field */
  24. u_char org[3]; /* Ethernet style organization field */
  25. u_short type; /* Ethernet style type field */
  26. };
  27. struct llc_xid {
  28. u_char d_lsap; /* destination link service access point */
  29. u_char s_lsap; /* source link service access point */
  30. u_char control; /* short control field */
  31. u_char xid_formatid; /* usually 0x81 for IEEE */
  32. u_char supported_class;/* 1 for llc.1, 3 for llc.2 */
  33. u_char llc2_window; /* window size, *2 */
  34. };
  35. #define LLC_XID_LEN 6 /* DON'T use sizeof(struct llc_hdr1) */
  36. #define LLC_SNAP_HDR_LEN 8 /* DON'T use sizeof(struct foo) */
  37. struct llc_softc { /* llc per instance data */
  38. struct ifnet llc_if; /* MUST BE FIRST */
  39. int llc_st_state; /* current station state of llc FSM */
  40. #define  LLC_DOWN 0
  41. #define  LLC_UP  1
  42. #define  LLC_CHECK 2
  43. int llc_setmtu /* maximum transport unit allowed */
  44. };
  45. #define CNTL_LLC_UI 0x03 /* un-numbered information packet */
  46. #define CNTL_LLC_XID 0xaf /* XID packet */
  47. #define CNTL_LLC_TST 0xe3 /* TEST packet */
  48. #define LLC_RESP 0x01 /* Response bit - add to the SSAP */
  49. #define CNTL_LLC_PF_BIT 0x10 /* position of the Poll / Final bit */
  50. #define LLC_XID_FORMAT 0x81 /* IEEE format */
  51. /*
  52.  * Useful macros.
  53.  */
  54. #define m_802addr(m) mtod(m, struct sockaddr *)
  55. #define llcprintf  if(llc_debug)printf