Monitoring the IPv4 Neighbor Table

From: Jim Murphy
Date: Tue Jul 01 2008 - 16:02:25 EST


Hi,

I am trying to use a netlink socket to monitor the RTM_XXXNEIGH messages. When I make a direct request for messages via:

req.nlh.nlmsg_type = RTM_GETNEIGH

I get the neighbor table as expected.

However, I don't get subsequent updates to the neighbor table as ARP entries are added and aged.

This differs from the link, address and route entries, for which I get updates whenever these objects are configured.

Note, I have set the the socket to bind on all nl_groups.

I suspect the issue might be that arp entries are not a result of configuration to the kernel via the routing socket and hence there are no associated RTNETLINK messages created.

Assuming this is the case, short of actually opening up a raw socket to receive all ARP packets (as seems to be the technique used by iproute2-2.6.25/misc/arpd.c) and implementing my own ARP cache, is there some mechanism available to monitor the state of the neighbor table in the kernel (sort of the obvious, inefficient and untimely method of polling)?

Thanks,

Jim
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html