Frame Check Sequence

I am testing my send path on my ndis driver. For some reason the Frame check sequence is getting corrupted. Any ideas?

When I send a ping from the test card to another card, wireshark shows the packeted received on the other end, but says FRAME CHECK SEQUENCE INCORRECT, and then sends the response back. Any ideas what could be happening in my send path?

This is causing all my NDISTESTs to fail, since packets are correctly getting sent, but because of the error, nothing is received

You meant the 4B FCS at the end of eth payload? It’s computed by the MAC
and inserted at the end of the packet after the packet is DMA’d to the
MAC’s internal memory. The input for the computation is the eth packet
itself. SW cannot corrupt this unless your NIC requires driver to compute
and stuff the FCS. I haven’t seen such a NIC.

On receiver side, the FCS is verified by the receiving mac, if the FCS
usually is NOT DMA’d to host hence not visible to host. Some on NICs, it’s
configurable. And the NIC should discard is packet (not DMA’d to host) if
FCS is wrong as IEEE says. Again, on some NICs, you can configure the MAC
the dma bad packets for debugging purpose.

With that said, the key is being able to see the accused FCS, what is
expected, and what is read. See if there is a pattern there. You can use a
HW sniffer which will capture FCS, or find a configurable NIC that can
indicate packets with bad FCS. You may need to modify its driver to do so.
LINUX is your friend here. The ethernet FCS is a typical CRC32. Capture the
packet and the wrong FCS, ask your HW folks to run a simulation to see what
they get.

Does it fail on every tx packet steadily or randomly? Does the NIC produce
consistent FCS (right or wrong) with given input? I thought you were able
to ping, get DHCP ip address a while back? What’s the difference causing
the FCS?

Another suggestion is run some basic diag in a simpler and isolated
environment i.e. dos, to see if you have a repro. I personally won’t start
any Windows development until the hw basic sanity is verified in isolated
environments. If the NIC is not able to compute FCS correctly, it’s
basically and fundamentally insane.

Calvin

On Sun, Oct 21, 2012 at 9:39 PM, wrote:

> I am testing my send path on my ndis driver. For some reason the Frame
> check sequence is getting corrupted. Any ideas?
>
> When I send a ping from the test card to another card, wireshark shows the
> packeted received on the other end, but says FRAME CHECK SEQUENCE
> INCORRECT, and then sends the response back. Any ideas what could be
> happening in my send path?
>
> This is causing all my NDISTESTs to fail, since packets are correctly
> getting sent, but because of the error, nothing is received
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>