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

📄 arp.h.svn-base

📁 数字广播系统的开发源码
💻 SVN-BASE
字号:
/*
 */

/* arp */

/* arppacket->HardwareType */
#define ARP_HARDWARE_TYPE_ETHER 0x0001

/* arppacket->ProtocolType */
#define ARP_PROTOCOL_TYPE_IP	0x0800

#define ARP_HARDWARE_ADDR_LEN_ETHER	ETHER_ADDR_LEN
#define ARP_PROTOCOL_ADDR_LEN_IP	sizeof(IP_ADDR)

/* arppacket->type */
#define ARP_TYPE_ARP_REQUEST	0x0001
#define ARP_TYPE_ARP_REPLY		0x0002
#define ARP_TYPE_RARP_REQUEST	0x0003
#define ARP_TYPE_RARP_REPLY		0x0004

#define ARP_ENTRY_MAX_NUM		4		/* must <= 255 */
#define ARP_ENTRY_TIME_OUT		0xFFFF	/* the time for refresh a entry */

/* arp entry */
struct SARPEntry
{
	unsigned long   IPAddr;
	unsigned char	EtherAddr[ETHER_ADDR_LEN];

	/* decrease every time trick. when it hit to 0,
	remove it from arp entry tabel. if time = 0 indicate
	this entry is invalid*/
	unsigned int time;
};

/* arp packet struct */
struct SARPPacket
{
	/* header */
	unsigned int HardwareType;
	unsigned int ProtocolType;
	unsigned char HardWareAddrLen;
	unsigned char ProtocolAddrLen;
	unsigned int type;				/* refer to arp type */

	/* arp content */
	unsigned char	EtherScrAddr[ETHER_ADDR_LEN];
	unsigned long	IPScrAddr;
	unsigned char	EtherDestAddr[ETHER_ADDR_LEN];
	unsigned long	IPDestAddr;
};


void ARPInit() reentrant;
struct SMemHead xdata * ARPQuery(struct SNetIf xdata *NetIf,unsigned long DestIP) reentrant;
struct SMemHead xdata *ARPInput(struct SMemHead xdata *MemHead, struct SNetIf xdata *NetIf) reentrant;
void ARPAddEntry(struct SARPPacket xdata *ARPPacket)  reentrant;
unsigned char ARPFind(unsigned char EtherAddr[],unsigned long IPAddr)  reentrant;
void ARPTimer()  reentrant;

⌨️ 快捷键说明

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