]> git.sur5r.net Git - freertos/blob - Demo/lwIP_MCF5235_GCC/lwip/src/netif/ppp/ipcp.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / lwIP_MCF5235_GCC / lwip / src / netif / ppp / ipcp.h
1 /*****************************************************************************\r
2 * ipcp.h -  PPP IP NCP: Internet Protocol Network Control Protocol header file.\r
3 *\r
4 * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc.\r
5 * portions Copyright (c) 1997 Global Election Systems Inc.\r
6 *\r
7 * The authors hereby grant permission to use, copy, modify, distribute,\r
8 * and license this software and its documentation for any purpose, provided\r
9 * that existing copyright notices are retained in all copies and that this\r
10 * notice and the following disclaimer are included verbatim in any \r
11 * distributions. No written agreement, license, or royalty fee is required\r
12 * for any of the authorized uses.\r
13 *\r
14 * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR\r
15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r
16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \r
17 * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\r
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
24 *\r
25 ******************************************************************************\r
26 * REVISION HISTORY\r
27 *\r
28 * 03-01-01 Marc Boucher <marc@mbsi.ca>\r
29 *   Ported to lwIP.\r
30 * 97-12-04 Guy Lancaster <glanca@gesn.com>, Global Election Systems Inc.\r
31 *       Original derived from BSD codes.\r
32 *****************************************************************************/\r
33 /*\r
34  * ipcp.h - IP Control Protocol definitions.\r
35  *\r
36  * Copyright (c) 1989 Carnegie Mellon University.\r
37  * All rights reserved.\r
38  *\r
39  * Redistribution and use in source and binary forms are permitted\r
40  * provided that the above copyright notice and this paragraph are\r
41  * duplicated in all such forms and that any documentation,\r
42  * advertising materials, and other materials related to such\r
43  * distribution and use acknowledge that the software was developed\r
44  * by Carnegie Mellon University.  The name of the\r
45  * University may not be used to endorse or promote products derived\r
46  * from this software without specific prior written permission.\r
47  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR\r
48  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED\r
49  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
50  *\r
51  * $Id: ipcp.h,v 1.2 2006/08/29 18:53:47 wolti Exp $\r
52  */\r
53 \r
54 #ifndef IPCP_H\r
55 #define IPCP_H\r
56 \r
57 /*************************\r
58 *** PUBLIC DEFINITIONS ***\r
59 *************************/\r
60 /*\r
61  * Options.\r
62  */\r
63 #define CI_ADDRS        1                       /* IP Addresses */\r
64 #define CI_COMPRESSTYPE 2               /* Compression Type */\r
65 #define CI_ADDR         3\r
66 \r
67 #define CI_MS_WINS1     128                     /* Primary WINS value */\r
68 #define CI_MS_DNS1      129                     /* Primary DNS value */\r
69 #define CI_MS_WINS2     130                     /* Secondary WINS value */\r
70 #define CI_MS_DNS2      131                     /* Secondary DNS value */\r
71 \r
72 #define IPCP_VJMODE_OLD 1               /* "old" mode (option # = 0x0037) */\r
73 #define IPCP_VJMODE_RFC1172 2   /* "old-rfc"mode (option # = 0x002d) */\r
74 #define IPCP_VJMODE_RFC1332 3   /* "new-rfc"mode (option # = 0x002d, */\r
75                                 /*  maxslot and slot number compression) */\r
76 \r
77 #define IPCP_VJ_COMP 0x002d             /* current value for VJ compression option*/\r
78 #define IPCP_VJ_COMP_OLD 0x0037 /* "old" (i.e, broken) value for VJ */\r
79                                                                 /* compression option*/ \r
80 \r
81 \r
82 /************************\r
83 *** PUBLIC DATA TYPES ***\r
84 ************************/\r
85 \r
86 typedef struct ipcp_options {\r
87     u_int neg_addr : 1;                 /* Negotiate IP Address? */\r
88     u_int old_addrs : 1;                        /* Use old (IP-Addresses) option? */\r
89     u_int req_addr : 1;                 /* Ask peer to send IP address? */\r
90     u_int default_route : 1;            /* Assign default route through interface? */\r
91     u_int proxy_arp : 1;                        /* Make proxy ARP entry for peer? */\r
92     u_int neg_vj : 1;                           /* Van Jacobson Compression? */\r
93     u_int old_vj : 1;                           /* use old (short) form of VJ option? */\r
94     u_int accept_local : 1;             /* accept peer's value for ouraddr */\r
95     u_int accept_remote : 1;            /* accept peer's value for hisaddr */\r
96     u_int req_dns1 : 1;                 /* Ask peer to send primary DNS address? */\r
97     u_int req_dns2 : 1;                 /* Ask peer to send secondary DNS address? */\r
98     u_short vj_protocol;                /* protocol value to use in VJ option */\r
99     u_char maxslotindex;                /* VJ slots - 1. */\r
100     u_char cflag;                               /* VJ slot compression flag. */\r
101     u32_t ouraddr, hisaddr;     /* Addresses in NETWORK BYTE ORDER */\r
102     u32_t dnsaddr[2];           /* Primary and secondary MS DNS entries */\r
103     u32_t winsaddr[2];          /* Primary and secondary MS WINS entries */\r
104 } ipcp_options;\r
105 \r
106 \r
107 /*****************************\r
108 *** PUBLIC DATA STRUCTURES ***\r
109 *****************************/\r
110 \r
111 extern fsm ipcp_fsm[];\r
112 extern ipcp_options ipcp_wantoptions[];\r
113 extern ipcp_options ipcp_gotoptions[];\r
114 extern ipcp_options ipcp_allowoptions[];\r
115 extern ipcp_options ipcp_hisoptions[];\r
116 \r
117 extern struct protent ipcp_protent;\r
118 \r
119 \r
120 /***********************\r
121 *** PUBLIC FUNCTIONS ***\r
122 ***********************/\r
123 \r
124 \r
125 #endif /* IPCP_H */\r
126 \r