Date: Mon, 22 Jan 2007 18:43:04 +1100 From: Peter Jeremy <peterjeremy@optushome.com.au> To: Louis Mamakos <louie@transsys.com> Cc: freebsd-stable@freebsd.org Subject: Re: tcpdump, rl, sis, fxp and multicast problems Message-ID: <20070122074304.GB837@turion.vk2pj.dyndns.org> In-Reply-To: <45B3796A.3020409@transsys.com> References: <45B09856.8080600@IPricot.com> <B9638CACBA387E48927BB56B6A1555070D9E59@svr1.irtnog.org> <45B3796A.3020409@transsys.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--s2ZSL+KKDSLx8OML Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, 2007-Jan-21 09:32:10 -0500, Louis Mamakos wrote: >However, since it is a 1's complement checksum, there is a distinguished= =20 >value (all zero bits) that you could set the checksum field to that=20 >wouldn't occur for a normal computed checksum. That's a useful idea. > Since the presence of a=20 >checksum is mandatory for TCP, you can use this trick and external=20 >software could "know" that it's a distinguished value. Keep in mind that tcpdump/libpcap in contributed software so making local changes is frowned upon. >I suspect the overhead isn't the CPU instruction, but the memory=20 >reference. If you manipulate the checksum field to the distinguished=20 >value at the time the other fields are written, they they'll all get=20 >written out to memory when the cache line is flushed. You've already=20 >got to initialize the Urgent Pointer field, which is the other 16 bits=20 >in the same 32 bit word. If you were really clever, you could make a=20 >union to cover both fields and zero both out in the same store instruction. And given that a 16-bit update is no faster (and typically slower) than a 32-bit update on all supported architectures, this may even be faster. Feel free to come up with a patch. --=20 Peter Jeremy --s2ZSL+KKDSLx8OML Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (FreeBSD) iD8DBQFFtGsI/opHv/APuIcRAoLzAJ9Hzzvr0Q9sVbUwjoEsS4+dkCpQBACfZ3bP E4UsV7Zx1cNVTOTbhRkLObU= =jhIk -----END PGP SIGNATURE----- --s2ZSL+KKDSLx8OML--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070122074304.GB837>