From owner-freebsd-arch@FreeBSD.ORG Fri Oct 29 14:29:28 2010 Return-Path: Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9A4C4106564A for ; Fri, 29 Oct 2010 14:29:28 +0000 (UTC) (envelope-from gnn@neville-neil.com) Received: from vps.hungerhost.com (vps.hungerhost.com [216.38.53.176]) by mx1.freebsd.org (Postfix) with ESMTP id 71B6B8FC08 for ; Fri, 29 Oct 2010 14:29:28 +0000 (UTC) From: George Neville-Neil Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Date: Fri, 29 Oct 2010 09:42:09 -0400 Message-Id: To: arch@freebsd.org Mime-Version: 1.0 (Apple Message framework v1081) X-Mailer: Apple Mail (2.1081) X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - vps.hungerhost.com X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - neville-neil.com X-Source: X-Source-Args: X-Source-Dir: Cc: Subject: RFC: ARP Packet Queues X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Oct 2010 14:29:28 -0000 Howdy, Please review the following patch against HEAD: http://people.freebsd.org/~gnn/head-arpqueue.diff =20 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