1 |
/***************************************************************************** |
---|
2 |
* ppp.h - Network Point to Point Protocol header file. |
---|
3 |
* |
---|
4 |
* Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. |
---|
5 |
* portions Copyright (c) 1997 Global Election Systems Inc. |
---|
6 |
* |
---|
7 |
* The authors hereby grant permission to use, copy, modify, distribute, |
---|
8 |
* and license this software and its documentation for any purpose, provided |
---|
9 |
* that existing copyright notices are retained in all copies and that this |
---|
10 |
* notice and the following disclaimer are included verbatim in any |
---|
11 |
* distributions. No written agreement, license, or royalty fee is required |
---|
12 |
* for any of the authorized uses. |
---|
13 |
* |
---|
14 |
* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR |
---|
15 |
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
---|
16 |
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
---|
17 |
* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
---|
18 |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
---|
19 |
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
---|
20 |
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
---|
21 |
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
---|
22 |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
---|
23 |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
---|
24 |
* |
---|
25 |
****************************************************************************** |
---|
26 |
* REVISION HISTORY |
---|
27 |
* |
---|
28 |
* 03-01-01 Marc Boucher <marc@mbsi.ca> |
---|
29 |
* Ported to lwIP. |
---|
30 |
* 97-11-05 Guy Lancaster <glanca@gesn.com>, Global Election Systems Inc. |
---|
31 |
* Original derived from BSD codes. |
---|
32 |
*****************************************************************************/ |
---|
33 |
|
---|
34 |
#ifndef PPP_H |
---|
35 |
#define PPP_H |
---|
36 |
|
---|
37 |
#include "lwip/opt.h" |
---|
38 |
|
---|
39 |
#if PPP_SUPPORT > 0 |
---|
40 |
#include "lwip/sio.h" |
---|
41 |
#include "lwip/api.h" |
---|
42 |
#include "lwip/sockets.h" |
---|
43 |
#include "lwip/stats.h" |
---|
44 |
#include "lwip/mem.h" |
---|
45 |
#include "lwip/tcpip.h" |
---|
46 |
#include "lwip/netif.h" |
---|
47 |
|
---|
48 |
/* |
---|
49 |
* pppd.h - PPP daemon global declarations. |
---|
50 |
* |
---|
51 |
* Copyright (c) 1989 Carnegie Mellon University. |
---|
52 |
* All rights reserved. |
---|
53 |
* |
---|
54 |
* Redistribution and use in source and binary forms are permitted |
---|
55 |
* provided that the above copyright notice and this paragraph are |
---|
56 |
* duplicated in all such forms and that any documentation, |
---|
57 |
* advertising materials, and other materials related to such |
---|
58 |
* distribution and use acknowledge that the software was developed |
---|
59 |
* by Carnegie Mellon University. The name of the |
---|
60 |
* University may not be used to endorse or promote products derived |
---|
61 |
* from this software without specific prior written permission. |
---|
62 |
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR |
---|
63 |
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED |
---|
64 |
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
---|
65 |
* |
---|
66 |
*/ |
---|
67 |
/* |
---|
68 |
* ppp_defs.h - PPP definitions. |
---|
69 |
* |
---|
70 |
* Copyright (c) 1994 The Australian National University. |
---|
71 |
* All rights reserved. |
---|
72 |
* |
---|
73 |
* Permission to use, copy, modify, and distribute this software and its |
---|
74 |
* documentation is hereby granted, provided that the above copyright |
---|
75 |
* notice appears in all copies. This software is provided without any |
---|
76 |
* warranty, express or implied. The Australian National University |
---|
77 |
* makes no representations about the suitability of this software for |
---|
78 |
* any purpose. |
---|
79 |
* |
---|
80 |
* IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY |
---|
81 |
* PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES |
---|
82 |
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF |
---|
83 |
* THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY |
---|
84 |
* OF SUCH DAMAGE. |
---|
85 |
* |
---|
86 |
* THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, |
---|
87 |
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY |
---|
88 |
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS |
---|
89 |
* ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO |
---|
90 |
* OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, |
---|
91 |
* OR MODIFICATIONS. |
---|
92 |
*/ |
---|
93 |
|
---|
94 |
#define TIMEOUT(f, a, t) sys_untimeout((f), (a)), sys_timeout((t)*1000, (f), (a)) |
---|
95 |
#define UNTIMEOUT(f, a) sys_untimeout((f), (a)) |
---|
96 |
|
---|
97 |
|
---|
98 |
# ifndef __u_char_defined |
---|
99 |
|
---|
100 |
/* Type definitions for BSD code. */ |
---|
101 |
typedef unsigned long u_long; |
---|
102 |
typedef unsigned int u_int; |
---|
103 |
typedef unsigned short u_short; |
---|
104 |
typedef unsigned char u_char; |
---|
105 |
|
---|
106 |
#endif |
---|
107 |
|
---|
108 |
/* |
---|
109 |
* Constants and structures defined by the internet system, |
---|
110 |
* Per RFC 790, September 1981, and numerous additions. |
---|
111 |
*/ |
---|
112 |
|
---|
113 |
/* |
---|
114 |
* The basic PPP frame. |
---|
115 |
*/ |
---|
116 |
#define PPP_HDRLEN 4 /* octets for standard ppp header */ |
---|
117 |
#define PPP_FCSLEN 2 /* octets for FCS */ |
---|
118 |
|
---|
119 |
|
---|
120 |
/* |
---|
121 |
* Significant octet values. |
---|
122 |
*/ |
---|
123 |
#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */ |
---|
124 |
#define PPP_UI 0x03 /* Unnumbered Information */ |
---|
125 |
#define PPP_FLAG 0x7e /* Flag Sequence */ |
---|
126 |
#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */ |
---|
127 |
#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */ |
---|
128 |
|
---|
129 |
/* |
---|
130 |
* Protocol field values. |
---|
131 |
*/ |
---|
132 |
#define PPP_IP 0x21 /* Internet Protocol */ |
---|
133 |
#define PPP_AT 0x29 /* AppleTalk Protocol */ |
---|
134 |
#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */ |
---|
135 |
#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */ |
---|
136 |
#define PPP_COMP 0xfd /* compressed packet */ |
---|
137 |
#define PPP_IPCP 0x8021 /* IP Control Protocol */ |
---|
138 |
#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */ |
---|
139 |
#define PPP_CCP 0x80fd /* Compression Control Protocol */ |
---|
140 |
#define PPP_LCP 0xc021 /* Link Control Protocol */ |
---|
141 |
#define PPP_PAP 0xc023 /* Password Authentication Protocol */ |
---|
142 |
#define PPP_LQR 0xc025 /* Link Quality Report protocol */ |
---|
143 |
#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */ |
---|
144 |
#define PPP_CBCP 0xc029 /* Callback Control Protocol */ |
---|
145 |
|
---|
146 |
/* |
---|
147 |
* Values for FCS calculations. |
---|
148 |
*/ |
---|
149 |
#define PPP_INITFCS 0xffff /* Initial FCS value */ |
---|
150 |
#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */ |
---|
151 |
#define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff]) |
---|
152 |
|
---|
153 |
/* |
---|
154 |
* Extended asyncmap - allows any character to be escaped. |
---|
155 |
*/ |
---|
156 |
typedef u_char ext_accm[32]; |
---|
157 |
|
---|
158 |
/* |
---|
159 |
* What to do with network protocol (NP) packets. |
---|
160 |
*/ |
---|
161 |
enum NPmode { |
---|
162 |
NPMODE_PASS, /* pass the packet through */ |
---|
163 |
NPMODE_DROP, /* silently drop the packet */ |
---|
164 |
NPMODE_ERROR, /* return an error */ |
---|
165 |
NPMODE_QUEUE /* save it up for later. */ |
---|
166 |
}; |
---|
167 |
|
---|
168 |
/* |
---|
169 |
* Inline versions of get/put char/short/long. |
---|
170 |
* Pointer is advanced; we assume that both arguments |
---|
171 |
* are lvalues and will already be in registers. |
---|
172 |
* cp MUST be u_char *. |
---|
173 |
*/ |
---|
174 |
#define GETCHAR(c, cp) { \ |
---|
175 |
(c) = *(cp)++; \ |
---|
176 |
} |
---|
177 |
#define PUTCHAR(c, cp) { \ |
---|
178 |
*(cp)++ = (u_char) (c); \ |
---|
179 |
} |
---|
180 |
|
---|
181 |
|
---|
182 |
#define GETSHORT(s, cp) { \ |
---|
183 |
(s) = *(cp); (cp)++; (s) << 8; \ |
---|
184 |
(s) |= *(cp); (cp)++; \ |
---|
185 |
} |
---|
186 |
#define PUTSHORT(s, cp) { \ |
---|
187 |
*(cp)++ = (u_char) ((s) >> 8); \ |
---|
188 |
*(cp)++ = (u_char) (s); \ |
---|
189 |
} |
---|
190 |
|
---|
191 |
#define GETLONG(l, cp) { \ |
---|
192 |
(l) = *(cp); (cp)++; (l) << 8; \ |
---|
193 |
(l) |= *(cp); (cp)++; (l) <<= 8; \ |
---|
194 |
(l) |= *(cp); (cp)++; (l) <<= 8; \ |
---|
195 |
(l) |= *(cp); (cp)++; \ |
---|
196 |
} |
---|
197 |
#define PUTLONG(l, cp) { \ |
---|
198 |
*(cp)++ = (u_char) ((l) >> 24); \ |
---|
199 |
*(cp)++ = (u_char) ((l) >> 16); \ |
---|
200 |
*(cp)++ = (u_char) ((l) >> 8); \ |
---|
201 |
*(cp)++ = (u_char) (l); \ |
---|
202 |
} |
---|
203 |
|
---|
204 |
|
---|
205 |
#define INCPTR(n, cp) ((cp) += (n)) |
---|
206 |
#define DECPTR(n, cp) ((cp) -= (n)) |
---|
207 |
|
---|
208 |
#define BCMP(s0, s1, l) memcmp((u_char *)(s0), (u_char *)(s1), (l)) |
---|
209 |
#define BCOPY(s, d, l) memcpy((d), (s), (l)) |
---|
210 |
#define BZERO(s, n) memset(s, 0, n) |
---|
211 |
#if PPP_DEBUG |
---|
212 |
#define PRINTMSG(m, l) { m[l] = '\0'; ppp_trace(LOG_INFO, "Remote message: %s\n", m); } |
---|
213 |
#else |
---|
214 |
#define PRINTMSG(m, l) |
---|
215 |
#endif |
---|
216 |
|
---|
217 |
/* |
---|
218 |
* MAKEHEADER - Add PPP Header fields to a packet. |
---|
219 |
*/ |
---|
220 |
#define MAKEHEADER(p, t) { \ |
---|
221 |
PUTCHAR(PPP_ALLSTATIONS, p); \ |
---|
222 |
PUTCHAR(PPP_UI, p); \ |
---|
223 |
PUTSHORT(t, p); } |
---|
224 |
|
---|
225 |
/************************* |
---|
226 |
*** PUBLIC DEFINITIONS *** |
---|
227 |
*************************/ |
---|
228 |
|
---|
229 |
/* Error codes. */ |
---|
230 |
#define PPPERR_NONE 0 /* No error. */ |
---|
231 |
#define PPPERR_PARAM -1 /* Invalid parameter. */ |
---|
232 |
#define PPPERR_OPEN -2 /* Unable to open PPP session. */ |
---|
233 |
#define PPPERR_DEVICE -3 /* Invalid I/O device for PPP. */ |
---|
234 |
#define PPPERR_ALLOC -4 /* Unable to allocate resources. */ |
---|
235 |
#define PPPERR_USER -5 /* User interrupt. */ |
---|
236 |
#define PPPERR_CONNECT -6 /* Connection lost. */ |
---|
237 |
#define PPPERR_AUTHFAIL -7 /* Failed authentication challenge. */ |
---|
238 |
#define PPPERR_PROTOCOL -8 /* Failed to meet protocol. */ |
---|
239 |
|
---|
240 |
/* |
---|
241 |
* PPP IOCTL commands. |
---|
242 |
*/ |
---|
243 |
/* |
---|
244 |
* Get the up status - 0 for down, non-zero for up. The argument must |
---|
245 |
* point to an int. |
---|
246 |
*/ |
---|
247 |
#define PPPCTLG_UPSTATUS 100 /* Get the up status - 0 down else up */ |
---|
248 |
#define PPPCTLS_ERRCODE 101 /* Set the error code */ |
---|
249 |
#define PPPCTLG_ERRCODE 102 /* Get the error code */ |
---|
250 |
#define PPPCTLG_FD 103 /* Get the fd associated with the ppp */ |
---|
251 |
|
---|
252 |
/************************ |
---|
253 |
*** PUBLIC DATA TYPES *** |
---|
254 |
************************/ |
---|
255 |
|
---|
256 |
/* |
---|
257 |
* The following struct gives the addresses of procedures to call |
---|
258 |
* for a particular protocol. |
---|
259 |
*/ |
---|
260 |
struct protent { |
---|
261 |
u_short protocol; /* PPP protocol number */ |
---|
262 |
/* Initialization procedure */ |
---|
263 |
void (*init) (int unit); |
---|
264 |
/* Process a received packet */ |
---|
265 |
void (*input) (int unit, u_char *pkt, int len); |
---|
266 |
/* Process a received protocol-reject */ |
---|
267 |
void (*protrej) (int unit); |
---|
268 |
/* Lower layer has come up */ |
---|
269 |
void (*lowerup) (int unit); |
---|
270 |
/* Lower layer has gone down */ |
---|
271 |
void (*lowerdown) (int unit); |
---|
272 |
/* Open the protocol */ |
---|
273 |
void (*open) (int unit); |
---|
274 |
/* Close the protocol */ |
---|
275 |
void (*close) (int unit, char *reason); |
---|
276 |
#if 0 |
---|
277 |
/* Print a packet in readable form */ |
---|
278 |
int (*printpkt) (u_char *pkt, int len, |
---|
279 |
void (*printer) (void *, char *, ...), |
---|
280 |
void *arg); |
---|
281 |
/* Process a received data packet */ |
---|
282 |
void (*datainput) (int unit, u_char *pkt, int len); |
---|
283 |
#endif |
---|
284 |
int enabled_flag; /* 0 iff protocol is disabled */ |
---|
285 |
char *name; /* Text name of protocol */ |
---|
286 |
#if 0 |
---|
287 |
/* Check requested options, assign defaults */ |
---|
288 |
void (*check_options) (u_long); |
---|
289 |
/* Configure interface for demand-dial */ |
---|
290 |
int (*demand_conf) (int unit); |
---|
291 |
/* Say whether to bring up link for this pkt */ |
---|
292 |
int (*active_pkt) (u_char *pkt, int len); |
---|
293 |
#endif |
---|
294 |
}; |
---|
295 |
|
---|
296 |
/* |
---|
297 |
* The following structure records the time in seconds since |
---|
298 |
* the last NP packet was sent or received. |
---|
299 |
*/ |
---|
300 |
struct ppp_idle { |
---|
301 |
u_short xmit_idle; /* seconds since last NP packet sent */ |
---|
302 |
u_short recv_idle; /* seconds since last NP packet received */ |
---|
303 |
}; |
---|
304 |
|
---|
305 |
struct ppp_settings { |
---|
306 |
|
---|
307 |
u_int disable_defaultip : 1; /* Don't use hostname for default IP addrs */ |
---|
308 |
u_int auth_required : 1; /* Peer is required to authenticate */ |
---|
309 |
u_int explicit_remote : 1; /* remote_name specified with remotename opt */ |
---|
310 |
u_int refuse_pap : 1; /* Don't wanna auth. ourselves with PAP */ |
---|
311 |
u_int refuse_chap : 1; /* Don't wanna auth. ourselves with CHAP */ |
---|
312 |
u_int usehostname : 1; /* Use hostname for our_name */ |
---|
313 |
u_int usepeerdns : 1; /* Ask peer for DNS adds */ |
---|
314 |
|
---|
315 |
u_short idle_time_limit; /* Shut down link if idle for this long */ |
---|
316 |
int maxconnect; /* Maximum connect time (seconds) */ |
---|
317 |
|
---|
318 |
char user[MAXNAMELEN + 1];/* Username for PAP */ |
---|
319 |
char passwd[MAXSECRETLEN + 1]; /* Password for PAP, secret for CHAP */ |
---|
320 |
char our_name[MAXNAMELEN + 1]; /* Our name for authentication purposes */ |
---|
321 |
char remote_name[MAXNAMELEN + 1]; /* Peer's name for authentication */ |
---|
322 |
}; |
---|
323 |
|
---|
324 |
struct ppp_addrs { |
---|
325 |
struct ip_addr our_ipaddr, his_ipaddr, netmask, dns1, dns2; |
---|
326 |
}; |
---|
327 |
|
---|
328 |
/***************************** |
---|
329 |
*** PUBLIC DATA STRUCTURES *** |
---|
330 |
*****************************/ |
---|
331 |
/* Buffers for outgoing packets. */ |
---|
332 |
extern u_char outpacket_buf[NUM_PPP][PPP_MRU+PPP_HDRLEN]; |
---|
333 |
|
---|
334 |
extern struct ppp_settings ppp_settings; |
---|
335 |
|
---|
336 |
extern struct protent *ppp_protocols[];/* Table of pointers to supported protocols */ |
---|
337 |
|
---|
338 |
|
---|
339 |
/*********************** |
---|
340 |
*** PUBLIC FUNCTIONS *** |
---|
341 |
***********************/ |
---|
342 |
|
---|
343 |
/* Initialize the PPP subsystem. */ |
---|
344 |
void pppInit(void); |
---|
345 |
|
---|
346 |
/* Warning: Using PPPAUTHTYPE_ANY might have security consequences. |
---|
347 |
* RFC 1994 says: |
---|
348 |
* |
---|
349 |
* In practice, within or associated with each PPP server, there is a |
---|
350 |
* database which associates "user" names with authentication |
---|
351 |
* information ("secrets"). It is not anticipated that a particular |
---|
352 |
* named user would be authenticated by multiple methods. This would |
---|
353 |
* make the user vulnerable to attacks which negotiate the least secure |
---|
354 |
* method from among a set (such as PAP rather than CHAP). If the same |
---|
355 |
* secret was used, PAP would reveal the secret to be used later with |
---|
356 |
* CHAP. |
---|
357 |
* |
---|
358 |
* Instead, for each user name there should be an indication of exactly |
---|
359 |
* one method used to authenticate that user name. If a user needs to |
---|
360 |
* make use of different authentication methods under different |
---|
361 |
* circumstances, then distinct user names SHOULD be employed, each of |
---|
362 |
* which identifies exactly one authentication method. |
---|
363 |
* |
---|
364 |
*/ |
---|
365 |
enum pppAuthType { |
---|
366 |
PPPAUTHTYPE_NONE, |
---|
367 |
PPPAUTHTYPE_ANY, |
---|
368 |
PPPAUTHTYPE_PAP, |
---|
369 |
PPPAUTHTYPE_CHAP |
---|
370 |
}; |
---|
371 |
|
---|
372 |
void pppSetAuth(enum pppAuthType authType, const char *user, const char *passwd); |
---|
373 |
|
---|
374 |
/* |
---|
375 |
* Open a new PPP connection using the given I/O device. |
---|
376 |
* This initializes the PPP control block but does not |
---|
377 |
* attempt to negotiate the LCP session. |
---|
378 |
* Return a new PPP connection descriptor on success or |
---|
379 |
* an error code (negative) on failure. |
---|
380 |
*/ |
---|
381 |
int pppOpen(sio_fd_t fd, void (*linkStatusCB)(void *ctx, int errCode, void *arg), void *linkStatusCtx); |
---|
382 |
|
---|
383 |
/* |
---|
384 |
* Close a PPP connection and release the descriptor. |
---|
385 |
* Any outstanding packets in the queues are dropped. |
---|
386 |
* Return 0 on success, an error code on failure. |
---|
387 |
*/ |
---|
388 |
int pppClose(int pd); |
---|
389 |
|
---|
390 |
/* |
---|
391 |
* Indicate to the PPP process that the line has disconnected. |
---|
392 |
*/ |
---|
393 |
void pppSigHUP(int pd); |
---|
394 |
|
---|
395 |
/* |
---|
396 |
* Get and set parameters for the given connection. |
---|
397 |
* Return 0 on success, an error code on failure. |
---|
398 |
*/ |
---|
399 |
int pppIOCtl(int pd, int cmd, void *arg); |
---|
400 |
|
---|
401 |
/* |
---|
402 |
* Return the Maximum Transmission Unit for the given PPP connection. |
---|
403 |
*/ |
---|
404 |
u_int pppMTU(int pd); |
---|
405 |
|
---|
406 |
/* |
---|
407 |
* Write n characters to a ppp link. |
---|
408 |
* RETURN: >= 0 Number of characters written |
---|
409 |
* -1 Failed to write to device |
---|
410 |
*/ |
---|
411 |
int pppWrite(int pd, const u_char *s, int n); |
---|
412 |
|
---|
413 |
void pppMainWakeup(int pd); |
---|
414 |
|
---|
415 |
/* Configure i/f transmit parameters */ |
---|
416 |
void ppp_send_config (int, int, u32_t, int, int); |
---|
417 |
/* Set extended transmit ACCM */ |
---|
418 |
void ppp_set_xaccm (int, ext_accm *); |
---|
419 |
/* Configure i/f receive parameters */ |
---|
420 |
void ppp_recv_config (int, int, u32_t, int, int); |
---|
421 |
/* Find out how long link has been idle */ |
---|
422 |
int get_idle_time (int, struct ppp_idle *); |
---|
423 |
|
---|
424 |
/* Configure VJ TCP header compression */ |
---|
425 |
int sifvjcomp (int, int, int, int); |
---|
426 |
/* Configure i/f down (for IP) */ |
---|
427 |
int sifup (int); |
---|
428 |
/* Set mode for handling packets for proto */ |
---|
429 |
int sifnpmode (int u, int proto, enum NPmode mode); |
---|
430 |
/* Configure i/f down (for IP) */ |
---|
431 |
int sifdown (int); |
---|
432 |
/* Configure IP addresses for i/f */ |
---|
433 |
int sifaddr (int, u32_t, u32_t, u32_t, u32_t, u32_t); |
---|
434 |
/* Reset i/f IP addresses */ |
---|
435 |
int cifaddr (int, u32_t, u32_t); |
---|
436 |
/* Create default route through i/f */ |
---|
437 |
int sifdefaultroute (int, u32_t, u32_t); |
---|
438 |
/* Delete default route through i/f */ |
---|
439 |
int cifdefaultroute (int, u32_t, u32_t); |
---|
440 |
|
---|
441 |
/* Get appropriate netmask for address */ |
---|
442 |
u32_t GetMask (u32_t); |
---|
443 |
|
---|
444 |
#endif /* PPP_SUPPORT */ |
---|
445 |
|
---|
446 |
#endif /* PPP_H */ |
---|