heinbali01 wrote on Thursday, May 03, 2018:
Hi Wolfgang,
What I am wondering:
Do you know if wireshark would show an error if UDP-CRC-calculation
is false?
PC’s often have a network card that calculates all checksums, while the applications and Wireshark don’t get to see the actual CRC received. This feature is called “checksum offloading”.
You can have Wireshark check the checksums:
Edit → Preferences → Protocols →
IPv4 : set Validate the IPv4 checksum if possible
UDP : set Validate the UDP checksum if possible
TCP : set Validate the TCP checksum if possible
Then go to the settings of your network card and look for the hardware configuration ( not the protocols ).
Under Advanced, you can probably disable checksum offloading:
IPv4 Checksum Offload
UDP Checksum Offload (IPv4)
TCP Checksum Offload (IPv4)
or at least do not enable it for the RX path.
Once checksum offloading is disabled, you can see the original CRC’s as sent by the embedded device.
Now I would be curious to see if the IP and UDP checksumsfrom the device are correct.
ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM is set to (1),
but this is only for receiving, not for sending, isn´t it?
Yes, the RX
stands for reception of packets.
If you have ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM
(TX
) defined as 1
, your driver or he MAC peripheral must set all IPv4, UDP, and TCP checksums.
If it is defined as 0
, the library will set them.
I disabled the following options:
ipconfigUSE_LLMNR / ipconfigUSE_NBNS / ipconfigUSE_DNS / ipconfigUSE_DHCP
could this be a problem?
That should not be a problem
Could there be a problem in my rx65-driver? But ping
request / ARPs are received on pc?
ARP only has checksums at the hardware layer that we don’t see.
The checksum for ping is being set in-line.