Linux 邻居子系统:ARP 与 NDISC 协议详解
1. ARP 协议处理
1.1 arp_xmit 方法
arp_xmit() 方法的唯一作用是通过 NF_HOOK() 宏调用 dev_queue_xmit() 。示例代码如下:
arp_xmit(skb);
1.2 arp_rcv 方法:处理 ARP 数据包
在 IPv4 中, arp_rcv() 方法负责处理 ARP 数据包。以下是该方法的详细代码:
static int arp_rcv(struct sk_buff *skb, struct net_device *dev,
struct packet_type *pt, struct net_device *orig_dev)
{
const struct arphdr *arp;
if (dev->flags & IFF_NOARP ||
skb->pkt_type == PACKET_OTHERHOST ||
skb->pkt_type == PACKET_LOOPBACK)
goto freeskb;
skb = skb_share_check(skb, GFP_AT
超级会员免费看
订阅专栏 解锁全文
56

被折叠的 条评论
为什么被折叠?



