Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Oct 2012 14:40:38 -0700
From:      YongHyeon PYUN <pyunyh@gmail.com>
To:        Gleb Smirnoff <glebius@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Andre Oppermann <andre@freebsd.org>
Subject:   Re: svn commit: r242161 - in head/sys: net netinet netpfil/pf
Message-ID:  <20121029214038.GD1431@michelle.cdnetworks.com>
In-Reply-To: <20121029052100.GO70741@FreeBSD.org>
References:  <201210262106.q9QL6YgY000943@svn.freebsd.org> <508BBE6C.7010409@freebsd.org> <20121027220137.GJ70741@FreeBSD.org> <20121029204104.GA1431@michelle.cdnetworks.com> <20121029052100.GO70741@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 29, 2012 at 09:21:00AM +0400, Gleb Smirnoff wrote:
> On Mon, Oct 29, 2012 at 01:41:04PM -0700, YongHyeon PYUN wrote:
> Y> On Sun, Oct 28, 2012 at 02:01:37AM +0400, Gleb Smirnoff wrote:
> Y> > On Sat, Oct 27, 2012 at 12:58:52PM +0200, Andre Oppermann wrote:
> Y> > A> On 26.10.2012 23:06, Gleb Smirnoff wrote:
> Y> > A> > Author: glebius
> Y> > A> > Date: Fri Oct 26 21:06:33 2012
> Y> > A> > New Revision: 242161
> Y> > A> > URL: http://svn.freebsd.org/changeset/base/242161
> Y> > A> >
> Y> > A> > Log:
> Y> > A> >    o Remove last argument to ip_fragment(), and obtain all needed information
> Y> > A> >      on checksums directly from mbuf flags. This simplifies code.
> Y> > A> >    o Clear CSUM_IP from the mbuf in ip_fragment() if we did checksums in
> Y> 
> Y> I'm not sure whether ti(4)'s checksum offloading for IP fragmented
> Y> packets(CSUM_IP_FRAGS) still works after this change.  ti(4)
> Y> requires CSUM_IP should be set for IP fragmented packets. Not sure
> Y> whether it's a bug or not. I have a ti(4) controller but I don't
> Y> remember where I can find it and don't have a link
> Y> parter(1000baseSX) to test it. :-(
> 
> ti(4) declares both CSUM_IP and CSUM_IP_FRAGS, so ip_fragment() won't do

Because it supports both CSUM_IP and CSUM_IP_FRAGS. Probably ti(4)
is the only controller that supports TCP/UDP checksum offloading
for an IP fragmented packet.

> software checksums, and thus won't clear these flags.
> 
> Potentially a driver that announces one flag in if_hwassist but relies on
> couple of flags to be set on mbuf is not correct. If a driver can't do single
> checksum  processing independently from others, then it should set or clear
> appropriate flags in if_hwassist as a group.

Hmm, then what would be best way to achieve CSUM_IP_FRAGS in
driver? I don't have clear idea how to utilize the hardware
feature. The stack should tell that the mbuf needs TCP/UDP checksum
offloading for IP fragmented packet(i.e. CSUM_IP_FRAGS is not set by
upper stack).

> 
> Y> > A> >      hardware. Some driver may not announce CSUM_IP in theur if_hwassist,
>                ^^^^^^^^
> 
> Oh, that was a typo! Software was meant.
> 
> -- 
> Totus tuus, Glebius.



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