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