Documentation

Documentation

Includes

netif/ppp/ppp_opts.h

#include "netif/ppp/ppp_opts.h"
#include "netif/ppp/ppp_opts.h"

ppp.h

#include "ppp.h"
#include "ppp.h"

Macros

Marco LCP_H

#define LCP_H


      

Marco CI_VENDOR

#define CI_VENDOR 0 /* Vendor Specific */
/*
 * Options.
 */

Marco CI_MRU

#define CI_MRU	1 /* Maximum Receive Unit */


      

Marco CI_ASYNCMAP

#define CI_ASYNCMAP 2 /* Async Control Character Map */


      

Marco CI_AUTHTYPE

#define CI_AUTHTYPE 3 /* Authentication Type */


      

Marco CI_QUALITY

#define CI_QUALITY 4 /* Quality Protocol */


      

Marco CI_MAGICNUMBER

#define CI_MAGICNUMBER 5 /* Magic Number */


      

Marco CI_PCOMPRESSION

#define CI_PCOMPRESSION 7 /* Protocol Field Compression */


      

Marco CI_ACCOMPRESSION

#define CI_ACCOMPRESSION 8 /* Address/Control Field Compression */


      

Marco CI_FCSALTERN

#define CI_FCSALTERN 9 /* FCS-Alternatives */


      

Marco CI_SDP

#define CI_SDP	10 /* Self-Describing-Pad */


      

Marco CI_NUMBERED

#define CI_NUMBERED 11 /* Numbered-Mode */


      

Marco CI_CALLBACK

#define CI_CALLBACK 13 /* callback */


      

Marco CI_MRRU

#define CI_MRRU	17 /* max reconstructed receive unit; multilink */


      

Marco CI_SSNHF

#define CI_SSNHF 18 /* short sequence numbers for multilink */


      

Marco CI_EPDISC

#define CI_EPDISC 19 /* endpoint discriminator */


      

Marco CI_MPPLUS

#define CI_MPPLUS 22 /* Multi-Link-Plus-Procedure */


      

Marco CI_LDISC

#define CI_LDISC 23 /* Link-Discriminator */


      

Marco CI_LCPAUTH

#define CI_LCPAUTH 24 /* LCP Authentication */


      

Marco CI_COBS

#define CI_COBS	25 /* Consistent Overhead Byte Stuffing */


      

Marco CI_PREFELIS

#define CI_PREFELIS 26 /* Prefix Elision */


      

Marco CI_MPHDRFMT

#define CI_MPHDRFMT 27 /* MP Header Format */


      

Marco CI_I18N

#define CI_I18N	28 /* Internationalization */


      

Marco CI_SDL

#define CI_SDL	29 /* Simple Data Link */


      

Marco PROTREJ

#define PROTREJ	8 /* Protocol Reject */
/*
 * LCP-specific packet types (code numbers).
 */

Marco ECHOREQ

#define ECHOREQ	9 /* Echo Request */


      

Marco ECHOREP

#define ECHOREP	10 /* Echo Reply */


      

Marco DISCREQ

#define DISCREQ	11 /* Discard Request */


      

Marco IDENTIF

#define IDENTIF	12 /* Identification */


      

Marco TIMEREM

#define TIMEREM	13 /* Time Remaining */


      

Marco CBCP_OPT

#define CBCP_OPT 6 /* Use callback control protocol */
/* Value used as data for CI_CALLBACK option */

Marco DEFMRU

#define DEFMRU 1500	/* Try for this */


      

Marco MINMRU

#define MINMRU 128	/* No MRUs below this */


      

Marco MAXMRU

#define MAXMRU 16384	/* Normally limit MRU to this */


      

Marco MAX_ENDP_LEN

#define MAX_ENDP_LEN 20 /* maximum length of discriminator value */
/* An endpoint discriminator, used with multilink. */

Marco DEFLOOPBACKFAIL

#define DEFLOOPBACKFAIL 10
/* Default number of times we receive our magic number from the peer
   before deciding the link is looped-back. */

Functions

Func lcp_open

void lcp_open(ppp_pcb *pcb);


      

Func lcp_close

void lcp_close(ppp_pcb *pcb, const char *reason);


      

Func lcp_lowerup

void lcp_lowerup(ppp_pcb *pcb);


      

Func lcp_lowerdown

void lcp_lowerdown(ppp_pcb *pcb);


      

Func lcp_sprotrej

void lcp_sprotrej(ppp_pcb *pcb, u_char *p, int len);

      

Vars

Consts

Types

Typedefs

Typedef lcp_options;

typedef struct lcp_options {
   unsigned int passive          :1; /* Don't die if we don't get a response */
   unsigned int silent           :1; /* Wait for the other end to start first */
#if 0 /* UNUSED */
   unsigned int restart          :1; /* Restart vs. exit after close */
#endif /* UNUSED */
   unsigned int neg_mru          :1; /* Negotiate the MRU? */
   unsigned int neg_asyncmap     :1; /* Negotiate the async map? */
#if PAP_SUPPORT
   unsigned int neg_upap         :1; /* Ask for UPAP authentication? */
#endif /* PAP_SUPPORT */
#if CHAP_SUPPORT
   unsigned int neg_chap         :1; /* Ask for CHAP authentication? */
#endif /* CHAP_SUPPORT */
#if EAP_SUPPORT
   unsigned int neg_eap          :1; /* Ask for EAP authentication? */
#endif /* EAP_SUPPORT */
   unsigned int neg_magicnumber  :1; /* Ask for magic number? */
   unsigned int neg_pcompression :1; /* HDLC Protocol Field Compression? */
   unsigned int neg_accompression :1; /* HDLC Address/Control Field Compression? */
#if LQR_SUPPORT
   unsigned int neg_lqr          :1; /* Negotiate use of Link Quality Reports */
#endif /* LQR_SUPPORT */
   unsigned int neg_cbcp         :1; /* Negotiate use of CBCP */
#ifdef HAVE_MULTILINK
   unsigned int neg_mrru         :1; /* negotiate multilink MRRU */
#endif /* HAVE_MULTILINK */
   unsigned int neg_ssnhf        :1; /* negotiate short sequence numbers */
   unsigned int neg_endpoint     :1; /* negotiate endpoint discriminator */

   u16_t mru;		/* Value of MRU */
#ifdef HAVE_MULTILINK
   u16_t mrru;		/* Value of MRRU, and multilink enable */
#endif /* MULTILINK */
#if CHAP_SUPPORT
   u8_t chap_mdtype;	/* which MD types (hashing algorithm) */
#endif /* CHAP_SUPPORT */
   u32_t asyncmap;	/* Value of async map */
   u32_t magicnumber;
   u8_t numloops;	/* Number of loops during magic number neg. */
#if LQR_SUPPORT
   u32_t lqr_period; /* Reporting period for LQR 1/100ths second */
#endif /* LQR_SUPPORT */
   struct epdisc endpoint; /* endpoint discriminator */
} lcp_options;
/*
 * The state of options is described by an lcp_options structure.
 */