On Tue, Aug 12, 2008 at 03:33:14PM +0000, Christian Weisgerber wrote:
 > Pyun YongHyeon <[EMAIL PROTECTED]> wrote:
 > 
 > >  > OpenBSD's re(4) driver is ported from FreeBSD.  Recently, Brad Smith
 > >  > has been merging the tx/rx checksum offload support for the newer
 > >  > chips (RTL8111C etc.) into the OpenBSD driver and I have done some
 > >  > testing for him.  Looking at the counters, I have noticed:
 > >  > * IP header rx checksumming is only registered for IP/TCP and IP/UDP
 > >  >   packets, but not for other protocols, such as IP/ICMP.
 > > 
 > > Note, the controller can only offload IP, TCP and UDP checksumming.
 > > ICMP should be handled by software.
 > 
 > Yes, but the IP/ICMP packet should still be subject to IP checksumming.
 > 
 > What I see with an 8111C (RL_FLAG_DESCV2):
 > * incoming IP/TCP packet
 >   => IP checksum processed in hardware
 >   => TCP checksum processed in hardware
 > * incoming IP/UDP packet
 >   => IP checksum processed in hardware
 >   => UDP checksum processed in hardware
 > * incoming IP/ICMP packet
 >   => IP checksum _not_ processed in hardware
 > 
 > With an old 8169S the latter case is different:
 > * incoming IP/ICMP packet
 >   => IP checksum processed in hardware
 > 
 > >  > limitations also apply to the FreeBSD driver, but without the
 > > 
 > > No, FreeBSD have no such limitation, re(4) takes full advantage of
 > > hardware assistance if the controller in question is known to work
 > > with the feature.
 > 
 > I cannot find any difference between the respective drivers suggesting
 > that the behavior above would be any different on FreeBSD.  There
 > are no relevant differences in the RX checksumming section in
 > re_rxeof().
 > 

Aha I see. The second generation of RTL8168/8111/810x controllers
use new descriptor format. I don't know why RealTek dropped
supporting IP/ICMP checksumming and I couldn't verify that as I
have no such hardware. However it seems RealTek added IPv6 checksum
offload support for these controllers so the checksum offload
oddity for IP/ICMP could be a bug introduced in this newer
descriptor format.

 > >  > counters, how can you tell?
 > > 
 > > I think you can check the output of ifconfig(4).
 > 
 > This does not tell you if an individual received packet has been
 > marked CSUM_IP_CHECKED|CSUM_IP_VALID.
 > 

That's correct.

-- 
Regards,
Pyun YongHyeon
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to