1/*
2 * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23/*
24 * ipv6cp.h - PPP IPV6 Control Protocol.
25 *
26 * Copyright (c) 1999 Tommi Komulainen.  All rights reserved.
27 *
28 * Redistribution and use in source and binary forms, with or without
29 * modification, are permitted provided that the following conditions
30 * are met:
31 *
32 * 1. Redistributions of source code must retain the above copyright
33 *    notice, this list of conditions and the following disclaimer.
34 *
35 * 2. Redistributions in binary form must reproduce the above copyright
36 *    notice, this list of conditions and the following disclaimer in
37 *    the documentation and/or other materials provided with the
38 *    distribution.
39 *
40 * 3. The name(s) of the authors of this software must not be used to
41 *    endorse or promote products derived from this software without
42 *    prior written permission.
43 *
44 * 4. Redistributions of any form whatsoever must retain the following
45 *    acknowledgment:
46 *    "This product includes software developed by Tommi Komulainen
47 *     <Tommi.Komulainen@iki.fi>".
48 *
49 * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO
50 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
51 * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
52 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
53 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
54 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
55 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
56 *
57 */
58
59/*  Original version, based on RFC2023 :
60
61    Copyright (c) 1995, 1996, 1997 Francis.Dupont@inria.fr, INRIA Rocquencourt,
62    Alain.Durand@imag.fr, IMAG,
63    Jean-Luc.Richier@imag.fr, IMAG-LSR.
64
65    Copyright (c) 1998, 1999 Francis.Dupont@inria.fr, GIE DYADE,
66    Alain.Durand@imag.fr, IMAG,
67    Jean-Luc.Richier@imag.fr, IMAG-LSR.
68
69    Ce travail a �t� fait au sein du GIE DYADE (Groupement d'Int�r�t
70    �conomique ayant pour membres BULL S.A. et l'INRIA).
71
72    Ce logiciel informatique est disponible aux conditions
73    usuelles dans la recherche, c'est-�-dire qu'il peut
74    �tre utilis�, copi�, modifi�, distribu� � l'unique
75    condition que ce texte soit conserv� afin que
76    l'origine de ce logiciel soit reconnue.
77
78    Le nom de l'Institut National de Recherche en Informatique
79    et en Automatique (INRIA), de l'IMAG, ou d'une personne morale
80    ou physique ayant particip� � l'�laboration de ce logiciel ne peut
81    �tre utilis� sans son accord pr�alable explicite.
82
83    Ce logiciel est fourni tel quel sans aucune garantie,
84    support ou responsabilit� d'aucune sorte.
85    Ce logiciel est d�riv� de sources d'origine
86    "University of California at Berkeley" et
87    "Digital Equipment Corporation" couvertes par des copyrights.
88
89    L'Institut d'Informatique et de Math�matiques Appliqu�es de Grenoble (IMAG)
90    est une f�d�ration d'unit�s mixtes de recherche du CNRS, de l'Institut National
91    Polytechnique de Grenoble et de l'Universit� Joseph Fourier regroupant
92    sept laboratoires dont le laboratoire Logiciels, Syst�mes, R�seaux (LSR).
93
94    This work has been done in the context of GIE DYADE (joint R & D venture
95    between BULL S.A. and INRIA).
96
97    This software is available with usual "research" terms
98    with the aim of retain credits of the software.
99    Permission to use, copy, modify and distribute this software for any
100    purpose and without fee is hereby granted, provided that the above
101    copyright notice and this permission notice appear in all copies,
102    and the name of INRIA, IMAG, or any contributor not be used in advertising
103    or publicity pertaining to this material without the prior explicit
104    permission. The software is provided "as is" without any
105    warranties, support or liabilities of any kind.
106    This software is derived from source code from
107    "University of California at Berkeley" and
108    "Digital Equipment Corporation" protected by copyrights.
109
110    Grenoble's Institute of Computer Science and Applied Mathematics (IMAG)
111    is a federation of seven research units funded by the CNRS, National
112    Polytechnic Institute of Grenoble and University Joseph Fourier.
113    The research unit in Software, Systems, Networks (LSR) is member of IMAG.
114*/
115
116/*
117 * Derived from :
118 *
119 *
120 * ipcp.h - IP Control Protocol definitions.
121 *
122 * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved.
123 *
124 * Redistribution and use in source and binary forms, with or without
125 * modification, are permitted provided that the following conditions
126 * are met:
127 *
128 * 1. Redistributions of source code must retain the above copyright
129 *    notice, this list of conditions and the following disclaimer.
130 *
131 * 2. Redistributions in binary form must reproduce the above copyright
132 *    notice, this list of conditions and the following disclaimer in
133 *    the documentation and/or other materials provided with the
134 *    distribution.
135 *
136 * 3. The name "Carnegie Mellon University" must not be used to
137 *    endorse or promote products derived from this software without
138 *    prior written permission. For permission or any legal
139 *    details, please contact
140 *      Office of Technology Transfer
141 *      Carnegie Mellon University
142 *      5000 Forbes Avenue
143 *      Pittsburgh, PA  15213-3890
144 *      (412) 268-4387, fax: (412) 268-7395
145 *      tech-transfer@andrew.cmu.edu
146 *
147 * 4. Redistributions of any form whatsoever must retain the following
148 *    acknowledgment:
149 *    "This product includes software developed by Computing Services
150 *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
151 *
152 * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
153 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
154 * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
155 * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
156 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
157 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
158 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
159 *
160 * $Id: ipv6cp.h,v 1.6 2004/02/10 19:29:23 callie Exp $
161 */
162
163/*
164 * Options.
165 */
166#define CI_IFACEID	1	/* Interface Identifier */
167#define CI_COMPRESSTYPE	2	/* Compression Type     */
168
169/* No compression types yet defined.
170 *#define IPV6CP_COMP	0x004f
171 */
172typedef struct ipv6cp_options {
173    int neg_ifaceid;		/* Negotiate interface identifier? */
174    int req_ifaceid;		/* Ask peer to send interface identifier? */
175    int accept_local;		/* accept peer's value for iface id? */
176    int opt_local;		/* ourtoken set by option */
177    int opt_remote;		/* histoken set by option */
178    int use_ip;			/* use IP as interface identifier */
179#if defined(SOL2) || defined(__linux__) || defined(__APPLE__)
180    int use_persistent;		/* use uniquely persistent value for address */
181#endif /* defined(SOL2) */
182    int neg_vj;			/* Van Jacobson Compression? */
183    u_short vj_protocol;	/* protocol value to use in VJ option */
184    eui64_t ourid, hisid;	/* Interface identifiers */
185} ipv6cp_options;
186
187extern fsm ipv6cp_fsm[];
188extern ipv6cp_options ipv6cp_wantoptions[];
189extern ipv6cp_options ipv6cp_gotoptions[];
190extern ipv6cp_options ipv6cp_allowoptions[];
191extern ipv6cp_options ipv6cp_hisoptions[];
192
193extern struct protent ipv6cp_protent;
194