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