|
楼主 |
发表于 2005-6-10 16:13:51
|
显示全部楼层
呵呵
问题更多了
在arp。c中
int arp_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt)
中, 为什么所有arp表的neigh_update后面都有一个neigh_release呢?
这一段代码
/* Update our ARP tables */
n = __neigh_lookup(&arp_tbl, &sip, dev, 0);
#ifdef CONFIG_IP_ACCEPT_UNSOLICITED_ARP
/* Unsolicited ARP is not accepted by default.
It is possible, that this option should be enabled for some
devices (strip is candidate)
*/
if (n == NULL &&
arp->ar_op == __constant_htons(ARPOP_REPLY) &&
inet_addr_type(sip) == RTN_UNICAST)
n = __neigh_lookup(&arp_tbl, &sip, dev, -1);
#endif
好像是说如果收到的arp请求的sip在arp表中没有,则默认不响应的。
这样一些free arp的处理是不是就不对了呢
多谢指教 |
|