[Ns-developers] ARP pending queue

Guillaume Vu-Brugier gvubrugier at gmail.com
Thu Apr 3 09:55:58 PDT 2008


Hi,

I recently spent a lot of time debugging a ns-3 program involving TCP and
UDP flows over a CSMA network.
The problem was that 2 flows were competing at the beginning of the
simulation and a TCP SYN segment was lost during the ARP address resolution
step, thus delaying this flow for 3s.

I believe that the ARP implementation should buffer more than one outgoing
packets while waiting for the ARP reply :
The Linux kernel seems to do this (with a default 3-packet buffer configured
in /proc/sys/net/ipv4/neigh/DEV/unres_qlen [1]) and the Omnet++ INET
framework too [2].

The attached patch modifies arp-cache and arp-l3-protocol to provide such a
functionality. It is not complete nor thoroughly tested but solved my
initial problem, comments are welcomed.

Refs.
[1] http://lartc.org/howto/lartc.kernel.obscure.html - 13.2.3 'Neighbor
policy'
[2] http://www.omnetpp.org/doc/INET/walkthrough/tutorial.html#pendingqueue

--
Guillaume


More information about the Ns-developers mailing list