Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Jan 2007 20:32:11 +0000
From:      Lee Brotherston <lee@nerds.org.uk>
To:        freebsd-hackers@freebsd.org
Subject:   TCP Checksums in mbufs
Message-ID:  <20070108203211.GF41066@nerds.org.uk>

next in thread | raw e-mail | index | archive | help

--BOKacYhQ+x31HxR3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi,

I have a bit of code I have written that uses pfil to access network
traffic as it passes between interfaces on a FreeBSD router.  One of
the functions it performs is some incredibly basic rewrites of certain
packets (keeping the same length, so no issues about sequence
numbers), but it does alter the payload.

I just wanted to check what is the "proper" way to be going about
recalculating the checksums on the packet?  I can write a function to
do this and write this into the packet stored in the mbuf directly,
however I wasn't sure if there was a more acceptable method such as
flagging it to be re-checksum'd as it's routed, or to offload the
computation to the NIC or something?

Any thoughts, suggestions, etc very welcome!

By the way, I'm not subscribed to the list right now, so I'd
appreciate it if people could CC me on replies.

Many thanks

  Lee
--=20
Lee Brotherston - <lee@nerds.org.uk>

--BOKacYhQ+x31HxR3
Content-Type: application/x-pkcs7-signature
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

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
ZBrNvx8tYl7tTAjgsp0YGICO5xnoBOd19EaH

--BOKacYhQ+x31HxR3--



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