Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Release 1.0
[palacios.git] / geekos / src / lwip / netif / ppp / ipcp.h
1 /*****************************************************************************
2 * ipcp.h -  PPP IP NCP: Internet Protocol Network Control 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-12-04 Guy Lancaster <glanca@gesn.com>, Global Election Systems Inc.
31 *   Original derived from BSD codes.
32 *****************************************************************************/
33 /*
34  * ipcp.h - IP Control Protocol definitions.
35  *
36  * Copyright (c) 1989 Carnegie Mellon University.
37  * All rights reserved.
38  *
39  * Redistribution and use in source and binary forms are permitted
40  * provided that the above copyright notice and this paragraph are
41  * duplicated in all such forms and that any documentation,
42  * advertising materials, and other materials related to such
43  * distribution and use acknowledge that the software was developed
44  * by Carnegie Mellon University.  The name of the
45  * University may not be used to endorse or promote products derived
46  * from this software without specific prior written permission.
47  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
48  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
49  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
50  *
51  * $Id: ipcp.h,v 1.3 2007/12/19 20:47:23 fbernon Exp $
52  */
53
54 #ifndef IPCP_H
55 #define IPCP_H
56
57 /*************************
58 *** PUBLIC DEFINITIONS ***
59 *************************/
60 /*
61  * Options.
62  */
63 #define CI_ADDRS            1      /* IP Addresses */
64 #define CI_COMPRESSTYPE     2      /* Compression Type */
65 #define CI_ADDR             3
66
67 #define CI_MS_WINS1         128    /* Primary WINS value */
68 #define CI_MS_DNS1          129    /* Primary DNS value */
69 #define CI_MS_WINS2         130    /* Secondary WINS value */
70 #define CI_MS_DNS2          131    /* Secondary DNS value */
71
72 #define IPCP_VJMODE_OLD     1      /* "old" mode (option # = 0x0037) */
73 #define IPCP_VJMODE_RFC1172 2      /* "old-rfc"mode (option # = 0x002d) */
74 #define IPCP_VJMODE_RFC1332 3      /* "new-rfc"mode (option # = 0x002d, */
75                                    /*  maxslot and slot number compression) */
76
77 #define IPCP_VJ_COMP        0x002d /* current value for VJ compression option */
78 #define IPCP_VJ_COMP_OLD    0x0037 /* "old" (i.e, broken) value for VJ */
79                                    /* compression option */ 
80
81
82 /************************
83 *** PUBLIC DATA TYPES ***
84 ************************/
85
86 typedef struct ipcp_options {
87   u_int   neg_addr      : 1; /* Negotiate IP Address? */
88   u_int   old_addrs     : 1; /* Use old (IP-Addresses) option? */
89   u_int   req_addr      : 1; /* Ask peer to send IP address? */
90   u_int   default_route : 1; /* Assign default route through interface? */
91   u_int   proxy_arp     : 1; /* Make proxy ARP entry for peer? */
92   u_int   neg_vj        : 1; /* Van Jacobson Compression? */
93   u_int   old_vj        : 1; /* use old (short) form of VJ option? */
94   u_int   accept_local  : 1; /* accept peer's value for ouraddr */
95   u_int   accept_remote : 1; /* accept peer's value for hisaddr */
96   u_int   req_dns1      : 1; /* Ask peer to send primary DNS address? */
97   u_int   req_dns2      : 1; /* Ask peer to send secondary DNS address? */
98   u_short vj_protocol;       /* protocol value to use in VJ option */
99   u_char  maxslotindex;      /* VJ slots - 1. */
100   u_char  cflag;             /* VJ slot compression flag. */
101   u32_t   ouraddr, hisaddr;  /* Addresses in NETWORK BYTE ORDER */
102   u32_t   dnsaddr[2];        /* Primary and secondary MS DNS entries */
103   u32_t   winsaddr[2];       /* Primary and secondary MS WINS entries */
104 } ipcp_options;
105
106
107 /*****************************
108 *** PUBLIC DATA STRUCTURES ***
109 *****************************/
110
111 extern fsm ipcp_fsm[];
112 extern ipcp_options ipcp_wantoptions[];
113 extern ipcp_options ipcp_gotoptions[];
114 extern ipcp_options ipcp_allowoptions[];
115 extern ipcp_options ipcp_hisoptions[];
116
117 extern struct protent ipcp_protent;
118
119
120 /***********************
121 *** PUBLIC FUNCTIONS ***
122 ***********************/
123
124 #endif /* IPCP_H */