邻居子系统
#define NUD_INCOMPLETE 0x01 发包时新建条目
#define NUD_REACHABLE 0x02
#define NUD_STALE 0x04 收到ARP请求
#define NUD_DELAY 0x08
#define NUD_PROBE 0x10
#define NUD_FAILED 0x20
#define NUD_NOARP 0x40
#define NUD_PERMANENT 0x80
#define NUD_NONE 0x00
net/ipv4/route.c
ipv4_neigh_lookup
查找路由缓存
->__ipv4_neigh_lookup
->arp_hashfn
->neigh_create(&arp_tbl, pkey, dev)
->neigh_alloc
->nud_state = NUD_NONE
->setup_timer(&n->timer, neigh_timer_handler
->tbl->constructor/arp_constructor
->dev->netdev_ops->ndo_neigh_construct
->n->parms->neigh_setup
->neigh_hash_grow
->tbl->hash
ip_finish_output2
发包
->dst_neigh_output