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

📄 ppp.h

📁 在S3C2440上运行的"电子日历“(支持平年,闰年,星期自动调整). 开发环境是RVDS2.2
💻 H
字号:
/**---------------------版权 (c)----------------------------------------------------------***
***                     作者:颜章健		                                              ***
***                     邮件:jenkinyan@163.com                                           ***
***                                                                                       ***
***---------------------File Info---------------------------------------------------------***
*** 创 建 人:			颜章健															  ***
*** 创建日期:			2008-03-08														  ***
*** 创建版本:																			  ***
*** 文件描述:						                         							  ***
***---------------------------------------------------------------------------------------***
*** 修 订 人:																			  ***
*** 修订日期:																			  ***
*** 修订版本:					      													  ***
*** 修订描述																			  ***
***---------------------------------------------------------------------------------------**/

// PPP数据帧类型
#define PPPF_IP			0x0021			// IP数据帧
#define PPPF_NCP		0x8021			// NCP数据帧
#define PPPF_PAP		0xc023			// PAP数据帧
#define PPPF_LCP		0xc021			// LCP数据帧
#define PPPF_CHAP		0xc223			// CHAP数据帧

// PPP状态
#define PPPS_CLOSED		1				// 关闭状态
#define PPPS_LCP		2				// 链路控制协商阶段阶段
#define PPPS_PAP		3				// 密码验证阶段
#define PPPS_CHAP		4				// 密码验证阶段
#define PPPS_NCP		5				// 网络控制协商阶段
#define PPPS_OPENED		6				// 打开状态


typedef	struct	_PPP_HEAD_S
{
	uint8				Addr;			// 地址域
	uint8				Ctrl;			// 控制域
	uint16				Prot;			// 协议域
}PPP_HEAD_S;

typedef	union	_PPP_HEAD
{
	PPP_HEAD_S			s;
	uint8				b[4];
}PPP_HEAD;	

typedef struct	_LINK_CFG
{
	uint8				Ip[5];			// 约定Ip[4]   用于表示Ip  是否有效,1:有效,0:无效
	uint8				Mask[5];		// 约定Mask[4] 用于表示Mask是否有效,1:有效,0:无效
	uint8				Gate[5];		// 约定Gate[4] 用于表示Gate是否有效,1:有效,0:无效
	uint8				DNS1[5];		// 约定DNS1[4] 用于表示DNS1是否有效,1:有效,0:无效
	uint8				DNS2[5];		// 约定DNS2[4] 用于表示DNS2是否有效,1:有效,0:无效
	
	char				Username[32];	// 约定UserName[0] 表示用户名长度
	char				Password[32];	// 约定Password[0] 表示密码长度
	
	uint16				MRU;			// 最大接收单元
	//uint16				MaxTerminate;	
	//uint16				MaxConfiguare;	
	//uint16				MaxFailure;		
}LINK_CFG;


typedef	struct	_LINK_LAYER
{
	uint8				State;			// PPP状态
	LINK_CFG			Config;			// 配置选项
	
	uint8				*Rxd;			// 接收指针
	uint16	 			 Rxl;			// 接收长度
	
	// 数据操作
	void	(*PutFrame)(uint16 /*Protocol*/,NET_PKT */*Packet*/);
	void	(*Close)(void);
	void	(*Open)(void);
	void	(*Hook)(uint8 */*Rxd*/, uint16 /*Rxl*/);
	
}LINK_LAYER;



// 链路层API
void	LinkLayerInit(void);
void	PppReceiveTask(void);



/********************************************************************************************
*** 					文件结束														  ***	
********************************************************************************************/ 

⌨️ 快捷键说明

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