Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 May 2000 10:28:08 -0500
From:      Jonathan Lemon <jlemon@flugsvamp.com>
To:        Darren Reed <darrenr@reed.wattle.id.au>
Cc:        jlemon@freebsd.org, freebsd-stable@freebsd.org, ps@freebsd.org, Cy.Schubert@uumail.gov.bc.ca
Subject:   Re: FTP proxy without translation no longer working? (fwd)
Message-ID:  <20000521102808.C5468@prism.flugsvamp.com>
In-Reply-To: <200005210428.OAA12435@avalon.reed.wattle.id.au>
References:  <200005210038.e4L0cTx00858@cwsys.cwsent.com> <200005210428.OAA12435@avalon.reed.wattle.id.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, May 21, 2000 at 02:28:30PM +1000, Darren Reed wrote:
> Jonathan,
>          Can you please back these changes out for 4.0_STABLE ?  They appear
> to interfere with the operation IP Filter.  I'm happy for these to on the
> head and for there to be work required to get things working again.  If I
> don't hear/see from you within the next week, I'll assume that you otherwise
> are not that concerned and offer to backout the changes myself.

Well, instead of backing the changes out, how about we fix the problem
instead?  I'm not familiar with IPFilter, but I know that there were
some initial problems with ipfw, perhaps the problems here are similar.

What happens now is that the TCP/UDP layer will place the pseudo 
checksum in the TCP/UDP header, and set a flag in the mbuf.  After
the IP layer determines which interface the packet is going out on,
it will compute the checksum if: 1. the interface indicates it does
not support delayed checksums, and 2. the delayed csum flag is set
in the mbuf.

If the packet is intercepted/redirected at some point between the 
upper (TCP) and lower (IP) layers, then it will not have a valid
checksum.  In this case, there needs to be a small bit of code to 
force the checksum to be computed if necessary.  E.g.:

	if (m->m_pkthdr.csum_flags & CSUM_DELAY_DATA) {
		in_delayed_cksum(m);
		m->m_pkthdr.csum_flags &= ~CSUM_DELAY_DATA;
	}

I don't know where IPFilter hooks into the stack, so I don't know 
where the appropriate point to put this would be.
--
Jonathan


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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