# FreeRTOS+TCP: problem with UDP communication

**URL:** <https://forums.freertos.org/t/freertos-tcp-problem-with-udp-communication/7158>\
**Category:** Kernel\
**Created:** [April 26, 2018, 7:15am UTC](https://forums.freertos.org/t/freertos-tcp-problem-with-udp-communication/7158 "2018-04-26T07:15:30Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![htibosch](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/htibosch/32/62_2.png) [@htibosch](https://forums.freertos.org/u/htibosch)\
**Post date:** [May 3, 2018, 8:13am UTC](https://forums.freertos.org/t/freertos-tcp-problem-with-udp-communication/7158/7 "2018-05-03T08:13:01Z")

</div>

**[heinbali01](https://sourceforge.net/u/heinbali01/)** wrote on [Thursday, May 03, 2018](https://sourceforge.net/p/freertos/discussion/382005/thread/fcdfedcd/#7f05):

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.

---

_[View the full topic](https://forums.freertos.org/t/freertos-tcp-problem-with-udp-communication/7158)._
