In article <[EMAIL PROTECTED]>, Lars Eggert  <[EMAIL PROTECTED]> wrote:
> 
> I'm looking at a packet trace taken of an xl card under 4.5, and I see 
> bad IP and TCP/UDP checksums. The release notes state that checksumming 
> maybe offloaded to the NIC now, but I'd still expect them to be correct 
> in a packet trace!
> 
> More specifically, the IP checksum is always zero, while the TCP and UDP 
> checksums are non-zero but bad. However, netstat shows no packets 
> arriving with bad checksums, so I assume that they get mangled somewhere 
> in the kernel after inbound processing. (And the machine works fine on a 
> network; I found this by accident.)
> 
> Any clues?

You are running tcpdump on the system that's sending the "bad"
packets, right?  It makes perfect sense.  The TCP/IP stack knows
that the NIC is going to insert the checksums, so it doesn't bother
calculating them itself.  So BPF is handed packets in mbufs without
any checksums.  On the way out to the wire, the NIC hardware/firmware
adds the checksums, but they don't show up in the mbufs that are being
sent to BPF.  If you run tcpdump on the receiving system instead,
you'll find that the checksums seen there are valid.

The same thing happens in the bge driver, because it also offloads
checksum generation to the NIC.

John
-- 
  John Polstra
  John D. Polstra & Co., Inc.                        Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to