svn commit: r242161 - in head/sys: net netinet netpfil/pf

Gleb Smirnoff glebius at FreeBSD.org
Mon Oct 29 05:21:02 UTC 2012


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
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.

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.


More information about the svn-src-head mailing list