📄 arp.h
字号:
#ifndef arp_H_
#define arp_H_
#include "main.h"
#define REMOTE_IP_NUM 1 /* 远程IP地址数目 */
/* ARP分组格式 */
typedef struct
{
UWORK16 usHTYPE; /* 硬件类型 */
UWORK16 usPTYPE; /* 协议类型 */
UWORK8 ucHLEN; /* 硬件长度 */
UWORK8 ucPLEN; /* 协议长度 */
UWORK16 usOPER; /* 操作 */
UWORK8 ucaSHA[MAC_LEN]; /* 源硬件地址 */
UWORK8 ucaSPA[IP_LEN]; /* 源协议地址 */
UWORK8 ucaTHA[MAC_LEN]; /* 目标硬件地址 */
UWORK8 ucaTPA[IP_LEN]; /* 目标协议地址 */
}ST_ARP_FORMAT;
/* ARP高速缓存 */
typedef struct
{
UWORK8 ucIPValible; /* IP有效 */
UWORK8 ucIpOrRouter; /* 是否本地网段 */
UWORK8 ucStatus; /* 状态 */
UWORK8 ucaIP[IP_LEN]; /* IP地址 */
UWORK8 ucaArpIp[IP_LEN]; /* ARP指向的IP */
UWORK8 ucaMAC[MAC_LEN]; /* MAC地址 */
UWORK16 usRemotePort; /* 远程端口号 */
}ST_ARP_CACHE;
/* ARP请求的各个阶段 */
enum
{
ARP_FIRST_REQUEST, /* ARP第一次请求 */
ARP_SECOND_REQUEST, /* ARP再次请求 */
ARP_OLD /* ARP老化 */
};
extern bit ARPFinishFlag; // ARP完成标志
extern bit IPConflitTestFlag; // IP冲突测试
extern bit IPOrMacConfiltFlag; // IP,MAC冲突标志
extern bit StartConfiltLedFlag; // 冲突时启动快闪
/************************************************************************/
extern xdata ST_ARP_FORMAT ArpRequestFormat; // ARP帧请求格式
extern xdata ST_ARP_FORMAT ArpAnswerFormat; // ARP应答格式
extern xdata ST_ARP_CACHE ArpCache_Buf[REMOTE_IP_NUM]; // ARP高速缓存
extern UWORK8 IpModeNum; // 在不同模式下IP数据不一样
extern UWORK8 ArpCachePoniter; // ARP高速缓存指针
extern xdata UWORK8 gucARPOddNum; // 老化后,ARP完不成的次数
extern xdata UWORK8 ArpPhases; //ARP阶段
extern void StopArpCounter(void);
extern void ArpProcess(void);
extern void ArpStartRequest(UWORK8 *pucaIP);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -