亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? arp.c

?? s3c44b0開發板tftp調試代碼,芯片rtl8019
?? C
字號:
#include "../../inc/config.h"
#include "skbuff.h"
#include "eth.h"
#include "arp.h"
#include "utils.h"

#ifdef	TFTP_DOWNLOAD_SUPPORT

#define ARP_CACHE_SIZE   16

typedef struct arp_entry {
	unsigned char ar_ha[ETH_ALEN];
	unsigned long ar_ip;
} arp_entry;

static arp_entry arp_entrys;
static arp_entry arp_cache[ARP_CACHE_SIZE];
static int arp_chche_cur = 0;

int arp_init(void)
{
	memset(&arp_entrys, 0, sizeof(arp_entry));
	memset(arp_cache, 0, sizeof(arp_entry) * ARP_CACHE_SIZE);

	return 0;
}

int arp_add_entry(unsigned char *ha, unsigned long ip)
{
	memcpy(arp_entrys.ar_ha, ha, ETH_ALEN);
	arp_entrys.ar_ip = htonl(ip);

	return 0;
}

int arp_add_cache(unsigned char *ha, unsigned long ip)
{
	int i;

	for (i = 0; i < ARP_CACHE_SIZE; i++) {
		if (ip == arp_cache[i].ar_ip)
			break;
	}

	if (i == ARP_CACHE_SIZE) {
		i = arp_chche_cur;
//		arp_chche_cur = (arp_chche_cur + 1) % ARP_CACHE_SIZE;
		arp_chche_cur++;
		if(arp_chche_cur>=ARP_CACHE_SIZE)
			arp_chche_cur = 0;
	}

	memcpy(arp_cache[i].ar_ha, ha, ETH_ALEN);
	arp_cache[i].ar_ip = ip;

	return 0;
}

int arp_send_req(unsigned long ip)
{
	struct sk_buff *skb;
	struct arphdr *arp_req;	
	unsigned char broadcast[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};	

	skb = alloc_skb(ETH_HLEN + sizeof(struct arphdr));
	eth_skb_reserve(skb);
	arp_req = (struct arphdr *)skb_put(skb, sizeof(struct arphdr));

	arp_req->ar_hrd = htons(ARPHRD_ETHER);
	arp_req->ar_pro = htons(ETH_P_IP);
	arp_req->ar_hln = 0x06;
	arp_req->ar_pln = 0x04;
	arp_req->ar_op = htons(ARPOP_REQUEST);	
	memcpy((unsigned char *)arp_req->ar_sha, arp_entrys.ar_ha, ETH_ALEN);
	arp_req->ar_sip = arp_entrys.ar_ip;	
	memset((unsigned char *)arp_req->ar_tha, 0x00, ETH_ALEN);
	arp_req->ar_tip = htonl(ip);

	eth_send(skb, broadcast, ETH_P_ARP);

	return 0;
}

int arp_send_rsp(struct arphdr *arp_hdr)
{
	struct sk_buff *skb;
	struct arphdr *arp_rsp;	
	
	skb = alloc_skb(ETH_HLEN + sizeof(struct arphdr));
	eth_skb_reserve(skb);
	arp_rsp = (struct arphdr *)skb_put(skb, sizeof(struct arphdr));

	arp_rsp->ar_hrd = htons(ARPHRD_ETHER);
	arp_rsp->ar_pro = htons(ETH_P_IP);
	arp_rsp->ar_hln = 0x06;
	arp_rsp->ar_pln = 0x04;
	arp_rsp->ar_op = htons(ARPOP_REPLY);
	memcpy((unsigned char *)arp_rsp->ar_sha, arp_entrys.ar_ha, ETH_ALEN);
	arp_rsp->ar_sip = arp_hdr->ar_tip;
	memcpy((unsigned char *)arp_rsp->ar_tha, (unsigned char *)arp_hdr->ar_sha, ETH_ALEN);
	arp_rsp->ar_tip = arp_hdr->ar_sip;

	eth_send(skb, arp_hdr->ar_sha, ETH_P_ARP);

	return 0;
}

int arp_get_eth_addr(unsigned long ip, unsigned char *ha)
{
	int i;

	for (i = 0; i < ARP_CACHE_SIZE; i++) {
		if (htonl(ip) == arp_cache[i].ar_ip) {
			memcpy(ha, arp_cache[i].ar_ha, ETH_ALEN);
			break;
		}
	}

	if (i == ARP_CACHE_SIZE) {
		arp_send_req(ip);
		return -1;
	}

	return 0;
}

int arp_rcv_packet(struct sk_buff *skb)
{
	struct arphdr *arp_hdr = (struct arphdr *)(skb->data);

	if (arp_hdr->ar_tip != arp_entrys.ar_ip)
		return 0;

	if (arp_hdr->ar_op == htons(ARPOP_REQUEST))
		arp_send_rsp(arp_hdr);
	arp_add_cache(arp_hdr->ar_sha, arp_hdr->ar_sip);

	return 0;
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品麻豆| 综合久久一区二区三区| 精品视频999| 欧美午夜精品久久久久久孕妇| 成人av影视在线观看| 成人激情av网| 99精品一区二区| 91成人国产精品| 欧美日韩视频一区二区| 91精品在线免费观看| 日韩视频一区在线观看| 久久综合狠狠综合久久综合88 | 99麻豆久久久国产精品免费| 国产成人高清视频| 粉嫩蜜臀av国产精品网站| 成人夜色视频网站在线观看| 99久久免费国产| 欧美在线影院一区二区| 欧美日韩另类国产亚洲欧美一级| caoporm超碰国产精品| 99热精品国产| 欧美一激情一区二区三区| 国产日韩视频一区二区三区| 国产精品国产馆在线真实露脸 | 日韩**一区毛片| 乱一区二区av| 国产在线视视频有精品| 成人99免费视频| 欧美日韩一级黄| 日韩精品中午字幕| 精品国产乱码久久久久久老虎| 国产亚洲欧美一级| 一区二区三区影院| 国产真实乱偷精品视频免| 91在线一区二区三区| 欧美精品一级二级| 国产清纯美女被跳蛋高潮一区二区久久w | 91久久精品一区二区| 欧美日韩综合色| 久久久国产一区二区三区四区小说| 亚洲视频你懂的| 极品少妇一区二区三区精品视频| aa级大片欧美| 国产亚洲欧美日韩在线一区| 亚洲自拍都市欧美小说| 成人免费精品视频| 日韩一区二区在线免费观看| 尤物av一区二区| 国产成人午夜99999| 日韩免费成人网| 亚洲福利国产精品| 不卡av电影在线播放| 精品国产区一区| 日韩av一区二区三区四区| 色8久久人人97超碰香蕉987| 久久久久久久精| 久久99精品久久久久久动态图| 欧美视频自拍偷拍| 亚洲老妇xxxxxx| 99视频精品免费视频| 中文字幕av一区二区三区免费看 | 成人一级视频在线观看| 欧美一区二区成人6969| 亚洲国产一区二区视频| 在线欧美日韩国产| 亚洲另类一区二区| 色哟哟国产精品免费观看| 国产精品三级av在线播放| 韩国在线一区二区| 久久欧美中文字幕| 国产麻豆精品在线观看| 26uuu亚洲综合色| 国产传媒一区在线| 国产亚洲精品aa| 成人免费av在线| 中文字幕日本不卡| 91蝌蚪porny九色| 亚洲精品一卡二卡| 欧美亚洲一区三区| 亚洲国产欧美日韩另类综合| 欧美日韩亚州综合| 蜜臀av一区二区| 日韩三区在线观看| 国产乱码精品一区二区三区五月婷| 精品国产一区二区三区忘忧草| 捆绑变态av一区二区三区| 久久久天堂av| 99国产一区二区三精品乱码| 亚洲小少妇裸体bbw| 欧美一区二区观看视频| 国产一区二区看久久| 欧美激情一区二区三区蜜桃视频| av色综合久久天堂av综合| 亚洲人一二三区| 在线成人高清不卡| 国产麻豆成人精品| 亚洲日本丝袜连裤袜办公室| 欧美日韩一区二区三区不卡| 琪琪一区二区三区| 中文字幕一区二区三区在线观看| 在线观看不卡一区| 精品一区精品二区高清| 日韩美女视频一区二区 | 国产精品麻豆一区二区| 色哟哟亚洲精品| 老司机一区二区| 亚洲三级在线免费| 日韩欧美中文字幕精品| 99久久精品国产一区| 天堂一区二区在线免费观看| 久久久国产午夜精品| 欧美日韩精品高清| 国产成人免费视频网站 | 蜜桃在线一区二区三区| 国产精品伦理一区二区| 91精品国产综合久久香蕉的特点 | eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日本免费新一区视频| 国产精品国产三级国产普通话蜜臀| 欧美精品 日韩| 粉嫩13p一区二区三区| 日韩国产精品久久久| 亚洲人吸女人奶水| 欧美xxx久久| 精品国产91九色蝌蚪| 99久久伊人网影院| 国产一区二区三区蝌蚪| 一区二区三区四区不卡在线| 久久精品一二三| 日韩欧美aaaaaa| 欧美喷水一区二区| 在线免费亚洲电影| av在线一区二区| 国产不卡免费视频| 日本91福利区| 亚洲午夜一区二区| 国产精品久久福利| 欧美激情在线免费观看| 久久先锋影音av鲁色资源网| 欧美一二区视频| 51精品视频一区二区三区| 91成人免费电影| 色综合久久综合网97色综合| 成人国产一区二区三区精品| 国产精品一级片在线观看| 午夜成人在线视频| 一区二区三区中文免费| 中文字幕精品在线不卡| 久久先锋影音av鲁色资源 | 亚洲最新在线观看| 国产精品第四页| 亚洲欧洲精品成人久久奇米网| 26uuu国产在线精品一区二区| 欧美精品粉嫩高潮一区二区| 欧美剧在线免费观看网站| 欧美一区二区三区人| 欧美一区二区日韩| 精品久久久久99| 日韩一区二区精品在线观看| 日韩欧美一区二区视频| 精品日产卡一卡二卡麻豆| 欧美变态tickle挠乳网站| 久久久久国产精品免费免费搜索| 久久久久久久国产精品影院| 中文字幕巨乱亚洲| 亚洲永久精品大片| 蜜臀av一区二区三区| 国产精品一区二区不卡| 成人福利视频在线看| 97精品国产97久久久久久久久久久久| 99久久国产免费看| 欧美在线观看视频一区二区三区| 欧美视频在线观看一区二区| 欧美一区二区久久久| 精品欧美乱码久久久久久 | 99精品在线免费| 欧美日韩国产系列| 久久色中文字幕| 亚洲日本在线a| 美女mm1313爽爽久久久蜜臀| 国产一区二区三区黄视频| 成人av在线看| 欧美人动与zoxxxx乱| 欧美xxxxxxxxx| 亚洲欧美另类图片小说| 捆绑调教美女网站视频一区| 成人av资源站| 3751色影院一区二区三区| 欧美国产激情一区二区三区蜜月| 亚洲精品综合在线| 国产综合色精品一区二区三区| 色综合欧美在线| 精品电影一区二区三区| 国产精品激情偷乱一区二区∴| 亚洲午夜精品在线| 成人一二三区视频| 欧美videossexotv100| 亚洲婷婷综合久久一本伊一区| 美女www一区二区| 成人av在线一区二区|