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