Rx/tx hardware checksumming statistics?
Pyun YongHyeon
pyunyh at gmail.com
Wed Aug 13 01:11:57 UTC 2008
On Tue, Aug 12, 2008 at 03:33:14PM +0000, Christian Weisgerber wrote:
> Pyun YongHyeon <pyunyh at gmail.com> 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
More information about the freebsd-net
mailing list