From owner-freebsd-net@FreeBSD.ORG Sun Sep 26 06:45:02 2010 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D024A106564A; Sun, 26 Sep 2010 06:45:02 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from out-0.mx.aerioconnect.net (outk.internet-mail-service.net [216.240.47.234]) by mx1.freebsd.org (Postfix) with ESMTP id AC71E8FC0A; Sun, 26 Sep 2010 06:45:02 +0000 (UTC) Received: from idiom.com (postfix@mx0.idiom.com [216.240.32.160]) by out-0.mx.aerioconnect.net (8.13.8/8.13.8) with ESMTP id o8Q6W4as030421; Sat, 25 Sep 2010 23:32:05 -0700 X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (h-67-100-89-137.snfccasy.static.covad.net [67.100.89.137]) by idiom.com (Postfix) with ESMTP id 521AC2D6011; Sat, 25 Sep 2010 23:32:03 -0700 (PDT) Message-ID: <4C9EE905.5090701@freebsd.org> Date: Sat, 25 Sep 2010 23:32:37 -0700 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.9) Gecko/20100915 Thunderbird/3.1.4 MIME-Version: 1.0 To: Andre Oppermann References: <4C9DA26D.7000309@freebsd.org> <4C9DB0C3.5010601@freebsd.org> In-Reply-To: <4C9DB0C3.5010601@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.67 on 216.240.47.51 Cc: FreeBSD Net Subject: Re: mbuf changes X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Sep 2010 06:45:02 -0000 On 9/25/10 1:20 AM, Andre Oppermann wrote: > On 25.09.2010 09:19, Julian Elischer wrote: >> over the last few years there has been a bit of talk about some >> changes people want to see in mbufs >> for 9.x >> extra fields, changes in the way things are done, etc. >> >> If you are one of these people, pipe up now.. >> >> to get the ball rolling.. >> >> * Add a field for the current FIB.. currently this is 4 bits stolen >> from the flags. >> what would be a good width: 8,12,16,24,32 bits? >> this would allow setfib to use numbers greater than 16 (the current >> max) > > 16 bits for 65535 FIB's should be sufficient. More than that seems > really > excessive. > >> * Preallocating some room for some number of tags before we start >> allocating >> (expensively) new ones. > > Within the mbuf? Or at external and attached mbuf allocation time? > Tags > are variable width and such not really suitable for pre-allocation. yes possibly within.. thre could be for example a reaserver 20 byte field and if it doesn't fit in that we go to expensive tags. I'm just waving my arms here. > >> * dynamically working out what the front padding size should be.. >> per session.. i.e. >> when a packet is sent out and needs to be adjusted to add more >> headers, the originating >> socket should be notified, or maybe the route should have this >> information... >> so that future packets can start out with enough head room. >> (this is not strictly to do with mbufs but might need some added >> field to point to the structure >> that needs to be >> updated. > > We already have "max_linkhdr" that specifies how much space is left > for prepends at the start of each packet. The link protocols set > this and also IPSec adds itself in there if enabled. If you have > other encapsulations you should make them add in there as well. this doesn't take into account tunneling and encapsulation. we could do a lot better than this. especially on a per-route basis. if the first mbuf in a session had a pointer to the relevent rtentry, then as it is processed that could be updated.. just an idea.