Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ipv6cp.h Source File

ipv6cp.h

00001 /*
00002  * ipv6cp.h - PPP IPV6 Control Protocol.
00003  *
00004  * Copyright (c) 1999 Tommi Komulainen.  All rights reserved.
00005  *
00006  * Redistribution and use in source and binary forms, with or without
00007  * modification, are permitted provided that the following conditions
00008  * are met:
00009  *
00010  * 1. Redistributions of source code must retain the above copyright
00011  *    notice, this list of conditions and the following disclaimer.
00012  *
00013  * 2. Redistributions in binary form must reproduce the above copyright
00014  *    notice, this list of conditions and the following disclaimer in
00015  *    the documentation and/or other materials provided with the
00016  *    distribution.
00017  *
00018  * 3. The name(s) of the authors of this software must not be used to
00019  *    endorse or promote products derived from this software without
00020  *    prior written permission.
00021  *
00022  * 4. Redistributions of any form whatsoever must retain the following
00023  *    acknowledgment:
00024  *    "This product includes software developed by Tommi Komulainen
00025  *     <Tommi.Komulainen@iki.fi>".
00026  *
00027  * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO
00028  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
00029  * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
00030  * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
00031  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
00032  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
00033  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
00034  *
00035  */
00036 
00037 /*  Original version, based on RFC2023 :
00038 
00039     Copyright (c) 1995, 1996, 1997 Francis.Dupont@inria.fr, INRIA Rocquencourt,
00040     Alain.Durand@imag.fr, IMAG,
00041     Jean-Luc.Richier@imag.fr, IMAG-LSR.
00042 
00043     Copyright (c) 1998, 1999 Francis.Dupont@inria.fr, GIE DYADE,
00044     Alain.Durand@imag.fr, IMAG,
00045     Jean-Luc.Richier@imag.fr, IMAG-LSR.
00046 
00047     Ce travail a été fait au sein du GIE DYADE (Groupement d'Intérêt
00048     Économique ayant pour membres BULL S.A. et l'INRIA).
00049 
00050     Ce logiciel informatique est disponible aux conditions
00051     usuelles dans la recherche, c'est-à-dire qu'il peut
00052     être utilisé, copié, modifié, distribué à l'unique
00053     condition que ce texte soit conservé afin que
00054     l'origine de ce logiciel soit reconnue.
00055 
00056     Le nom de l'Institut National de Recherche en Informatique
00057     et en Automatique (INRIA), de l'IMAG, ou d'une personne morale
00058     ou physique ayant participé à l'élaboration de ce logiciel ne peut
00059     être utilisé sans son accord préalable explicite.
00060 
00061     Ce logiciel est fourni tel quel sans aucune garantie,
00062     support ou responsabilité d'aucune sorte.
00063     Ce logiciel est dérivé de sources d'origine
00064     "University of California at Berkeley" et
00065     "Digital Equipment Corporation" couvertes par des copyrights.
00066 
00067     L'Institut d'Informatique et de Mathématiques Appliquées de Grenoble (IMAG)
00068     est une fédération d'unités mixtes de recherche du CNRS, de l'Institut National
00069     Polytechnique de Grenoble et de l'Université Joseph Fourier regroupant
00070     sept laboratoires dont le laboratoire Logiciels, Systèmes, Réseaux (LSR).
00071 
00072     This work has been done in the context of GIE DYADE (joint R & D venture
00073     between BULL S.A. and INRIA).
00074 
00075     This software is available with usual "research" terms
00076     with the aim of retain credits of the software. 
00077     Permission to use, copy, modify and distribute this software for any
00078     purpose and without fee is hereby granted, provided that the above
00079     copyright notice and this permission notice appear in all copies,
00080     and the name of INRIA, IMAG, or any contributor not be used in advertising
00081     or publicity pertaining to this material without the prior explicit
00082     permission. The software is provided "as is" without any
00083     warranties, support or liabilities of any kind.
00084     This software is derived from source code from
00085     "University of California at Berkeley" and
00086     "Digital Equipment Corporation" protected by copyrights.
00087 
00088     Grenoble's Institute of Computer Science and Applied Mathematics (IMAG)
00089     is a federation of seven research units funded by the CNRS, National
00090     Polytechnic Institute of Grenoble and University Joseph Fourier.
00091     The research unit in Software, Systems, Networks (LSR) is member of IMAG.
00092 */
00093 
00094 /*
00095  * Derived from :
00096  *
00097  *
00098  * ipcp.h - IP Control Protocol definitions.
00099  *
00100  * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved.
00101  *
00102  * Redistribution and use in source and binary forms, with or without
00103  * modification, are permitted provided that the following conditions
00104  * are met:
00105  *
00106  * 1. Redistributions of source code must retain the above copyright
00107  *    notice, this list of conditions and the following disclaimer.
00108  *
00109  * 2. Redistributions in binary form must reproduce the above copyright
00110  *    notice, this list of conditions and the following disclaimer in
00111  *    the documentation and/or other materials provided with the
00112  *    distribution.
00113  *
00114  * 3. The name "Carnegie Mellon University" must not be used to
00115  *    endorse or promote products derived from this software without
00116  *    prior written permission. For permission or any legal
00117  *    details, please contact
00118  *      Office of Technology Transfer
00119  *      Carnegie Mellon University
00120  *      5000 Forbes Avenue
00121  *      Pittsburgh, PA  15213-3890
00122  *      (412) 268-4387, fax: (412) 268-7395
00123  *      tech-transfer@andrew.cmu.edu
00124  *
00125  * 4. Redistributions of any form whatsoever must retain the following
00126  *    acknowledgment:
00127  *    "This product includes software developed by Computing Services
00128  *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
00129  *
00130  * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
00131  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
00132  * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
00133  * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
00134  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
00135  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
00136  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
00137  *
00138  * $Id: ipv6cp.h,v 1.7 2002/12/04 23:03:32 paulus Exp $
00139  */
00140 
00141 #include "ppp_opts.h"
00142 #if PPP_SUPPORT && PPP_IPV6_SUPPORT  /* don't build if not configured for use in ppp_opts.h */
00143 
00144 #ifndef IPV6CP_H
00145 #define IPV6CP_H
00146 
00147 #include "eui64.h"
00148 
00149 #ifdef __cplusplus
00150 extern "C" {
00151 #endif
00152 
00153 /*
00154  * Options.
00155  */
00156 #define CI_IFACEID  1   /* Interface Identifier */
00157 #ifdef IPV6CP_COMP
00158 #define CI_COMPRESSTYPE 2   /* Compression Type     */
00159 #endif /* IPV6CP_COMP */
00160 
00161 /* No compression types yet defined.
00162  *#define IPV6CP_COMP   0x004f
00163  */
00164 typedef struct ipv6cp_options {
00165     unsigned int neg_ifaceid    :1;  /* Negotiate interface identifier? */
00166     unsigned int req_ifaceid    :1;  /* Ask peer to send interface identifier? */
00167     unsigned int accept_local   :1;  /* accept peer's value for iface id? */
00168     unsigned int opt_local      :1;  /* ourtoken set by option */
00169     unsigned int opt_remote     :1;  /* histoken set by option */
00170     unsigned int use_ip         :1;  /* use IP as interface identifier */
00171 #if 0
00172     unsigned int use_persistent :1;  /* use uniquely persistent value for address */
00173 #endif
00174 #ifdef IPV6CP_COMP
00175     unsigned int neg_vj         :1;  /* Van Jacobson Compression? */
00176 #endif /* IPV6CP_COMP */
00177 
00178 #ifdef IPV6CP_COMP
00179     u_short vj_protocol;        /* protocol value to use in VJ option */
00180 #endif /* IPV6CP_COMP */
00181     eui64_t ourid, hisid;       /* Interface identifiers */
00182 } ipv6cp_options;
00183 
00184 extern const struct protent ipv6cp_protent;
00185 
00186 #ifdef __cplusplus
00187 }
00188 #endif
00189 
00190 #endif /* IPV6CP_H */
00191 #endif /* PPP_SUPPORT && PPP_IPV6_SUPPORT */