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

📄 ppp.h

📁 用于嵌入式系统的TCP/IP协议栈及若干服务
💻 H
📖 第 1 页 / 共 2 页
字号:
/**            Copyright (c) 1998-2001 by NETsilicon Inc.**  This software is copyrighted by and is the sole property of*  NETsilicon.  All rights, title, ownership, or other interests*  in the software remain the property of NETsilicon.  This*  software may only be used in accordance with the corresponding*  license agreement.  Any unauthorized use, duplication, transmission,*  distribution, or disclosure of this software is expressly forbidden.**  This Copyright notice may not be removed or modified without prior*  written consent of NETsilicon.**  NETsilicon, reserves the right to modify this software*  without notice.**  NETsilicon*  411 Waverley Oaks Road                  USA 781.647.1234*  Suite 227                               http://www.netsilicon.com*  Waltham, MA 02452                       AmericaSales@netsilicon.com***************************************************************************  $Name: Fusion 6.52 Fusion 6.51 $*  $Date: 2001/12/11 15:47:11 $*  $Source: M:/psisrc/ppp/incl/rcs/ppp.h $*  $Revision: 1.42 $**************************************************************************  File Description:	  PPP definition and routine declarations*                                                             *************************************************************************/#ifndef _PPP_#define _PPP_#include "m.h"#include "vjcomp.h"#include "slppp.h"#include "netdev.h"#include "pppconst.h"#include "pppapi.h"/* PPP Admin State (per interface) */#define PPP_ADMINS_CLOSED 0#define PPP_ADMINS_OPEN   1/* PPP Finite State Machine States */#define PS_INIT         0#define PS_START        1#define PS_CLOSE        2#define PS_STOP         3#define PS_2CLOSE       4#define PS_2STOP        5#define PS_REQXMT       6#define PS_ACKREC       7#define PS_ACKXMT       8#define PS_OPEN         9#define PS_INVALID      255/* PPP Finite State Machine Events */#define PE_UP           0#define PE_DOWN         1#define PE_OPEN         2#define PE_CLOSE        3#define PE_TON          4#define PE_TOZ          5#define PE_RCRGOOD      6#define PE_RCRBAD       7#define PE_RCA          8#define PE_RCN          9#define PE_RTR          10#define PE_RTA          11#define PE_RUC          12#define PE_RXJGOOD      13#define PE_RXJBAD       14#define PE_RXR          15/* ppp Rq codes */#define LCP_CFGREQ      1#define LCP_CFGACK      2#define LCP_CFGNAK      3#define LCP_CFGREJ      4#define LCP_TERREQ      5#define LCP_TERACK      6#define LCP_CODREJ      7#define LCP_PROREJ      8#define LCP_ECHREQ      9#define LCP_ECHREP      10#define LCP_DISCRD      11#define LCP_CFGMXR      1#define LCP_CFGASY      2#define LCP_CFGAUT      3#define LCP_CFGQUA      4#define LCP_CFGMAG      5#define LCP_CFGPRO      7#define LCP_CFGADD      8#define IPCP_CFGREQ     1#define IPCP_CFGACK     2#define IPCP_CFGNAK     3#define IPCP_CFGREJ     4#define IPCP_TERREQ     5#define IPCP_TERACK     6#define IPCP_CODREJ     7#define IPCP_VANJAC     0x002d#define IPCP_CFGCMP     2#define IPCP_CFGIPA     3#define IPCP_PRI_DNS    129#define IPCP_PRI_NBNS   130#define IPCP_SEC_DNS    131#define IPCP_SEC_NBNS   132#define PAP_AUTREQ      1#define PAP_AUTACK      2#define PAP_AUTNAK      3#define CHAP_CHALLENGE  1#define CHAP_RESPONSE   2#define CHAP_SUCCESS    3#define CHAP_FAILURE    4#define ALG_MD5         0x5enum ppp_layers {    PPP_LCPLAYER,    PPP_IPCPLAYER,    PPP_PAP_PEER_AUTH_LAYER,    PPP_CHAP_PEER_AUTH_LAYER,#ifdef PPP_AUTH_SERVER    PPP_PAP_AUTH_PEER_LAYER,     PPP_CHAP_AUTH_PEER_LAYER,#endif    NUM_PPP_LAYERS};#define LCP_PASSAUT     0xc023#define LCP_CHALHS      0xc223#define PPP_IPTYPE      0x0021#define PPP_CTCPTYPE    0x002d#define PPP_UTCPTYPE    0x002f#define PPP_IPCPTYPE    0x8021#define PPP_LCPTYPE     0xc021#define PPP_PAPTYPE     0xc023#define PPP_CHAPTYPE    0xc223#define PPP_TERMTIMER   0x00000100#define PPP_CONFTIMER   0x00000200#define PPP_CFG_RETRY_TO#define MAX_LCP_RETRY       10#define MAX_IPCP_RETRY      10#define MAX_TERM_RETRY      2#ifndef CHAP_DEF_CHALL_INT#define CHAP_DEF_CHALL_INT  180 /* Rechallenge every 180 secs by default */#endif#define PPP_MAX_DATA    4096#define PPP_HDR_SIZE    4#define PPP_ADDRLEN     1#define PPP_TX_SIZE     PPP_MAX_DATA#define PPP_RX_SIZE     PPP_TX_SIZE#define PPP_RAW         0#define PPP_RQ_MAX      8/* Control characters used in ppp_onechar_input() */#define PPP_ESC         0x7d         /* Control Escape RFC 1662 p.8 */#define PPP_FLAG        0x7e         /* Flag Sequence RFC 1662 p.5 *//* pppsession.ppp_inflag */#define PPP_ESC_FLG     0x01        /* The previous octet was PPP_ESC so we'll need to                                       escape the next character                                     */#define PPP_INIT_DONE   0x02        /* pppsession is initialized */#define PPP_RESET       0x04        /* re-initializing psp session *//* These structures are packed */typedef u8 PPPH;                    /* PPP header structure */#define PPPH_PPP_ADDRESS    0                     /* 1 byte */#define PPPH_PPP_CONTROL    (PPPH_PPP_ADDRESS+1)  /* 1 byte */#define PPPH_PPP_PROTOCOL   (PPPH_PPP_CONTROL+1)  /* 2 bytes */#define SIZEOF_PPPH         (PPPH_PPP_PROTOCOL+2)typedef u8 LCPH;                    /* LCP header structure */#define LCPH_LCP_CODE       0                        /* 1 byte */#define LCPH_LCP_ID         (LCPH_LCP_CODE+1)        /* 1 byte */#define LCPH_LCP_LEN        (LCPH_LCP_ID+1)          /* 2 bytes */#define SIZEOF_LCPH         (LCPH_LCP_LEN+2)typedef u8 IPCPH;                   /* IPCP header structure */#define IPCPH_IPCP_CODE     0                         /* 1 byte */#define IPCPH_IPCP_ID       (IPCPH_IPCP_CODE+1)       /* 1 byte */#define IPCPH_IPCP_LEN      (IPCPH_IPCP_ID+1)         /* 2 bytes */#define SIZEOF_IPCPH        (IPCPH_IPCP_LEN+2)typedef u8 PAPH;                    /* PAP header structure */#define PAPH_PAP_CODE       0                     /* 1 byte */#define PAPH_PAP_ID         (PAPH_PAP_CODE+1)     /* 1 byte */#define PAPH_PAP_LEN        (PAPH_PAP_ID+1)       /* 2 bytes */#define SIZEOF_PAPH         (PAPH_PAP_LEN+2)typedef u8 CHAPH;                   /* CHAP header structure */#define CHAPH_CHAP_CODE      0                     /* 1 byte */#define CHAPH_CHAP_ID       (CHAPH_CHAP_CODE+1)    /* 1 byte */#define CHAPH_CHAP_LEN      (CHAPH_CHAP_ID+1)      /* 2 bytes */#define CHAPH_CHAP_VLEN     (CHAPH_CHAP_LEN+2)     /* 1 byte */#define CHAPH_CHAP_VALUE    (CHAPH_CHAP_VLEN+1)    /* Not known in advance */#define SIZEOF_CHAPH        (CHAPH_CHAP_VLEN+1)    /* Does not include the value itself */typedef struct {    u32 asynctl;    u32 magic;    u16 maxmru;    u16 authpro;    u16 qualpro;    u8  pfc;    u8  acc;} lcpconfig;typedef struct {    u32 ipaddrs;	u32 pri_dnsaddr;  /* Primary DNS server */	u32 pri_nbnsaddr; /* Primary NBNS (WINS) server */	u32 sec_dnsaddr;  /* Secondary DNS server */	u32 sec_nbnsaddr; /* Secondary NBNS (WINS) server */    u16 comprot;    u8  maxslot;    u8  comslot;	} ipcpconfig;typedef struct {    u8 terminate;    u8 configure;    u8 failure;    } pppretries;#define PPP_MAX_EVENTS 10		    /* Max events we can queue for a PPP FSM */typedef struct {    u8  next_state;	u8  actions[8];    u8  does_free;       /* == 1, the (action)() frees memory */} ppp_tran;#define NOP '\xff'typedef struct {	u8			event;	u8			layer;	m			*mp;}PPP_event;/* Each protocol layer has a function to return the PPP transition from   its state table.*/typedef ppp_tran* (*ppp_get_transition_function)(int state, int event);/*** Authentication related stuff ***//* Note: peer_auth_x refers to the peer authenticating us, and auth_peer_x          refers to us authenticating the peer.*//* PAP authentication intial state */#define PPP_AUTH_STATE_INIT      0 /* PAP FSM Events */#define PAPE_LCP_UP_PEER_AUTH    0 /* LCP is up.  Peer authenticating us */#define PAPE_LCP_DOWN            1 /* LCP is down */#define PAPE_TON                 2 /* Timeout non-zero */#define PAPE_TOZ                 3 /* Timeout zero */#define PAPE_RCA                 4 /* Received auth success from peer - we're in */#define PAPE_RCN                 5 /* Received auth fail - we failed */#ifdef PPP_AUTH_SERVER#define PAPE_LCP_UP_AUTH_PEER    6 /* LCP is up.  Authenticating Peer */#define PAPE_RCR                 7 /* Received authentication request from peer */#define PAPE_RAA                 8 /* Received authentication sucess from authenticator such                                      as RADIUS or from local database of users/secrets.                                    */#define PAPE_RAN                 9 /* Received authentication fail from authenticator such                                      as RADIUS or from local database of users/secrets.                                    */#endif/* PAP States */#define PAPS_INIT                   PPP_AUTH_STATE_INIT#define PAPS_ACK_EXPECTED           1  /* Expecting an auth ack from peer (authenticating us) */#define PAPS_AUTH_SUCCESS           2  /* We were successfully authenticated by peer or we                                          authenticated peer successfully.  Used for both cases.                                        */#ifdef PPP_AUTH_SERVER#define PAPS_REQ_EXPECTED           3  /* Expecting an auth request from peer */#define PAPS_AUTH_EXPECTED          4  /* Respecting an authenticator (RADIUS, local, etc.) to                                          tell us if the user is OK to let in.                                        */#endif#define PAPS_INVALID                255 /* Should generate a warning or assert *//** CHAP FSM Events **//* Common CHAP FSM Events (common to both directions) */#define CHAPE_LCP_UP             0 /* LCP is up.  Authenticating Peer */#define CHAPE_LCP_DOWN           1 /* LCP is down */#define CHAPE_TON                2 /* Timeout non-zero */#define CHAPE_TOZ                3 /* Timeout zero *//* Additional CHAP events for peer authenticating us */#define CHAPE_RCH                CHAPE_TOZ + 1 /* Received CHAP challenge from peer */#define CHAPE_RAP                CHAPE_RCH + 1 /* Received Auth Pass  */#define CHAPE_RAF                CHAPE_RAP + 1 /* Received Auth Fail - we failed *//* Additional CHAP events for us authenticating the peer */#define CHAPE_RSP                CHAPE_TOZ  + 1 /* Received CHAP response from peer */#define CHAPE_PAT                CHAPE_RSP  + 1 /* Pass authentication of peer.  Peer                                                   has successfully been authenticated.                                                 */#define CHAPE_FAT               CHAPE_PAT + 1   /* Fail authentication of peer.  Peer                                                   has failed being authenticated.                                                 *//* CHAP States - peer authenticates us */#define CHAPS_PEER_AUTH_INIT         PPP_AUTH_STATE_INIT#define CHAPS_CHALL_EXPECTED         1  /* We are waiting for peer's challenge */#define CHAPS_RESP_SENT              2  /* We sent a response to a challenge and                                           are waiting for authentication success                                           or failure.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -