1/* 2 * ipcp.h - IP Control Protocol definitions. 3 * 4 * Copyright (c) 1989 Carnegie Mellon University. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms are permitted 8 * provided that the above copyright notice and this paragraph are 9 * duplicated in all such forms and that any documentation, 10 * advertising materials, and other materials related to such 11 * distribution and use acknowledge that the software was developed 12 * by Carnegie Mellon University. The name of the 13 * University may not be used to endorse or promote products derived 14 * from this software without specific prior written permission. 15 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 16 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 17 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 18 * 19 * $Id: ipcp.h,v 1.1.1.1 2008/10/15 03:30:13 james26_jang Exp $ 20 */ 21 22/* 23 * Options. 24 */ 25#define CI_ADDRS 1 /* IP Addresses */ 26#define CI_COMPRESSTYPE 2 /* Compression Type */ 27#define CI_ADDR 3 28 29#define CI_MS_DNS1 129 /* Primary DNS value */ 30#define CI_MS_WINS1 130 /* Primary WINS value */ 31#define CI_MS_DNS2 131 /* Secondary DNS value */ 32#define CI_MS_WINS2 132 /* Secondary WINS value */ 33 34#define MAX_STATES 16 /* from slcompress.h */ 35 36#define IPCP_VJMODE_OLD 1 /* "old" mode (option # = 0x0037) */ 37#define IPCP_VJMODE_RFC1172 2 /* "old-rfc"mode (option # = 0x002d) */ 38#define IPCP_VJMODE_RFC1332 3 /* "new-rfc"mode (option # = 0x002d, */ 39 /* maxslot and slot number compression) */ 40 41#define IPCP_VJ_COMP 0x002d /* current value for VJ compression option*/ 42#define IPCP_VJ_COMP_OLD 0x0037 /* "old" (i.e, broken) value for VJ */ 43 /* compression option*/ 44 45typedef struct ipcp_options { 46 bool neg_addr; /* Negotiate IP Address? */ 47 bool old_addrs; /* Use old (IP-Addresses) option? */ 48 bool req_addr; /* Ask peer to send IP address? */ 49 bool default_route; /* Assign default route through interface? */ 50 bool proxy_arp; /* Make proxy ARP entry for peer? */ 51 bool neg_vj; /* Van Jacobson Compression? */ 52 bool old_vj; /* use old (short) form of VJ option? */ 53 bool accept_local; /* accept peer's value for ouraddr */ 54 bool accept_remote; /* accept peer's value for hisaddr */ 55 bool req_dns1; /* Ask peer to send primary DNS address? */ 56 bool req_dns2; /* Ask peer to send secondary DNS address? */ 57 int vj_protocol; /* protocol value to use in VJ option */ 58 int maxslotindex; /* values for RFC1332 VJ compression neg. */ 59 bool cflag; 60 u_int32_t ouraddr, hisaddr; /* Addresses in NETWORK BYTE ORDER */ 61 u_int32_t dnsaddr[2]; /* Primary and secondary MS DNS entries */ 62 u_int32_t winsaddr[2]; /* Primary and secondary MS WINS entries */ 63} ipcp_options; 64 65extern fsm ipcp_fsm[]; 66extern ipcp_options ipcp_wantoptions[]; 67extern ipcp_options ipcp_gotoptions[]; 68extern ipcp_options ipcp_allowoptions[]; 69extern ipcp_options ipcp_hisoptions[]; 70 71char *ip_ntoa __P((u_int32_t)); 72 73extern struct protent ipcp_protent; 74