]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/lcp.h
Patch from Frank Cusack to add support for MSCHAPv2.
[ppp.git] / pppd / lcp.h
index f7d5ea265c71556c21cfab2ec49aec4fd2a35a0a..95260bb387d02a9f8cde10b6ac40a96a1e24111f 100644 (file)
@@ -16,7 +16,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- * $Id: lcp.h,v 1.1 1993/11/11 03:54:25 paulus Exp $
+ * $Id: lcp.h,v 1.17 2002/03/01 14:39:18 dfs Exp $
  */
 
 /*
 #define CI_AUTHTYPE    3       /* Authentication Type */
 #define CI_QUALITY     4       /* Quality Protocol */
 #define CI_MAGICNUMBER 5       /* Magic Number */
-#define CI_KEEPALIVE   6       /* Keep Alive Parameters - OBSOLETE */
 #define CI_PCOMPRESSION        7       /* Protocol Field Compression */
 #define CI_ACCOMPRESSION 8     /* Address/Control Field Compression */
+#define CI_CALLBACK    13      /* callback */
+#define CI_MRRU                17      /* max reconstructed receive unit; multilink */
+#define CI_SSNHF       18      /* short sequence numbers for multilink */
+#define CI_EPDISC      19      /* endpoint discriminator */
 
+/*
+ * LCP-specific packet types.
+ */
+#define PROTREJ                8       /* Protocol Reject */
+#define ECHOREQ                9       /* Echo Request */
+#define ECHOREP                10      /* Echo Reply */
+#define DISCREQ                11      /* Discard Request */
+#define CBCP_OPT       6       /* Use callback control protocol */
 
 /*
  * The state of options is described by an lcp_options structure.
  */
 typedef struct lcp_options {
-    int passive : 1;           /* Don't die if we don't get a response */
-    int silent : 1;            /* Wait for the other end to start first */
-    int restart : 1;           /* Restart vs. exit after close */
-    int neg_mru : 1;           /* Negotiate the MRU? */
-    int neg_asyncmap : 1;      /* Negotiate the async map? */
-    int neg_upap : 1;          /* Ask for UPAP authentication? */
-    int neg_chap : 1;          /* Ask for CHAP authentication? */
-    int neg_magicnumber : 1;   /* Ask for magic number? */
-    int neg_pcompression : 1;  /* HDLC Protocol Field Compression? */
-    int neg_accompression : 1; /* HDLC Address/Control Field Compression? */
-    int neg_lqr : 1;           /* Negotiate use of Link Quality Reports */
-    u_short mru;               /* Value of MRU */
-    char chap_mdtype;          /* which MD type (hashing algorithm) */
-    u_long asyncmap;           /* Value of async map */
-    u_long magicnumber;
-    int numloops;              /* Number of loops during magic number neg. */
-    u_long lqr_period;         /* Reporting period for link quality */
+    bool passive;              /* Don't die if we don't get a response */
+    bool silent;               /* Wait for the other end to start first */
+    bool restart;              /* Restart vs. exit after close */
+    bool neg_mru;              /* Negotiate the MRU? */
+    bool neg_asyncmap;         /* Negotiate the async map? */
+    bool neg_upap;             /* Ask for UPAP authentication? */
+    bool neg_chap;             /* Ask for CHAP authentication? */
+    bool neg_magicnumber;      /* Ask for magic number? */
+    bool neg_pcompression;     /* HDLC Protocol Field Compression? */
+    bool neg_accompression;    /* HDLC Address/Control Field Compression? */
+    bool neg_lqr;              /* Negotiate use of Link Quality Reports */
+    bool neg_cbcp;             /* Negotiate use of CBCP */
+    bool neg_mrru;             /* negotiate multilink MRRU */
+    bool neg_ssnhf;            /* negotiate short sequence numbers */
+    bool neg_endpoint;         /* negotiate endpoint discriminator */
+    int  mru;                  /* Value of MRU */
+    int         mrru;                  /* Value of MRRU, and multilink enable */
+    u_char chap_mdtype;                /* which MD types (hashing algorithm) */
+    u_int32_t asyncmap;                /* Value of async map */
+    u_int32_t magicnumber;
+    int  numloops;             /* Number of loops during magic number neg. */
+    u_int32_t lqr_period;      /* Reporting period for LQR 1/100ths second */
+    struct epdisc endpoint;    /* endpoint discriminator */
 } lcp_options;
 
 extern fsm lcp_fsm[];
@@ -65,14 +82,14 @@ extern lcp_options lcp_hisoptions[];
 #define MINMRU 128             /* No MRUs below this */
 #define MAXMRU 16384           /* Normally limit MRU to this */
 
-void lcp_init __ARGS((int));
-void lcp_open __ARGS((int));
-void lcp_close __ARGS((int));
-void lcp_lowerup __ARGS((int));
-void lcp_lowerdown __ARGS((int));
-void lcp_input __ARGS((int, u_char *, int));
-void lcp_protrej __ARGS((int));
-void lcp_sprotrej __ARGS((int, u_char *, int));
+void lcp_open __P((int));
+void lcp_close __P((int, char *));
+void lcp_lowerup __P((int));
+void lcp_lowerdown __P((int));
+void lcp_sprotrej __P((int, u_char *, int));   /* send protocol reject */
+
+extern struct protent lcp_protent;
 
-extern int lcp_warnloops;      /* Warn about a loopback this often */
-#define DEFWARNLOOPS   10      /* Default value for above */
+/* Default number of times we receive our magic number from the peer
+   before deciding the link is looped-back. */
+#define DEFLOOPBACKFAIL        10