Discussion:
What is the state of TCP offload support in the kernel?
(too old to reply)
p***@klos.com
2008-01-02 18:29:03 UTC
Permalink
What is the current state of TCP offload support in the NetBSD kernel? I
don't mean TCP checksumming or LSO, but actually allowing the adapter to
manage the entire TCP connection?

I'm currently porting the driver for a TOE card to NetBSD (from FreeBSD), and
I know the manufacturer wants TOE support in NetBSD as well, but I couldn't
find any refernece in the code. Sorry if I didn't find any obvious info
searching the tech-net archives.

Thanks,

Patrick
========= For LAN/WAN Protocol Analysis, check out PacketView Pro! =========
Patrick Klos Email: ***@klos.com
Network/Embedded Software Engineer Web: http://www.klos.com/
Klos Technologies, Inc. Phone: 603-714-0195
============================================================================

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Matt Thomas
2008-01-03 01:52:30 UTC
Permalink
Post by p***@klos.com
What is the current state of TCP offload support in the NetBSD
kernel? I
don't mean TCP checksumming or LSO, but actually allowing the
adapter to
manage the entire TCP connection?
I'm currently porting the driver for a TOE card to NetBSD (from FreeBSD), and
I know the manufacturer wants TOE support in NetBSD as well, but I couldn't
find any refernece in the code. Sorry if I didn't find any obvious info
searching the tech-net archives.
Thanks,
That's because there is no support. The problem is a lot of TCP/IP/
UDP state
is global. If it was per-interface, this would be a lot less of an
issue.
But there still needs to be some interaction with the kernel.

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Bill Stouder-Studenmund
2008-01-04 01:08:13 UTC
Permalink
Post by p***@klos.com
What is the current state of TCP offload support in the NetBSD kernel? I
don't mean TCP checksumming or LSO, but actually allowing the adapter to
manage the entire TCP connection?
I'm currently porting the driver for a TOE card to NetBSD (from FreeBSD), and
I know the manufacturer wants TOE support in NetBSD as well, but I couldn't
find any refernece in the code. Sorry if I didn't find any obvious info
searching the tech-net archives.
As Matt noted, we don't support this yet. What did FreeBSD have to add to
make it work?

Take care,

Bill
p***@klos.com
2008-01-07 13:18:02 UTC
Permalink
Post by Bill Stouder-Studenmund
What is the current state of TCP offload support in the NetBSD kernel? I=
don't mean TCP checksumming or LSO, but actually allowing the adapter to
manage the entire TCP connection?
I'm currently porting the driver for a TOE card to NetBSD (from FreeBSD),=
and
I know the manufacturer wants TOE support in NetBSD as well, but I couldn=
't
find any refernece in the code. Sorry if I didn't find any obvious info=
searching the tech-net archives.
As Matt noted, we don't support this yet. What did FreeBSD have to add to
make it work?
Thanks for the replies guys.

I don't know what FreeBSD is doing in their TCP stack to support TCP
Offload - I haven't looked at that part of FreeBSD. I suppose once I
get the NIC driver working (without memory leaks), I could delve into
the a little bit. It sounds like adding this to the NetBSD TCP stack
might be a bit more cumbersome than I would hope?

Patrick
========= For LAN/WAN Protocol Analysis, check out PacketView Pro! =========
Patrick Klos Email: ***@klos.com
Network/Embedded Software Engineer Web: http://www.klos.com/
Klos Technologies, Inc. Phone: 603-714-0195
============================================================================

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Thor Lancelot Simon
2008-01-07 18:48:41 UTC
Permalink
Post by p***@klos.com
I don't know what FreeBSD is doing in their TCP stack to support TCP
Offload - I haven't looked at that part of FreeBSD. I suppose once I
get the NIC driver working (without memory leaks), I could delve into
the a little bit. It sounds like adding this to the NetBSD TCP stack
might be a bit more cumbersome than I would hope?
In general, adding "TCP Offload" support to a TCP stack is cumbersome;
never mind that vendors really can't agree among themselves (or even the
literature for a single vendor's different products) what counts as
"TCP Offload". It gets as conservative as segmentation offload for send
(which we do support -- look at the wm or bge drivers) and as aggressive
as "you tell me a range of ports I can use and I manage the whole
connection and hand you a bytestream").

10Gb adapters typically do have a whole host of features we could support
but don't, though, short of full offload of all TCP processing. The most
obvious one is header splitting on receive, for zero-copy TCP receive to
userspace. Intel 1Gb adapters have this too, at least the newer models
do, and it's documented. Another is packet classification in the NIC, so
you can run multiple instances of your host TCP stack and hand packets to
each one in a cache-efficient way -- see the Sun papers on their "Crossbow"
architecture to get an idea what this means.

Thor

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Loading...