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

TCP/IP协议栈

开发平台:

Visual C++

  1. #ifndef _PPPIPCP_H
  2. #define _PPPIPCP_H
  3. #ifndef _SLHC_H
  4. #include "slhc.h"
  5. #endif
  6. /* IPCP option types */
  7. #define IPCP_ADDRESS 0x01
  8. #define IPCP_COMPRESS 0x02
  9. #define IPCP_OPTION_LIMIT 0x02 /* highest # we can handle */
  10. /* Table for IPCP configuration requests */
  11. struct ipcp_value_s {
  12. uint16 negotiate; /* negotiation flags */
  13. #define IPCP_N_ADDRESS (1 << IPCP_ADDRESS)
  14. #define IPCP_N_COMPRESS (1 << IPCP_COMPRESS)
  15. int32 address; /* address for this side */
  16. int32 other; /* address for other side */
  17. uint16 compression; /* Compression protocol */
  18. uint16 slots; /* Slots (0-n)*/
  19. byte_t slot_compress; /* Slots may be compressed (flag)*/
  20. };
  21. #define IPCP_SLOT_DEFAULT 16 /* Default # of slots */
  22. #define IPCP_SLOT_HI 64 /* Maximum # of slots */
  23. #define IPCP_SLOT_LO   1 /* Minimum # of slots */
  24. #define IPCP_SLOT_COMPRESS 0x01 /* May compress slot id */
  25. struct ipcp_side_s {
  26. uint16 will_negotiate;
  27. struct ipcp_value_s want;
  28. struct ipcp_value_s work;
  29. };
  30. /* Store address pool in otherwise unused address locations */
  31. #define peer_min local.want.other /* First IP address in pool */
  32. #define peer_max remote.want.other /* Last IP address in pool */
  33. /* IPCP control block */
  34. struct ipcp_s {
  35. struct ipcp_side_s local;
  36. struct ipcp_side_s remote;
  37. struct slcompress *slhcp; /* pointer to compression block */
  38. };
  39. #define IPCP_REQ_TRY 20 /* REQ attempts */
  40. #define IPCP_NAK_TRY 10 /* NAK attempts */
  41. #define IPCP_TERM_TRY 10 /* tries on TERM REQ */
  42. #define IPCP_TIMEOUT 3 /* Seconds to wait for response */
  43. int doppp_ipcp(int argc, char *argv[], void *p);
  44. void ipcp_init(struct ppp_s *ppp_p);
  45. #endif /* _PPPIPCP_H */