📄 ppppacket.c
字号:
#include "PPP.h"
#include "UART.h"
extern BYTE InBuffer [PPP_BUFFER_SIZE + 1]; //PPP数据输入缓冲
extern BYTE OutBuffer[PPP_BUFFER_SIZE + 1]; //PPP数据输出缓冲
/////////////////////////////////////////////////////////////
/*
LCP的协商最大传送单元
*/
/////////////////////////////////////////////////////////////
void LCPREQPacket (WORD MRU)
{
BYTE MRUp[2];
MRUp[0]=MRU>>8;
MRUp[1]=MRU;
OutBuffer [0] = PPP_ADD; //地址域
OutBuffer [1] = PPP_COMTROL; //控制域
OutBuffer [2] = 0xC0; //协议域
OutBuffer [3] = 0x21;
OutBuffer [4] = LCP_CONFIG_REQUEST; //代码域
OutBuffer [5] = 0x01; //标识域
OutBuffer [6] = 0x00; //长度
OutBuffer [7] = 0x14;
OutBuffer [8] = LCP_OPT_MRU; //类型
OutBuffer [9] = 0x04; //长度
OutBuffer [10] = MRUp[0]; //数据
OutBuffer [11] = MRUp[1];
OutBuffer [12] = LCP_OPT_ASYNC_MAP; //类型
OutBuffer [13] = 0x06; //长度
OutBuffer [14] = 0x00; //数据
OutBuffer [15] = 0x00;
OutBuffer [16] = 0x00;
OutBuffer [17] = 0x00;
OutBuffer [18] = LCP_OPT_MAGIC; //类型
OutBuffer [19] = 0x06; //长度
OutBuffer [20] = local_magic_num[0]; //数据
OutBuffer [21] = local_magic_num[1];
OutBuffer [22] = local_magic_num[2];
OutBuffer [23] = local_magic_num[3];
ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
}
/////////////////////////////////////////////////////////////
/*
LCP的协商魔术字
*/
/////////////////////////////////////////////////////////////
void MagicNumPacket (void)
{
OutBuffer [0] = PPP_ADD; //地址域
OutBuffer [1] = PPP_COMTROL; //控制域
OutBuffer [2] = 0xC0; //协议域
OutBuffer [3] = 0x21;
OutBuffer [4] = LCP_CONFIG_REQUEST; //代码域
OutBuffer [5] = 0x01; //标识域
OutBuffer [6] = 0x00; //长度
OutBuffer [7] = 0x0A;
OutBuffer [8] = LCP_OPT_MAGIC; //类型
OutBuffer [9] = 0x06; //长度
OutBuffer [10] = local_magic_num[0]; //数据
OutBuffer [11] = local_magic_num[1];
OutBuffer [12] = local_magic_num[2];
OutBuffer [13] = local_magic_num[3];
ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
}
/////////////////////////////////////////////////////////////
/*
LCP的协议拒绝
*/
/////////////////////////////////////////////////////////////
void RejectProtocol (BYTE *InBuffer)
{
OutBuffer [0] = PPP_ADD; //地址域
OutBuffer [1] = PPP_COMTROL; //控制域
OutBuffer [2] = 0xC0;
OutBuffer [3] = 0x21;
OutBuffer [4] = LCP_PROTOCOL_REJECT; //代码域
OutBuffer [5] = 20; //标识域
OutBuffer [6] = 0; //长度
OutBuffer [7] = InBuffer[7] + 6;
Move (&InBuffer[2], &OutBuffer[8], InBuffer [7] + 2);
ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
}
/////////////////////////////////////////////////////////////
/*
IPCP的IP地址分配请求
*/
/////////////////////////////////////////////////////////////
void IPAssignPacket (void)
{
OutBuffer [0] = PPP_ADD; //地址域
OutBuffer [1] = PPP_COMTROL; //控制域
OutBuffer [2] = 0x80; //协议域
OutBuffer [3] = 0x21;
OutBuffer [4] = IPCP_CONFIG_REQUEST; //代码域
OutBuffer [5] = 0x01; //标识域
OutBuffer [6] = 0x00;
OutBuffer [7] = 0x0A; //长度
OutBuffer [8] = 0x03; //类型
OutBuffer [9] = 0x06; //长度
OutBuffer [10] = 0x00; //数据
OutBuffer [11] = 0x00;
OutBuffer [12] = 0x00;
OutBuffer [13] = 0x00;
ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -