lcp.h revision 1.4
1/* $OpenBSD: lcp.h,v 1.4 1996/12/23 13:22:43 mickey Exp $ */ 2 3/* 4 * lcp.h - Link Control Protocol definitions. 5 * 6 * Copyright (c) 1989 Carnegie Mellon University. 7 * All rights reserved. 8 * 9 * Redistribution and use in source and binary forms are permitted 10 * provided that the above copyright notice and this paragraph are 11 * duplicated in all such forms and that any documentation, 12 * advertising materials, and other materials related to such 13 * distribution and use acknowledge that the software was developed 14 * by Carnegie Mellon University. The name of the 15 * University may not be used to endorse or promote products derived 16 * from this software without specific prior written permission. 17 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 18 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 19 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 20 */ 21 22/* 23 * Options. 24 */ 25#define CI_MRU 1 /* Maximum Receive Unit */ 26#define CI_ASYNCMAP 2 /* Async Control Character Map */ 27#define CI_AUTHTYPE 3 /* Authentication Type */ 28#define CI_QUALITY 4 /* Quality Protocol */ 29#define CI_MAGICNUMBER 5 /* Magic Number */ 30#define CI_PCOMPRESSION 7 /* Protocol Field Compression */ 31#define CI_ACCOMPRESSION 8 /* Address/Control Field Compression */ 32#define CI_CALLBACK 13 /* callback */ 33 34/* 35 * LCP-specific packet types. 36 */ 37#define PROTREJ 8 /* Protocol Reject */ 38#define ECHOREQ 9 /* Echo Request */ 39#define ECHOREP 10 /* Echo Reply */ 40#define DISCREQ 11 /* Discard Request */ 41#define CBCP_OPT 6 /* Use callback control protocol */ 42 43/* 44 * The state of options is described by an lcp_options structure. 45 */ 46typedef struct lcp_options { 47 int passive : 1; /* Don't die if we don't get a response */ 48 int silent : 1; /* Wait for the other end to start first */ 49 int restart : 1; /* Restart vs. exit after close */ 50 int neg_mru : 1; /* Negotiate the MRU? */ 51 int neg_asyncmap : 1; /* Negotiate the async map? */ 52 int neg_upap : 1; /* Ask for UPAP authentication? */ 53 int neg_chap : 1; /* Ask for CHAP authentication? */ 54 int neg_magicnumber : 1; /* Ask for magic number? */ 55 int neg_pcompression : 1; /* HDLC Protocol Field Compression? */ 56 int neg_accompression : 1; /* HDLC Address/Control Field Compression? */ 57 int neg_lqr : 1; /* Negotiate use of Link Quality Reports */ 58 int neg_cbcp : 1; /* Negotiate use of CBCP */ 59 u_short mru; /* Value of MRU */ 60 u_char chap_mdtype; /* which MD type (hashing algorithm) */ 61 u_int32_t asyncmap; /* Value of async map */ 62 u_int32_t magicnumber; 63 int numloops; /* Number of loops during magic number neg. */ 64 u_int32_t lqr_period; /* Reporting period for LQR 1/100ths second */ 65} lcp_options; 66 67extern fsm lcp_fsm[]; 68extern lcp_options lcp_wantoptions[]; 69extern lcp_options lcp_gotoptions[]; 70extern lcp_options lcp_allowoptions[]; 71extern lcp_options lcp_hisoptions[]; 72extern u_int32_t xmit_accm[][8]; 73 74#define DEFMRU 1500 /* Try for this */ 75#define MINMRU 128 /* No MRUs below this */ 76#define MAXMRU 16384 /* Normally limit MRU to this */ 77 78void lcp_open __P((int)); 79void lcp_close __P((int, char *)); 80void lcp_lowerup __P((int)); 81void lcp_lowerdown __P((int)); 82void lcp_sprotrej __P((int, u_char *, int)); /* send protocol reject */ 83 84extern struct protent lcp_protent; 85 86/* Default number of times we receive our magic number from the peer 87 before deciding the link is looped-back. */ 88#define DEFLOOPBACKFAIL 10 89