summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/lcp.h
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1998-05-21 21:49:08 +0000
committerbrian <brian@FreeBSD.org>1998-05-21 21:49:08 +0000
commit56df88b778aee0e60678672b107a48a8ea05cb48 (patch)
tree13b88ca17b38e787c84b0cd242677b3c3c0b93c3 /usr.sbin/ppp/lcp.h
parente077fa331b8a428923ded3a95d0b8d47084cf670 (diff)
downloadFreeBSD-src-56df88b778aee0e60678672b107a48a8ea05cb48.zip
FreeBSD-src-56df88b778aee0e60678672b107a48a8ea05cb48.tar.gz
MFMP: Make ppp multilink capable.
See the file README.changes, and re-read the man page.
Diffstat (limited to 'usr.sbin/ppp/lcp.h')
-rw-r--r--usr.sbin/ppp/lcp.h96
1 files changed, 65 insertions, 31 deletions
diff --git a/usr.sbin/ppp/lcp.h b/usr.sbin/ppp/lcp.h
index 5c594f8..69ef41c 100644
--- a/usr.sbin/ppp/lcp.h
+++ b/usr.sbin/ppp/lcp.h
@@ -15,38 +15,60 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: lcp.h,v 1.15 1997/12/04 18:49:28 brian Exp $
+ * $Id: lcp.h,v 1.16.2.23 1998/05/01 19:24:57 brian Exp $
*
* TODO:
*/
#define REJECTED(p, x) ((p)->his_reject & (1<<(x)))
-struct lcpstate {
- u_int16_t his_mru;
- u_int32_t his_accmap;
- u_int32_t his_magic;
- u_int32_t his_lqrperiod;
- u_char his_protocomp;
- u_char his_acfcomp;
- u_short his_auth;
-
- u_short want_mru;
- u_int32_t want_accmap;
- u_int32_t want_magic;
- u_int32_t want_lqrperiod;
- u_char want_protocomp;
- u_char want_acfcomp;
- u_short want_auth;
+struct lcp {
+ struct fsm fsm; /* The finite state machine */
+ u_int16_t his_mru; /* Peers maximum packet size */
+ u_int16_t his_mrru; /* Peers maximum reassembled packet size (MP) */
+ u_int32_t his_accmap; /* Peeers async char control map */
+ u_int32_t his_magic; /* Peers magic number */
+ u_int32_t his_lqrperiod; /* Peers LQR frequency */
+ u_short his_auth; /* Peer wants this type of authentication */
+ unsigned his_shortseq : 1; /* Peer would like only 12bit seqs (MP) */
+ unsigned his_protocomp : 1; /* Does peer do Protocol field compression */
+ unsigned his_acfcomp : 1; /* Does peer do addr & cntrl fld compression */
+
+ u_short want_mru; /* Our maximum packet size */
+ u_short want_mrru; /* Our maximum reassembled packet size (MP) */
+ u_int32_t want_accmap; /* Our async char control map */
+ u_int32_t want_magic; /* Our magic number */
+ u_int32_t want_lqrperiod; /* Our LQR frequency */
+ u_short want_auth; /* We want this type of authentication */
+ unsigned want_shortseq : 1; /* I'd like only 12bit seqs (MP) */
+ unsigned want_protocomp : 1; /* Do we do protocol field compression */
+ unsigned want_acfcomp : 1; /* Do we do addr & cntrl fld compression */
u_int32_t his_reject; /* Request codes rejected by peer */
u_int32_t my_reject; /* Request codes I have rejected */
- u_short auth_iwait;
- u_short auth_ineed;
+ u_short auth_iwait; /* I must authenticate to the peer */
+ u_short auth_ineed; /* I require that the peer authenticates */
+
+ int LcpFailedMagic; /* Number of `magic is same' errors */
+
+ struct {
+ u_short mru; /* Preferred MRU value */
+ u_int32_t accmap; /* Initial ACCMAP value */
+ int openmode; /* when to start CFG REQs */
+ u_int lqrperiod; /* LQR frequency */
+ u_int fsmretry; /* FSM retry frequency */
+
+ unsigned acfcomp : 2; /* Address & Control Field Compression neg */
+ unsigned chap : 2; /* Challenge Handshake Authentication proto */
+ unsigned lqr : 2; /* Link Quality Report */
+ unsigned pap : 2; /* Password Authentication protocol */
+ unsigned protocomp : 2; /* Protocol field compression */
+ } cfg;
};
#define LCP_MAXCODE CODE_DISCREQ
+#define LCP_MINMPCODE CODE_CODEREJ
#define TY_MRU 1 /* Maximum-Receive-Unit */
#define TY_ACCMAP 2 /* Async-Control-Character-Map */
@@ -58,6 +80,9 @@ struct lcpstate {
#define TY_ACFCOMP 8 /* Address-and-Control-Field-Compression */
#define TY_FCSALT 9 /* FCS-Alternatives */
#define TY_SDP 10 /* Self-Describing-Padding */
+#define TY_MRRU 17 /* Max Reconstructed Receive Unit (MP) */
+#define TY_SHORTSEQ 18 /* Want short seqs (12bit) please (see mp.h) */
+#define TY_ENDDISC 19 /* Endpoint discriminator */
#define MAX_LCP_OPT_LEN 10
struct lcp_opt {
@@ -66,17 +91,26 @@ struct lcp_opt {
u_char data[MAX_LCP_OPT_LEN-2];
};
+#define INC_LCP_OPT(ty, length, o) \
+ do { \
+ (o)->id = (ty); \
+ (o)->len = (length); \
+ (o) = (struct lcp_opt *)((char *)(o) + (length)); \
+ } while (0)
+
+struct mbuf;
+struct link;
+struct physical;
+struct bundle;
+struct cmdargs;
+
+#define fsm2lcp(fp) (fp->proto == PROTO_LCP ? (struct lcp *)fp : NULL)
-extern struct lcpstate LcpInfo;
-extern struct fsm LcpFsm;
+extern void lcp_Init(struct lcp *, struct bundle *, struct link *,
+ const struct fsm_parent *);
+extern void lcp_Setup(struct lcp *, int);
-extern void LcpInit(void);
-extern void LcpUp(void);
-extern void LcpSendProtoRej(u_char *, int);
-extern void LcpOpen(int);
-extern void LcpClose(void);
-extern void LcpDown(void);
-extern int LcpPutConf(int, u_char *, const struct lcp_opt *, const char *,
- const char *, ...);
-extern int ReportLcpStatus(struct cmdargs const *);
-extern void LcpInput(struct mbuf *);
+extern void lcp_SendProtoRej(struct lcp *, u_char *, int);
+extern int lcp_ReportStatus(struct cmdargs const *);
+extern void lcp_Input(struct lcp *, struct mbuf *);
+extern void lcp_SetupCallbacks(struct lcp *);
OpenPOWER on IntegriCloud