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

📄 10_3_ppp_test.h

📁 ppp协议的功能实现部分,为了成功测试简化了部分代码. 可在keilc7.0上编译通过. 最初的代码是在摩托罗拉的68上实现的.
💻 H
字号:
/*////////////////////////////////////////////////////////////////////////////

File Name : PPP.h

Author : Rene Trenado

Location : Motorola Applications Lab, Baja California

Date Created : September 2000

Current Revision : 0.0

Notes : Definitions for the PPP implementation

////////////////////////////////////////////////////////////////////////////*/

//#include "Notation.h"
#define DWORD unsigned long
#define BYTE unsigned char
#define WORD unsigned int

#define False 0
#define True  1

typedef void (*EventProc)(BYTE c);

typedef struct {
	unsigned char	b0;
	unsigned char	b1;
	unsigned char	b2;
	unsigned char	b3;
	unsigned char	b4;
	unsigned char	b5;
	unsigned char	b6;
	unsigned char	b7;
} TByteBits;

typedef union {
	unsigned char	Value;
	TByteBits	Bits;
} TByte;
////////////////////////
#ifndef	NULL
#define NULL	0
#endif

#define ESC	0x7D
#define END	0x7E

#define	REQ		1
#define ACK		2
#define NAK		3
#define REJ		4
#define TERMINATE	5
#define TERMINATE_ACK	6
/////////////////////////////////
extern volatile BYTE PPPStatus;

#define 	IsESC  	0x01		// Previous character received was a ESC char
#define 	ReSync 	0x04		// Re Synchronize to avoid inconplete IP frame reception
#define 	IsFrame	0x08		// A full packet
#define 	ByteRx 	0x10		// Receive a Byte
#define		LinkOn	0x20		// PPP Link is On
//////////////////////////////


#define TCP	0x06
#define UDP	0x11
#define ICMP	0x01


extern BYTE IPAddress[4];

#define PPP_BUFFER_SIZE	88

#define LCP_PACKET	0xC021
#define PAP_PACKET	0xC023
#define CHAP_PACKET	0xC223
#define IPCP_PACKET	0x8021
#define IP_DATAGRAM	0x0021

volatile	char PORTD;

/////////////////////////////////////
typedef struct {
	WORD Framing;
	WORD Protocol;
	BYTE Request;
	BYTE Id;
	BYTE LengthHigh;
	BYTE Length;
	BYTE FirstOption;
	BYTE FirstOptionLength;
	BYTE Param;
	BYTE Data;
} PPPFrame;


#define PPPINITFCS16    0xffff  /* Initial FCS value */
#define PPPGOODFCS16    0xf0b8  /* Good final FCS value */

////////////// Functions to Export ////////
void PPPInit (void);
BYTE *PPPGetInputBuffer (void);
BYTE *PPPGetOutputBuffer (void);
void ProcPPPReceive (register BYTE c);
void ProcPPPSend (BYTE *Buffer, BYTE len);
WORD PPPGetChecksum (register unsigned char *cp, register int len);
void SendPAPPacket (BYTE Action, BYTE ID, char* user, char* password);
void Move (BYTE *src, BYTE *dest, register numBYTEs);
void PPPEntry (void);
void PPPTerminate (void);
void PPPSendVoidLCP (void);
void WriteComm (Byte );





⌨️ 快捷键说明

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