1
\$\begingroup\$

I have developed an application layer software which transmit 2560 bytes using UDP through Ethernet. I realise that the MTU of the Ethernet is 1500 bytes therefore I have reconfigured both MTU of sending/receiving end to 5102 as shown in the picture below: enter image description here enter image description here The data is transmitted from a FPGA to the PC. However, this is what I capture through Wireshark: enter image description here I receive the correct data I am sending but it gives the error that: BAD UDP LENGTH 2568 > IP PAYLOAD LENGTH Len=2560. The data that I am sending from the FPGA is 2560bytes.

May I know how can I reconfigure the IP PAYLOAD LENGTH?

\$\endgroup\$
1
  • \$\begingroup\$ Hang. On. If the Ethernet MTU is 1500 you can't just increase it to 2560. \$\endgroup\$
    – user207421
    Oct 23 '16 at 0:36
1
\$\begingroup\$

There are a number of potential problems with this. First, even though your application may be configured for an assumed MTU, it's not possible to tell from your description whether that actually affects the bytes on the wire. For example, under Linux, the MTU may be limited to 1500 (or some other number) by the driver or by the hardware.

Second, with IPv4, any intermediate device can fragment a packet and send two (or more) pieces if the size exceeds a link's MTU. That's probably not the issue here, since both devices appear to be on the same subnet with non-routable addresses, but it could limit your options in the future.

What you're looking for is support for Jumbo Frames, so check that the chipset and driver on the other end handles them.

\$\endgroup\$
2
  • \$\begingroup\$ previously the data is transfer in fragment. However, The reassembly of the segment order is always swapped. That is why I want to avoid fragment by increasing the MTU. For the Jumbo Frame I have reconfigure the Ethernet to 5KB MTU. However, this doesn't give me any luck. My Labview Software still doesn't indicate receive any data. \$\endgroup\$
    – user9870
    Oct 22 '16 at 23:00
  • 1
    \$\begingroup\$ As I mentioned, software settings may be insufficient if the hardware does not also support Jumbo Frames. An example is this gigabit Ethernet chipset \$\endgroup\$
    – Edward
    Oct 22 '16 at 23:03
0
\$\begingroup\$

I think it is Wireshark issue not understanding length of datagram larger than it is set to.

If communication works well, do not take this expert info seriously.

If communication does not work, other devices on network may not understand non-standard datagram size (e.g. router). Did you consider playing safe using two datagrams?

\$\endgroup\$
5
  • \$\begingroup\$ what do you mean by using two datagram?thank you \$\endgroup\$
    – user9870
    Oct 22 '16 at 23:17
  • \$\begingroup\$ Split data into 2 or more pieces and send in two packets, and then assemble data at receiving end from two or more packets. \$\endgroup\$
    – Anonymous
    Oct 22 '16 at 23:38
  • \$\begingroup\$ Yes. Before this my data is transfer by fragment since it is above the MTU. However, the assembly is always in an inverted order. That's why I want to try to send in one packet \$\endgroup\$
    – user9870
    Oct 22 '16 at 23:46
  • \$\begingroup\$ You try to slightly simplify FPGA and PC operation by getting out of spec. I recommend you to keep sending data as you did before. It should be not much effort to write code at PC side to check for incoming data and reassemble packets (at FPGA side it is even simpler - just cut data into pieces, mark packets properly and send them). \$\endgroup\$
    – Anonymous
    Oct 22 '16 at 23:55
  • \$\begingroup\$ Ya probably I will do that. But I am just being curious on why I couldn't reconfigure the Ethernet at the PC side. Thank you! \$\endgroup\$
    – user9870
    Oct 23 '16 at 1:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.