Date: Mon, 1 Nov 2010 15:20:46 -0400 From: George Neville-Neil <gnn@freebsd.org> To: arch@freebsd.org Cc: net@freebsd.org Subject: RFC: Updated ARP Queue patch... Message-ID: <8C96F018-EA61-4C38-AC9A-148D1DC06193@freebsd.org>
next in thread | raw e-mail | index | archive | help
Howdy, This is marked as "Updated" because I first proposed this on arch@ but = am now sending it to a wider audience as I'm hoping to commit it in the near future. Please review the following patch against HEAD: http://people.freebsd.org/~gnn/head-arpqueue2.diff This patch makes two changes to the ARP code: 1) It adds a sysctl configurable queue of packets that are held until an = ARP reply is received or timed out. net.link.ether.inet.maxhold Having the queue addresses a problem in modern systems where programs = that use connectionless=20 protocols for communication will suffer from dropping many packets when = they start up or when an ARP entry moves. 2) Makes the time we wait for an arp reply configurable via another = sysctl. net.link.ether.inet.wait The old, pre 8.0, ARP code would run the timer once per second. The new ARP code sets a timeout of 20 seconds on each entry. Neither value was = specified in RFC 826. As a matter of fact, RFC 826 had this to say about = timeouts: "It may be desirable to have table aging and/or timeouts. The implementation of these is outside the scope of this protocol." This new code does not change the default value of either the arpqueue = (which was always 1 packet) nor does it change the new value of the ARP down = timeout. I have a different patch for 7, which I will propose after I can get = this in to HEAD and MFC'd to 8. Best, George
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8C96F018-EA61-4C38-AC9A-148D1DC06193>