Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Dec 2006 19:37:33 +0300
From:      Ruslan Ermilov <ru@freebsd.org>
To:        Robert Watson <rwatson@freebsd.org>
Cc:        Perforce Change Reviews <perforce@freebsd.org>, Gleb Smirnoff <glebius@freebsd.org>, Andre Oppermann <andre@freebsd.org>, Paolo Pisati <piso@freebsd.org>
Subject:   Re: PERFORCE change 111230 for review
Message-ID:  <20061207163733.GC39204@rambler-co.ru>
In-Reply-To: <20061207161434.O50906@fledge.watson.org>
References:  <200612062319.kB6NJgsq031755@repoman.freebsd.org> <20061207110225.GU32700@FreeBSD.org> <4578070A.2030609@freebsd.org> <20061207142254.GA1195@tin.it> <20061207161434.O50906@fledge.watson.org>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
On Thu, Dec 07, 2006 at 04:16:41PM +0000, Robert Watson wrote:
> On Thu, 7 Dec 2006, Paolo Pisati wrote:
> 
> >Then, after a discussion on irc, pull the plug on any present (and future) 
> >hackery & half-baked solution, and declare in kernel libalias incompatible 
> >with tso.
> 
> This seems silly -- why is it not compatible?  Perhaps I misunderstand, but 
> I thought TSO passed down valid TCP/IP packets, they just happen to be 
> really long, and will be post-processed by the hardware into a series of 
> shorter segments with the same header properties.  Imagine the ethernet 
> device as a "router" that's performing TCP fragmentation for you, rather 
> than IP fragmentation.
> 
It's a limitation of the current libalias code which grew
up on top of userland version -- it doesn't currently know
how to traverse mbufs, and instead requires a contiguous
piece of (packet) data to do its job.

: #ifdef _KERNEL
: /*
:  * m_megapullup() function is a big hack (only used in ng_nat and ipfw+nat).
:  *
:  * It allocates an mbuf with cluster and copies the whole
:  * chain into cluster, so that it is all contigous and the
:  * whole packet can be accessed via char pointer.
:  * This is required, because libalias doesn't have idea
:  * about mbufs.
:  * 
:  * On success, m_megapullup returns an mbuf with cluster
:  * containing the input packet, on failure NULL.
:  * In both cases, the input packet is consumed.
:  */


Cheers,
-- 
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)

iD8DBQFFeENNqRfpzJluFF4RAgjZAJ9KK4I+XjXBUHw/mRI/AwsSk2DjKACcCTAe
1NPsrs9XfJsrFs0PmjOaPGU=
=j54o
-----END PGP SIGNATURE-----
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061207163733.GC39204>