⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipcp.h

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 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 + -