ppplcp.h
上传用户:hepax88
上传日期:2007-01-03
资源大小:1101k
文件大小:2k
源码类别:

TCP/IP协议栈

开发平台:

Visual C++

  1. #ifndef _PPPLCP_H
  2. #define _PPPLCP_H
  3. /* LCP option types */
  4. #define LCP_MRU 0x01
  5. #define LCP_ACCM 0x02
  6. #define LCP_AUTHENT 0x03
  7. #define LCP_ENCRYPT 0x04
  8. #define LCP_MAGIC 0x05
  9. #define LCP_QUALITY 0x06
  10. #define LCP_PFC 0x07
  11. #define LCP_ACFC 0x08
  12. #define LCP_OPTION_LIMIT 0x08 /* highest # we can handle */
  13. /* Table for LCP configuration requests */
  14. struct lcp_value_s {
  15. uint16 negotiate; /* negotiation flags */
  16. #define LCP_N_MRU (1 << LCP_MRU)
  17. #define LCP_N_ACCM (1 << LCP_ACCM)
  18. #define LCP_N_AUTHENT (1 << LCP_AUTHENT)
  19. #define LCP_N_ENCRYPT (1 << LCP_ENCRYPT)
  20. #define LCP_N_MAGIC (1 << LCP_MAGIC)
  21. #define LCP_N_QUALITY (1 << LCP_QUALITY)
  22. #define LCP_N_PFC (1 << LCP_PFC)
  23. #define LCP_N_ACFC (1 << LCP_ACFC)
  24. uint16 mru; /* Maximum Receive Unit */
  25. int32 accm; /* Async Control Char Map */
  26. uint16 authentication; /* Authentication protocol */
  27. uint16 encryption; /* Encryption protocol */
  28. int32 magic_number; /* Magic number value */
  29. int32 reporting_period; /* Link Quality reporting period */
  30. };
  31. /* Other configuration option values */
  32. #define LCP_ACCM_DEFAULT 0xffffffffL
  33. #define LCP_MRU_DEFAULT 1500
  34. #define LCP_MRU_HI 4096 /* High MRU limit */
  35. #define LCP_MRU_LO 128 /* Lower MRU limit */
  36. /*
  37.  * local.want: Options to request.
  38.  * Contains desired value.
  39.  * Only non-default options need to be negotiated.
  40.  * Initially, all are default.
  41.  * local.will: Options to accept in a NAK from remote.
  42.  * local.work: Options currently being negotiated.
  43.  * Value is valid only when negotiate bit is set.
  44.  *
  45.  * remote.want: Options to suggest by NAK if not present in REQ.
  46.  * Contains desired value.
  47.  * remote.will: Options to accept in a REQ from remote.
  48.  * remote.work: Options currently being negotiated.
  49.  * Value is valid only when negotiate bit is set.
  50.  */
  51. struct lcp_side_s {
  52. uint16 will_negotiate;
  53. struct lcp_value_s want;
  54. struct lcp_value_s work;
  55. };
  56. /* LCP control block */
  57. struct lcp_s {
  58. struct lcp_side_s local;
  59. struct lcp_side_s remote;
  60. };
  61. #define LCP_REQ_TRY 20 /* REQ attempts */
  62. #define LCP_NAK_TRY 10 /* NAK attempts */
  63. #define LCP_TERM_TRY 10 /* tries on TERM REQ */
  64. #define LCP_TIMEOUT 3 /* Seconds to wait for response */
  65. int doppp_lcp(int argc, char *argv[], void *p);
  66. void ppp_ready(struct ppp_s *ppp_p);
  67. void lcp_init(struct ppp_s *ppp_p);
  68. #endif /* _PPPLCP_H */