📄 ipcp.h
字号:
/*
* FILENAME: ipcp.h
*
* Copyright 1997- 2000 By InterNiche Technologies Inc. All rights reserved
*
* IP Control Protocol definitions.
*
* MODULE: PPP
*
*
* PORTABLE: yes
*/
/* Additional Copyrights: */
/* Portions Copyright 1996 by NetPort Software.
* Portions Copyright (c) 1989 Carnegie Mellon University. All rights
* reserved. Redistribution and use in source and binary forms are
* permitted provided that the above copyright notice and this
* paragraph are duplicated in all such forms and that any
* documentation, advertising materials, and other materials related
* to such distribution and use acknowledge that the software was
* developed by Carnegie Mellon University. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission. THIS
* SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES
* OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifndef _IPCP_H
#define _IPCP_H 1
/*
* Options.
*/
#define CI_ADDRS 1 /* IP Addresses (deprecated) */
#define CI_COMPRESSTYPE 2 /* Compression Type */
#define CI_ADDR 3 /* OUR IP address - request for assignment */
#define CI_DNSADDR_PRI 129 /* Primary DNS Server (RFC 1877) */
#define CI_DNSADDR_SEC 131 /* Secondary DNS Server (RFC 1877) */
#define MAX_STATES 16 /* from slcompress.h */
#define IPCP_VJMODE_OLD 1 /* "old" mode (option # = 0x0037) */
#define IPCP_VJMODE_RFC1172 2 /* "old-rfc"mode (option # = 0x002d) */
#define IPCP_VJMODE_RFC1332 3 /* "new-rfc"mode (option # = 0x002d, */
/* maxslot and slot number compression */
#define IPCP_VJ_COMP 0x002d /* current value for VJ compression option*/
#define IPCP_VJ_COMP_OLD 0x0037 /* "old" (i.e, broken) value for VJ */
/* compression option*/
typedef struct ipcp_options
{
int neg_addr : 1; /* Negotiate IP Address? */
int old_addrs : 1; /* Use old (IP-Addresses) option? */
int req_addr : 1; /* Ask peer to send IP address? */
int default_route :1; /* Assign default route through interface? */
int proxy_arp : 1; /* Make proxy ARP entry for peer? */
int neg_vj : 1; /* Van Jacobson Compression? */
int old_vj : 1; /* use old (short) form of VJ option? */
int accept_local : 1; /* accept peer's value for ouraddr */
int accept_remote: 1; /* accept peer's value for hisaddr */
#ifdef PPP_DNS
int neg_dnsaddr_pri : 1; /* negotiate dnsaddr_{pri, sec} */
int neg_dnsaddr_sec : 1; /* negotiate dnsaddr_{pri, sec} */
int accept_dnsaddrs : 1; /* accept peer's values for dnsaddr_* */
#endif /* PPP_DNS */
u_short vj_protocol; /* protocol value to use in VJ option */
u_char maxslotindex, cflag; /* values for RFC1332 VJ compression neg. */
u_long ouraddr, hisaddr; /* Addresses in NETWORK BYTE ORDER */
#ifdef PPP_DNS
u_long dnsaddr_pri; /* primary domain name server address */
u_long dnsaddr_sec; /* secondary domain name server address */
#endif /* PPP_DNS */
} ipcp_options;
/* FSM functions for IPCP */
void ipcp_init (M_PPP);
void ipcp_open (M_PPP);
void ipcp_close (M_PPP);
void ipcp_lowerup (M_PPP);
void ipcp_lowerdown (M_PPP);
void ipcp_input (M_PPP, u_char *, int);
void ipcp_protrej (M_PPP);
void ipcp_started(M_PPP);
void ipcp_finished(M_PPP);
/* Protocol functions for IPCP */
void ipcp_resetci (M_PPP); /* Reset our CI */
int ipcp_cilen (M_PPP); /* Return length of our CI */
int ipcp_addci (M_PPP); /* Add our CI */
int ipcp_ackci (M_PPP, u_char *, int); /* Peer ack'd our CI */
int ipcp_nakci (M_PPP, u_char *, int); /* Peer nak'd our CI */
int ipcp_rejci (M_PPP, u_char *, int); /* Peer rej'd our CI */
int ipcp_reqci (M_PPP, u_char *, int *, int); /* Rcv CI */
void ipcp_up (M_PPP); /* We're UP */
void ipcp_down (M_PPP); /* We're DOWN */
#endif /* _IPCP_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -