IP checksum offloading with intel 82559 fast ethernet.

2000-06-20 Thread Dave Preece

Apparently (http://developer.intel.com/design/network/82559.htm) the i82559
can offload TCP and UDP checksums. A quick peruse of
/usr/src/sys/pci/if_fxp.c shows we are not currently using this - which is
fair enough since the driver also has to work with 82557 and 82558. 

It strikes me that due to the driver architecture (i.e. the IP packet is
formed way before it gets to ip_fxp) that we couldn't use this facility -
even if it does have some potentially excellent throughput implications.
Maybe there's a possibility for treating it as an IP accelerating
'co-processor' (much as the early power vr 3d accelerators did).

Any comments? Anyone working on this? Maybe I had better learn to write
drivers ;)

Dave



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



RE: IP checksum offloading with intel 82559 fast ethernet.

2000-06-20 Thread Dave Preece

> Don't some of the Gigabit FreeBSD drivers actually utilize 
> the on-board
> checksum processing???

H, can't see anything specific Looking at if_wx.c we have a function
wx_start(ifp) where ifp is an ifnet pointer. ifnet has a member if_snd, of
type ifqueue (according to the man page). And ifqueue is a safe looking
memory buffer, but no actual statement as to whether we are expected to put
raw packets on the queue or what. Presumably entire ethernet frames are
put on the queue so we can spoof ethernet mac addresses occasionally - but
no real way of indicating to the card that we have put an IP packet on with
no checksum (and could you calculate it for me please).

As an aside, if checksum calculations were offloadable via a call across PCI
(i.e. send raw packet, get packet back with tcp calculated, queue packet for
delivery), then it's a bit touch and go as to whether this is actually a
good idea - given that we'll start to load up PCI quite badly doing this.

> Nice to see someone keeping our drivers fresh :-)

Oh, no. I wish. I'm well off the end of my abilities here, but clearly into
what I 'owe' the community in general. Hopefully I'll get there at some
time.

> -marc

Dave



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



RE: IP checksum offloading with intel 82559 fast ethernet.

2000-06-20 Thread Matthew Jacob



(I'm the wx author)... I want to do checksum offloading too at some point.

There's been some work done on this by Andrew Gallatin and Ken Merry amongst
others insofar as I recall, but I don't believe it's been checked in. Let me
see if I can dig up the mail..

Everyone's at Usenix this week && next, so don't expect too much of a
response.

-matt


On Wed, 21 Jun 2000, Dave Preece wrote:

> > Don't some of the Gigabit FreeBSD drivers actually utilize 
> > the on-board
> > checksum processing???
> 
> H, can't see anything specific Looking at if_wx.c we have a function
> wx_start(ifp) where ifp is an ifnet pointer. ifnet has a member if_snd, of
> type ifqueue (according to the man page). And ifqueue is a safe looking
> memory buffer, but no actual statement as to whether we are expected to put
> raw packets on the queue or what. Presumably entire ethernet frames are
> put on the queue so we can spoof ethernet mac addresses occasionally - but
> no real way of indicating to the card that we have put an IP packet on with
> no checksum (and could you calculate it for me please).
> 
> As an aside, if checksum calculations were offloadable via a call across PCI
> (i.e. send raw packet, get packet back with tcp calculated, queue packet for
> delivery), then it's a bit touch and go as to whether this is actually a
> good idea - given that we'll start to load up PCI quite badly doing this.
> 
> > Nice to see someone keeping our drivers fresh :-)
> 
> Oh, no. I wish. I'm well off the end of my abilities here, but clearly into
> what I 'owe' the community in general. Hopefully I'll get there at some
> time.
> 
> > -marc
> 
> Dave
> 
> 
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
> 





To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



RE: IP checksum offloading with intel 82559 fast ethernet.

2000-06-20 Thread Matthew Jacob


It was mail from Andrew Gallatin ([EMAIL PROTECTED]), but it was private so
I can't just redistribute it. Andrew- want to comment?







To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: IP checksum offloading with intel 82559 fast ethernet.

2000-06-20 Thread Paul Saab

The checksome off loading for the Intel gigabit card is broken.  All you
get is the checksum of the frame, so it really isn't all that useful.

paul

Matthew Jacob ([EMAIL PROTECTED]) wrote:
> 
> 
> (I'm the wx author)... I want to do checksum offloading too at some point.
> 
> There's been some work done on this by Andrew Gallatin and Ken Merry amongst
> others insofar as I recall, but I don't believe it's been checked in. Let me
> see if I can dig up the mail..
> 
> Everyone's at Usenix this week && next, so don't expect too much of a
> response.
> 
> -matt
> 
> 
> On Wed, 21 Jun 2000, Dave Preece wrote:
> 
> > > Don't some of the Gigabit FreeBSD drivers actually utilize 
> > > the on-board
> > > checksum processing???
> > 
> > H, can't see anything specific Looking at if_wx.c we have a function
> > wx_start(ifp) where ifp is an ifnet pointer. ifnet has a member if_snd, of
> > type ifqueue (according to the man page). And ifqueue is a safe looking
> > memory buffer, but no actual statement as to whether we are expected to put
> > raw packets on the queue or what. Presumably entire ethernet frames are
> > put on the queue so we can spoof ethernet mac addresses occasionally - but
> > no real way of indicating to the card that we have put an IP packet on with
> > no checksum (and could you calculate it for me please).
> > 
> > As an aside, if checksum calculations were offloadable via a call across PCI
> > (i.e. send raw packet, get packet back with tcp calculated, queue packet for
> > delivery), then it's a bit touch and go as to whether this is actually a
> > good idea - given that we'll start to load up PCI quite badly doing this.
> > 
> > > Nice to see someone keeping our drivers fresh :-)
> > 
> > Oh, no. I wish. I'm well off the end of my abilities here, but clearly into
> > what I 'owe' the community in general. Hopefully I'll get there at some
> > time.
> > 
> > > -marc
> > 
> > Dave
> > 
> > 
> > 
> > To Unsubscribe: send mail to [EMAIL PROTECTED]
> > with "unsubscribe freebsd-hackers" in the body of the message
> > 
> 
> 
> 
> 
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message

-- 
Paul Saab
Technical Yahoo
[EMAIL PROTECTED] - [EMAIL PROTECTED] - [EMAIL PROTECTED]
Do You .. uhh .. Yahoo!?


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: IP checksum offloading with intel 82559 fast ethernet.

2000-06-20 Thread Matthew Jacob


> The checksome off loading for the Intel gigabit card is broken.  All you
> get is the checksum of the frame, so it really isn't all that useful.

Yeah, well, there's a couple of things that supposedly can be done about that.

For transmit, there's a start/offset you can do which could allow to insert a
checksum that didn't start at the frame header. Layering violation, but
probably would be helpful.








To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: IP checksum offloading with intel 82559 fast ethernet.

2000-06-21 Thread Bill Paul


> > Don't some of the Gigabit FreeBSD drivers actually utilize 
> > the on-board
> > checksum processing???

FreeBSD 5.0-current has support for TCP/IP checksum offload, and the
if_ti driver makes use of it. The Tigon NICs do this in firmware though.
I attempted to add support to the SysKonnect driver, however the transmit
side checksum offload support apparently doesn't work, and the receive
side offloading has a bug which requires a bit of a workaround.

The 3Com 3c90xB/3c90xC chips are also supposed to support checksum
offload, but as of yet I haven't had much luck getting this to work
either.

-Bill 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



RE: IP checksum offloading with intel 82559 fast ethernet. (fwd)

2000-06-20 Thread Matthew Jacob




-- Forwarded message --
Date: Tue, 20 Jun 2000 19:57:04 -0400 (EDT)
From: Andrew Gallatin <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: RE: IP checksum offloading with intel 82559 fast ethernet.


Matthew Jacob writes:
 > 
 > Sorry- they're talking about IP checksum offloading. You sent some mail last
 > December talking about checking support for this in, but I didn't want to just
 > forward that mail because I can't recall whether you checked it in (I don't
 > believe that we have).
 > 

We support hardware checksum offloading in both -current & -stable
both sending & receiving.  Jonathan Lemon's code is what got checked
in -- its considerably better than my private hacks.

I think the if_ti.c driver is the only drive to make use of it.  You
might want to peek at it if you're feeling like making the if_wx
driver offload checksums.

You can feel free to forward that ;)

Drew

BTW -- how is the if_wx.c driver?  Has it gotten any better (you were
talking about how poorly it performed & were going to see where the
bottleneck was the last I heard).




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message