This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

RL-TCPnet ping of death

The RL-ARM 3.40 TCP/IP stack TCPnet crashes with a BIG ping;

ping -t -l 1500 10.10.10.173

Crashes my MCB2300 board with TCPnet from RL-ARM 3.40. Is this a ping of death example? How can I fix this?

  • I don't think TCPnet supports packet fragmentation.

    With Ethernet, the maximum packet payload would be 1472. If you include overheads, that takes you to 1514 which is the maximum Ethernet packet size.

    As for crashing ... It works with STR9.

  • Fragmentation or maximum payloads are not the problem... A remote board crash with the BIG ping is a problem because this way someone can easy crash my board with a simple ping on the network :-(

  • All I'm saying is that your ping request of 1500 bytes is actually NOT transmitting a single packet of 1500 data bytes.

    When using 10/100Mb Ethernet, it will be sent as two, because fragmentation will be required.

    Does a ping with 1472 bytes work (i.e., the maximum before fragmentation would occur)?

    Does a ping with 1473 bytes cause a crash?

    I think tou will have to check for problems or updates with the network driver module (as supplied in source).

  • It depends on the memory pool size. When this pool size is the default 8000, a ping with 1472 bytes works, but 1473 gives no reaction. But the board doesn't crash :-) When I lower the memory pool size to the minimum 1500 a ping with 1000 bytes 'hangs' the TCP/IP stack (no reaction anymore). The complete board crash was caused by a bug in my tcp_send routine... (I used my own buffer).

    Thanks