1 /*****************************************************************************
\r
2 * ipcp.h - PPP IP NCP: Internet Protocol Network Control Protocol header file.
\r
4 * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc.
\r
5 * portions Copyright (c) 1997 Global Election Systems Inc.
\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
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
25 ******************************************************************************
\r
28 * 03-01-01 Marc Boucher <marc@mbsi.ca>
\r
30 * 97-12-04 Guy Lancaster <glanca@gesn.com>, Global Election Systems Inc.
\r
31 * Original derived from BSD codes.
\r
32 *****************************************************************************/
\r
34 * ipcp.h - IP Control Protocol definitions.
\r
36 * Copyright (c) 1989 Carnegie Mellon University.
\r
37 * All rights reserved.
\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
51 * $Id: ipcp.h,v 1.2 2006/08/29 18:53:47 wolti Exp $
\r
57 /*************************
\r
58 *** PUBLIC DEFINITIONS ***
\r
59 *************************/
\r
63 #define CI_ADDRS 1 /* IP Addresses */
\r
64 #define CI_COMPRESSTYPE 2 /* Compression Type */
\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
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
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
82 /************************
\r
83 *** PUBLIC DATA TYPES ***
\r
84 ************************/
\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
107 /*****************************
\r
108 *** PUBLIC DATA STRUCTURES ***
\r
109 *****************************/
\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
117 extern struct protent ipcp_protent;
\r
120 /***********************
\r
121 *** PUBLIC FUNCTIONS ***
\r
122 ***********************/
\r
125 #endif /* IPCP_H */
\r