52#define PPP_ADDITIONAL_CALLBACKS 0
56#error "CBCP is not supported in lwIP PPP"
59#error "CCP is not supported in lwIP PPP"
108#define TIMEOUT(f, a, t) do { sys_untimeout((f), (a)); sys_timeout((t)*1000, (f), (a)); } while(0)
109#define UNTIMEOUT(f, a) sys_untimeout((f), (a))
127#define PPP_ALLSTATIONS 0xff
130#define PPP_ESCAPE 0x7d
131#define PPP_TRANS 0x20
138#define PPP_VJC_COMP 0x2d
139#define PPP_VJC_UNCOMP 0x2f
141#define PPP_IPCP 0x8021
142#define PPP_ATCP 0x8029
143#define PPP_CCP 0x80fd
144#define PPP_LCP 0xc021
145#define PPP_PAP 0xc023
146#define PPP_LQR 0xc025
147#define PPP_CHAP 0xc223
148#define PPP_CBCP 0xc029
153#define PPP_INITFCS 0xffff
154#define PPP_GOODFCS 0xf0b8
155#define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff])
160typedef u_char ext_accm[32];
178#define GETCHAR(c, cp) { \
181#define PUTCHAR(c, cp) { \
182 *(cp)++ = (u_char) (c); \
186#define GETSHORT(s, cp) { \
187 (s) = *(cp); (cp)++; (s) <<= 8; \
188 (s) |= *(cp); (cp)++; \
190#define PUTSHORT(s, cp) { \
191 *(cp)++ = (u_char) ((s) >> 8); \
192 *(cp)++ = (u_char) (s & 0xff); \
195#define GETLONG(l, cp) { \
196 (l) = *(cp); (cp)++; (l) <<= 8; \
197 (l) |= *(cp); (cp)++; (l) <<= 8; \
198 (l) |= *(cp); (cp)++; (l) <<= 8; \
199 (l) |= *(cp); (cp)++; \
201#define PUTLONG(l, cp) { \
202 *(cp)++ = (u_char) ((l) >> 24); \
203 *(cp)++ = (u_char) ((l) >> 16); \
204 *(cp)++ = (u_char) ((l) >> 8); \
205 *(cp)++ = (u_char) (l); \
209#define INCPTR(n, cp) ((cp) += (n))
210#define DECPTR(n, cp) ((cp) -= (n))
212#define BCMP(s0, s1, l) memcmp((u_char *)(s0), (u_char *)(s1), (l))
213#define BCOPY(s, d, l) MEMCPY((d), (s), (l))
214#define BZERO(s, n) memset(s, 0, n)
217#define PRINTMSG(m, l) { m[l] = '\0'; LWIP_DEBUGF(LOG_INFO, ("Remote message: %s\n", m)); }
219#define PRINTMSG(m, l)
225#define MAKEHEADER(p, t) { \
226 PUTCHAR(PPP_ALLSTATIONS, p); \
227 PUTCHAR(PPP_UI, p); \
241 void (*init) (
int unit);
243 void (*
input) (
int unit, u_char *pkt,
int len);
245 void (*protrej) (
int unit);
247 void (*lowerup) (
int unit);
249 void (*lowerdown) (
int unit);
251 void (*
open) (
int unit);
253 void (*
close) (
int unit,
char *reason);
254#if PPP_ADDITIONAL_CALLBACKS
256 int (*printpkt) (u_char *pkt,
int len,
257 void (*printer) (
void *,
char *, ...),
260 void (*datainput) (
int unit, u_char *pkt,
int len);
264#if PPP_ADDITIONAL_CALLBACKS
266 void (*check_options) (u_long);
268 int (*demand_conf) (
int unit);
270 int (*active_pkt) (u_char *pkt,
int len);
285 u_int disable_defaultip : 1;
286 u_int auth_required : 1;
287 u_int explicit_remote : 1;
288 u_int refuse_pap : 1;
289 u_int refuse_chap : 1;
290 u_int usehostname : 1;
291 u_int usepeerdns : 1;
293 u_short idle_time_limit;
296 char user [MAXNAMELEN + 1];
297 char passwd [MAXSECRETLEN + 1];
298 char our_name [MAXNAMELEN + 1];
299 char remote_name[MAXNAMELEN + 1];
307extern u_char outpacket_buf[NUM_PPP][PPP_MRU+PPP_HDRLEN];
309extern struct ppp_settings ppp_settings;
311extern struct protent *ppp_protocols[];
322int pppWrite(
int pd,
const u_char *s,
int n);
324void pppInProcOverEthernet(
int pd,
struct pbuf *pb);
326struct pbuf *pppSingleBuf(
struct pbuf *p);
328void pppLinkTerminated(
int pd);
330void pppLinkDown(
int pd);
333void ppp_send_config (
int,
u16_t,
u32_t,
int,
int);
335void ppp_set_xaccm (
int, ext_accm *);
337void ppp_recv_config (
int,
int,
u32_t,
int,
int);
339int get_idle_time (
int,
struct ppp_idle *);
342int sifvjcomp (
int,
int,
u8_t,
u8_t);
346int sifnpmode (
int u,
int proto,
enum NPmode mode);
int open(const char *file, int flags, int mode)