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

TCP/IP协议栈

开发平台:

Visual C++

  1. #ifndef _PPP_H
  2. #define _PPP_H
  3. /*
  4.  * This implementation of PPP is declared to be in the public domain.
  5.  *
  6.  * Jan 91 Bill_Simpson@um.cc.umich.edu
  7.  * Computer Systems Consulting Services
  8.  *
  9.  * Acknowledgements and correction history may be found in PPP.C
  10.  */
  11. #ifndef _GLOBAL_H
  12. #include "global.h"
  13. #endif
  14. #ifndef _MBUF_H
  15. #include "mbuf.h"
  16. #endif
  17. #ifndef _IFACE_H
  18. #include "iface.h"
  19. #endif
  20. /* PPP definitions */
  21. #define PPP_ALLOC 128 /* mbuf allocation increment */
  22. struct ppp_hdr {
  23. byte_t addr;
  24. #define HDLC_ALL_ADDR 0xff /* HDLC all-station */
  25. byte_t control;
  26. #define HDLC_UI 0x03 /* HDLC Unnumbered Information */
  27. uint16 protocol;
  28. #define PPP_IP_PROTOCOL 0x0021 /* Internet Protocol */
  29. #define PPP_COMPR_PROTOCOL 0x002d /* Van Jacobson Compressed TCP/IP */
  30. #define PPP_UNCOMP_PROTOCOL 0x002f /* Van Jacobson Uncompressed TCP/IP */
  31. #define PPP_IPCP_PROTOCOL 0x8021 /* Internet Protocol Control Protocol */
  32. #define PPP_LCP_PROTOCOL 0xc021 /* Link Control Protocol */
  33. #define PPP_PAP_PROTOCOL 0xc023 /* Password Authentication Protocol */
  34. };
  35. #define PPP_HDR_LEN 4 /* Max bytes for PPP/HDLC envelope header */
  36. /* HDLC envelope constants */
  37. #define HDLC_ENVLEN 8 /* Max bytes for HDLC envelope (outgoing) */
  38. #define HDLC_FLAG 0x7e /* HDLC async start/stop flag */
  39. #define HDLC_ESC_ASYNC 0x7d /* HDLC transparency escape flag for async */
  40. #define HDLC_ESC_COMPL 0x20 /* HDLC transparency bit complement mask */
  41. #define HDLC_FCS_START 0xffff /* Starting bit string for FCS calculation */
  42. #define HDLC_FCS_FINAL 0xf0b8 /* FCS when summed over frame and sender FCS */
  43. /* In ppp.c: */
  44. int ppp_send(struct mbuf **data,struct iface *iface,int32 gateway,
  45. uint8 tos);
  46. int ppp_output(struct iface *iface, char dest[], char source[],
  47. uint16 type, struct mbuf **data);
  48. int ppp_init(struct iface *iface);
  49. int ppp_free(struct iface *iface);
  50. void ppp_proc(struct iface *iface, struct mbuf **bp);
  51. /* In pppcmd.c */
  52. extern int PPPtrace; /* trace flag */
  53. extern struct iface *PPPiface; /* iface for trace */
  54. void ppp_show(struct iface *ifp);
  55. int doppp_commands(int argc,char *argv[], void *p);
  56. int doppp_active(int argc, char *argv[], void *p);
  57. int doppp_passive(int argc, char *argv[], void *p);
  58. int doppp_close(int argc, char *argv[], void *p);
  59. int doppp_timeout(int argc, char *argv[], void *p);
  60. int doppp_try(int argc, char *argv[], void *p);
  61. #endif /* _PPP_H */