RTEMS CPU Kit with SuperCore  4.11.3
Macros | Functions | Variables
lcp.c File Reference
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "pppd.h"
#include "fsm.h"
#include "lcp.h"
#include "chap.h"
#include "magic.h"
Include dependency graph for lcp.c:

Macros

#define RCSID   "$Id$";
 
#define CILEN_VOID   2
 
#define CILEN_CHAR   3
 
#define CILEN_SHORT   4 /* CILEN_VOID + 2 */
 
#define CILEN_CHAP   5 /* CILEN_VOID + 2 + 1 */
 
#define CILEN_LONG   6 /* CILEN_VOID + 4 */
 
#define CILEN_LQR   8 /* CILEN_VOID + 2 + 4 */
 
#define CILEN_CBCP   3
 
#define CODENAME(x)
 
#define LENCIVOID(neg)   ((neg) ? CILEN_VOID : 0)
 
#define LENCICHAP(neg)   ((neg) ? CILEN_CHAP : 0)
 
#define LENCISHORT(neg)   ((neg) ? CILEN_SHORT : 0)
 
#define LENCILONG(neg)   ((neg) ? CILEN_LONG : 0)
 
#define LENCILQR(neg)   ((neg) ? CILEN_LQR: 0)
 
#define LENCICBCP(neg)   ((neg) ? CILEN_CBCP: 0)
 
#define ADDCIVOID(opt, neg)
 
#define ADDCISHORT(opt, neg, val)
 
#define ADDCICHAP(opt, neg, val, digest)
 
#define ADDCILONG(opt, neg, val)
 
#define ADDCILQR(opt, neg, val)
 
#define ADDCICHAR(opt, neg, val)
 
#define ACKCIVOID(opt, neg)
 
#define ACKCISHORT(opt, neg, val)
 
#define ACKCICHAR(opt, neg, val)
 
#define ACKCICHAP(opt, neg, val, digest)
 
#define ACKCILONG(opt, neg, val)
 
#define ACKCILQR(opt, neg, val)
 
#define NAKCIVOID(opt, neg, code)
 
#define NAKCICHAP(opt, neg, code)
 
#define NAKCICHAR(opt, neg, code)
 
#define NAKCISHORT(opt, neg, code)
 
#define NAKCILONG(opt, neg, code)
 
#define NAKCILQR(opt, neg, code)
 
#define REJCIVOID(opt, neg)
 
#define REJCISHORT(opt, neg, val)
 
#define REJCICHAP(opt, neg, val, digest)
 
#define REJCILONG(opt, neg, val)
 
#define REJCILQR(opt, neg, val)
 
#define REJCICBCP(opt, neg, val)
 

Functions

void lcp_open (int unit)
 
void lcp_close (int unit, char *reason)
 
void lcp_lowerup (int unit)
 
void lcp_lowerdown (int unit)
 
void lcp_sprotrej (int unit, u_char *p, int len)
 

Variables

fsm lcp_fsm [NUM_PPP]
 
lcp_options lcp_wantoptions [NUM_PPP]
 
lcp_options lcp_gotoptions [NUM_PPP]
 
lcp_options lcp_allowoptions [NUM_PPP]
 
lcp_options lcp_hisoptions [NUM_PPP]
 
uint32_t xmit_accm [NUM_PPP][8]
 
struct protent lcp_protent
 
int lcp_loopbackfail = DEFLOOPBACKFAIL
 

Macro Definition Documentation

◆ ACKCICHAP

#define ACKCICHAP (   opt,
  neg,
  val,
  digest 
)
Value:
if (neg) { \
if ((len -= CILEN_CHAP) < 0) \
goto bad; \
GETCHAR(citype, p); \
GETCHAR(cilen, p); \
if (cilen != CILEN_CHAP || \
citype != opt) \
goto bad; \
GETSHORT(cishort, p); \
if (cishort != val) \
goto bad; \
GETCHAR(cichar, p); \
if (cichar != digest) \
goto bad; \
}

◆ ACKCICHAR

#define ACKCICHAR (   opt,
  neg,
  val 
)
Value:
if (neg) { \
if ((len -= CILEN_CHAR) < 0) \
goto bad; \
GETCHAR(citype, p); \
GETCHAR(cilen, p); \
if (cilen != CILEN_CHAR || \
citype != opt) \
goto bad; \
GETCHAR(cichar, p); \
if (cichar != val) \
goto bad; \
}

◆ ACKCILONG

#define ACKCILONG (   opt,
  neg,
  val 
)
Value:
if (neg) { \
if ((len -= CILEN_LONG) < 0) \
goto bad; \
GETCHAR(citype, p); \
GETCHAR(cilen, p); \
if (cilen != CILEN_LONG || \
citype != opt) \
goto bad; \
GETLONG(cilong, p); \
if (cilong != val) \
goto bad; \
}

◆ ACKCILQR

#define ACKCILQR (   opt,
  neg,
  val 
)
Value:
if (neg) { \
if ((len -= CILEN_LQR) < 0) \
goto bad; \
GETCHAR(citype, p); \
GETCHAR(cilen, p); \
if (cilen != CILEN_LQR || \
citype != opt) \
goto bad; \
GETSHORT(cishort, p); \
if (cishort != PPP_LQR) \
goto bad; \
GETLONG(cilong, p); \
if (cilong != val) \
goto bad; \
}

◆ ACKCISHORT

#define ACKCISHORT (   opt,
  neg,
  val 
)
Value:
if (neg) { \
if ((len -= CILEN_SHORT) < 0) \
goto bad; \
GETCHAR(citype, p); \
GETCHAR(cilen, p); \
if (cilen != CILEN_SHORT || \
citype != opt) \
goto bad; \
GETSHORT(cishort, p); \
if (cishort != val) \
goto bad; \
}

◆ ACKCIVOID

#define ACKCIVOID (   opt,
  neg 
)
Value:
if (neg) { \
if ((len -= CILEN_VOID) < 0) \
goto bad; \
GETCHAR(citype, p); \
GETCHAR(cilen, p); \
if (cilen != CILEN_VOID || \
citype != opt) \
goto bad; \
}

◆ ADDCICHAP

#define ADDCICHAP (   opt,
  neg,
  val,
  digest 
)
Value:
if (neg) { \
PUTCHAR(opt, ucp); \
PUTCHAR(CILEN_CHAP, ucp); \
PUTSHORT(val, ucp); \
PUTCHAR(digest, ucp); \
}

◆ ADDCICHAR

#define ADDCICHAR (   opt,
  neg,
  val 
)
Value:
if (neg) { \
PUTCHAR(opt, ucp); \
PUTCHAR(CILEN_CHAR, ucp); \
PUTCHAR(val, ucp); \
}

◆ ADDCILONG

#define ADDCILONG (   opt,
  neg,
  val 
)
Value:
if (neg) { \
PUTCHAR(opt, ucp); \
PUTCHAR(CILEN_LONG, ucp); \
PUTLONG(val, ucp); \
}

◆ ADDCILQR

#define ADDCILQR (   opt,
  neg,
  val 
)
Value:
if (neg) { \
PUTCHAR(opt, ucp); \
PUTCHAR(CILEN_LQR, ucp); \
PUTSHORT(PPP_LQR, ucp); \
PUTLONG(val, ucp); \
}

◆ ADDCISHORT

#define ADDCISHORT (   opt,
  neg,
  val 
)
Value:
if (neg) { \
PUTCHAR(opt, ucp); \
PUTCHAR(CILEN_SHORT, ucp); \
PUTSHORT(val, ucp); \
}

◆ ADDCIVOID

#define ADDCIVOID (   opt,
  neg 
)
Value:
if (neg) { \
PUTCHAR(opt, ucp); \
PUTCHAR(CILEN_VOID, ucp); \
}

◆ CODENAME

#define CODENAME (   x)
Value:
((x) == CONFACK ? "ACK" : \
(x) == CONFNAK ? "NAK" : "REJ")

◆ NAKCICHAP

#define NAKCICHAP (   opt,
  neg,
  code 
)
Value:
if (go->neg && \
len >= CILEN_CHAP && \
p[1] == CILEN_CHAP && \
p[0] == opt) { \
len -= CILEN_CHAP; \
INCPTR(2, p); \
GETSHORT(cishort, p); \
GETCHAR(cichar, p); \
no.neg = 1; \
code \
}

◆ NAKCICHAR

#define NAKCICHAR (   opt,
  neg,
  code 
)
Value:
if (go->neg && \
len >= CILEN_CHAR && \
p[1] == CILEN_CHAR && \
p[0] == opt) { \
len -= CILEN_CHAR; \
INCPTR(2, p); \
GETCHAR(cichar, p); \
no.neg = 1; \
code \
}

◆ NAKCILONG

#define NAKCILONG (   opt,
  neg,
  code 
)
Value:
if (go->neg && \
len >= CILEN_LONG && \
p[1] == CILEN_LONG && \
p[0] == opt) { \
len -= CILEN_LONG; \
INCPTR(2, p); \
GETLONG(cilong, p); \
no.neg = 1; \
code \
}

◆ NAKCILQR

#define NAKCILQR (   opt,
  neg,
  code 
)
Value:
if (go->neg && \
len >= CILEN_LQR && \
p[1] == CILEN_LQR && \
p[0] == opt) { \
len -= CILEN_LQR; \
INCPTR(2, p); \
GETSHORT(cishort, p); \
GETLONG(cilong, p); \
no.neg = 1; \
code \
}

◆ NAKCISHORT

#define NAKCISHORT (   opt,
  neg,
  code 
)
Value:
if (go->neg && \
len >= CILEN_SHORT && \
p[1] == CILEN_SHORT && \
p[0] == opt) { \
len -= CILEN_SHORT; \
INCPTR(2, p); \
GETSHORT(cishort, p); \
no.neg = 1; \
code \
}

◆ NAKCIVOID

#define NAKCIVOID (   opt,
  neg,
  code 
)
Value:
if (go->neg && \
len >= CILEN_VOID && \
p[1] == CILEN_VOID && \
p[0] == opt) { \
len -= CILEN_VOID; \
INCPTR(CILEN_VOID, p); \
no.neg = 1; \
code \
}

◆ REJCICBCP

#define REJCICBCP (   opt,
  neg,
  val 
)
Value:
if (go->neg && \
len >= CILEN_CBCP && \
p[1] == CILEN_CBCP && \
p[0] == opt) { \
len -= CILEN_CBCP; \
INCPTR(2, p); \
GETCHAR(cichar, p); \
/* Check rejected value. */ \
if (cichar != val) \
goto bad; \
try.neg = 0; \
}

◆ REJCICHAP

#define REJCICHAP (   opt,
  neg,
  val,
  digest 
)
Value:
if (go->neg && \
len >= CILEN_CHAP && \
p[1] == CILEN_CHAP && \
p[0] == opt) { \
len -= CILEN_CHAP; \
INCPTR(2, p); \
GETSHORT(cishort, p); \
GETCHAR(cichar, p); \
/* Check rejected value. */ \
if (cishort != val || cichar != digest) \
goto bad; \
try.neg = 0; \
try.neg_upap = 0; \
}

◆ REJCILONG

#define REJCILONG (   opt,
  neg,
  val 
)
Value:
if (go->neg && \
len >= CILEN_LONG && \
p[1] == CILEN_LONG && \
p[0] == opt) { \
len -= CILEN_LONG; \
INCPTR(2, p); \
GETLONG(cilong, p); \
/* Check rejected value. */ \
if (cilong != val) \
goto bad; \
try.neg = 0; \
}

◆ REJCILQR

#define REJCILQR (   opt,
  neg,
  val 
)
Value:
if (go->neg && \
len >= CILEN_LQR && \
p[1] == CILEN_LQR && \
p[0] == opt) { \
len -= CILEN_LQR; \
INCPTR(2, p); \
GETSHORT(cishort, p); \
GETLONG(cilong, p); \
/* Check rejected value. */ \
if (cishort != PPP_LQR || cilong != val) \
goto bad; \
try.neg = 0; \
}

◆ REJCISHORT

#define REJCISHORT (   opt,
  neg,
  val 
)
Value:
if (go->neg && \
len >= CILEN_SHORT && \
p[1] == CILEN_SHORT && \
p[0] == opt) { \
len -= CILEN_SHORT; \
INCPTR(2, p); \
GETSHORT(cishort, p); \
/* Check rejected value. */ \
if (cishort != val) \
goto bad; \
try.neg = 0; \
}

◆ REJCIVOID

#define REJCIVOID (   opt,
  neg 
)
Value:
if (go->neg && \
len >= CILEN_VOID && \
p[1] == CILEN_VOID && \
p[0] == opt) { \
len -= CILEN_VOID; \
INCPTR(CILEN_VOID, p); \
try.neg = 0; \
}

Variable Documentation

◆ lcp_protent

struct protent lcp_protent
Initial value:
= {
PPP_LCP,
lcp_init,
lcp_input,
lcp_protrej,
lcp_lowerup,
lcp_lowerdown,
lcp_open,
lcp_close,
lcp_printpkt,
NULL,
1,
"LCP",
NULL,
lcp_option_list,
NULL,
NULL,
NULL
}