]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/lcp.h
pppd man page: Update header to refer to pppd 2.5.x
[ppp.git] / pppd / lcp.h
index f7d5ea265c71556c21cfab2ec49aec4fd2a35a0a..bdf18d03eadc7007a9e663fd6a0d54c944b6f61d 100644 (file)
 /*
  * lcp.h - Link Control Protocol definitions.
  *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
+ * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved.
  *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University.  The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
  *
- * $Id: lcp.h,v 1.1 1993/11/11 03:54:25 paulus Exp $
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For permission or any legal
+ *    details, please contact
+ *      Office of Technology Transfer
+ *      Carnegie Mellon University
+ *      5000 Forbes Avenue
+ *      Pittsburgh, PA  15213-3890
+ *      (412) 268-4387, fax: (412) 268-7395
+ *      tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by Computing Services
+ *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
+#ifndef PPP_LCP_H
+#define PPP_LCP_H
+
+#include "pppdconf.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 
 /*
  * Options.
  */
+#define CI_VENDOR      0       /* Vendor Specific */
 #define CI_MRU         1       /* Maximum Receive Unit */
 #define CI_ASYNCMAP    2       /* Async Control Character Map */
 #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_FCSALTERN   9       /* FCS-Alternatives */
+#define CI_SDP         10      /* Self-Describing-Pad */
+#define CI_NUMBERED    11      /* Numbered-Mode */
+#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 */
+#define CI_MPPLUS      22      /* Multi-Link-Plus-Procedure */
+#define CI_LDISC       23      /* Link-Discriminator */
+#define CI_LCPAUTH     24      /* LCP Authentication */
+#define CI_COBS                25      /* Consistent Overhead Byte Stuffing */
+#define CI_PREFELIS    26      /* Prefix Elision */
+#define CI_MPHDRFMT    27      /* MP Header Format */
+#define CI_I18N                28      /* Internationalization */
+#define CI_SDL         29      /* Simple Data Link */
+
+/*
+ * LCP-specific packet types (code numbers).
+ */
+#define PROTREJ                8       /* Protocol Reject */
+#define ECHOREQ                9       /* Echo Request */
+#define ECHOREP                10      /* Echo Reply */
+#define DISCREQ                11      /* Discard Request */
+#define IDENTIF                12      /* Identification */
+#define TIMEREM                13      /* Time Remaining */
 
+/* Value used as data for CI_CALLBACK option */
+#define CBCP_OPT       6       /* Use callback control protocol */
+
+/* An endpoint discriminator, used with multilink. */
+#define MAX_ENDP_LEN   20      /* maximum length of discriminator value */
+struct epdisc {
+    unsigned char      class;
+    unsigned char      length;
+    unsigned char      value[MAX_ENDP_LEN];
+};
 
 /*
  * 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_eap;              /* Ask for EAP 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 */
+    unsigned char chap_mdtype;         /* which MD types (hashing algorithm) */
+    uint32_t asyncmap;         /* Value of async map */
+    uint32_t magicnumber;
+    int  numloops;             /* Number of loops during magic number neg. */
+    uint32_t lqr_period;       /* Reporting period for LQR 1/100ths second */
+    struct epdisc endpoint;    /* endpoint discriminator */
 } lcp_options;
 
 extern fsm lcp_fsm[];
@@ -65,14 +137,21 @@ 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));
-
-extern int lcp_warnloops;      /* Warn about a loopback this often */
-#define DEFWARNLOOPS   10      /* Default value for above */
+void lcp_open(int);
+void lcp_close(int, char *);
+void lcp_lowerup(int);
+void lcp_lowerdown(int);
+void lcp_sprotrej(int, unsigned char *, int);  /* send protocol reject */
+
+extern struct protent lcp_protent;
+
+/* Default number of times we receive our magic number from the peer
+   before deciding the link is looped-back. */
+#define DEFLOOPBACKFAIL        10
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // PPP_LCP_H