home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / pppd / ipcp.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-06-29  |  3.9 KB  |  97 lines

  1. /*
  2.  * ipcp.h - IP Control Protocol definitions.
  3.  *
  4.  * Copyright (c) 1984-2000 Carnegie Mellon University. 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 "Carnegie Mellon University" must not be used to
  19.  *    endorse or promote products derived from this software without
  20.  *    prior written permission. For permission or any legal
  21.  *    details, please contact
  22.  *      Office of Technology Transfer
  23.  *      Carnegie Mellon University
  24.  *      5000 Forbes Avenue
  25.  *      Pittsburgh, PA  15213-3890
  26.  *      (412) 268-4387, fax: (412) 268-7395
  27.  *      tech-transfer@andrew.cmu.edu
  28.  *
  29.  * 4. Redistributions of any form whatsoever must retain the following
  30.  *    acknowledgment:
  31.  *    "This product includes software developed by Computing Services
  32.  *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
  33.  *
  34.  * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
  35.  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  36.  * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
  37.  * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  38.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
  39.  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
  40.  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  41.  *
  42.  * $Id: ipcp.h,v 1.14 2002/12/04 23:03:32 paulus Exp $
  43.  */
  44.  
  45. /*
  46.  * Options.
  47.  */
  48. #define CI_ADDRS    1    /* IP Addresses */
  49. #define CI_COMPRESSTYPE    2    /* Compression Type */
  50. #define    CI_ADDR        3
  51.  
  52. #define CI_MS_DNS1    129    /* Primary DNS value */
  53. #define CI_MS_WINS1    130    /* Primary WINS value */
  54. #define CI_MS_DNS2    131    /* Secondary DNS value */
  55. #define CI_MS_WINS2    132    /* Secondary WINS value */
  56.  
  57. #define MAX_STATES 16        /* from slcompress.h */
  58.  
  59. #define IPCP_VJMODE_OLD 1    /* "old" mode (option # = 0x0037) */
  60. #define IPCP_VJMODE_RFC1172 2    /* "old-rfc"mode (option # = 0x002d) */
  61. #define IPCP_VJMODE_RFC1332 3    /* "new-rfc"mode (option # = 0x002d, */
  62.                                 /*  maxslot and slot number compression) */
  63.  
  64. #define IPCP_VJ_COMP 0x002d    /* current value for VJ compression option*/
  65. #define IPCP_VJ_COMP_OLD 0x0037    /* "old" (i.e, broken) value for VJ */
  66.                 /* compression option*/ 
  67.  
  68. typedef struct ipcp_options {
  69.     bool neg_addr;        /* Negotiate IP Address? */
  70.     bool old_addrs;        /* Use old (IP-Addresses) option? */
  71.     bool req_addr;        /* Ask peer to send IP address? */
  72.     bool default_route;        /* Assign default route through interface? */
  73.     bool proxy_arp;        /* Make proxy ARP entry for peer? */
  74.     bool neg_vj;        /* Van Jacobson Compression? */
  75.     bool old_vj;        /* use old (short) form of VJ option? */
  76.     bool accept_local;        /* accept peer's value for ouraddr */
  77.     bool accept_remote;        /* accept peer's value for hisaddr */
  78.     bool req_dns1;        /* Ask peer to send primary DNS address? */
  79.     bool req_dns2;        /* Ask peer to send secondary DNS address? */
  80.     int  vj_protocol;        /* protocol value to use in VJ option */
  81.     int  maxslotindex;        /* values for RFC1332 VJ compression neg. */
  82.     bool cflag;
  83.     u_int32_t ouraddr, hisaddr;    /* Addresses in NETWORK BYTE ORDER */
  84.     u_int32_t dnsaddr[2];    /* Primary and secondary MS DNS entries */
  85.     u_int32_t winsaddr[2];    /* Primary and secondary MS WINS entries */
  86. } ipcp_options;
  87.  
  88. extern fsm ipcp_fsm[];
  89. extern ipcp_options ipcp_wantoptions[];
  90. extern ipcp_options ipcp_gotoptions[];
  91. extern ipcp_options ipcp_allowoptions[];
  92. extern ipcp_options ipcp_hisoptions[];
  93.  
  94. char *ip_ntoa __P((u_int32_t));
  95.  
  96. extern struct protent ipcp_protent;
  97.