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

TCPNET response to PING

I'm using TCPNET and the RTX kernel on an STR912 ARM9.

A simple question first: can TCPNET be configured to respond to a broadcast PING?

Second, I have noticed that sometimes the response time to PINGs gets erratic and long. Normally the response time is ~1ms, but sometimes (for no reason I have been able to debug yet) the response times go up to 1 or 2 seconds (frequently almost exactly 1 or 2 seconds).

The only cure seems to be to power-cycle my board. This happens both on my own board and on an STRB9 from Keil. When I was running the http demo I noticed that when the ping time goes up, the HTTP response also becomes very slow. What is happening?

Christopher Hicks
==

NORMAL:

hiss:~# ping 192.168.2.12
PING 192.168.2.12 (192.168.2.12) 56(84) bytes of data.
64 bytes from 192.168.2.12: icmp_seq=1 ttl=128 time=1.03 ms
64 bytes from 192.168.2.12: icmp_seq=2 ttl=128 time=0.967 ms
64 bytes from 192.168.2.12: icmp_seq=3 ttl=128 time=0.998 ms
64 bytes from 192.168.2.12: icmp_seq=4 ttl=128 time=1.00 ms
64 bytes from 192.168.2.12: icmp_seq=5 ttl=128 time=0.908 ms

SOMETIMES:

hiss:~# ping 192.168.2.12
PING 192.168.2.12 (192.168.2.12) 56(84) bytes of data.
64 bytes from 192.168.2.12: icmp_seq=1 ttl=128 time=352 ms
64 bytes from 192.168.2.12: icmp_seq=2 ttl=128 time=2001 ms
64 bytes from 192.168.2.12: icmp_seq=3 ttl=128 time=1940 ms
64 bytes from 192.168.2.12: icmp_seq=4 ttl=128 time=941 ms
64 bytes from 192.168.2.12: icmp_seq=5 ttl=128 time=1001 ms
64 bytes from 192.168.2.12: icmp_seq=6 ttl=128 time=1186 ms
64 bytes from 192.168.2.12: icmp_seq=7 ttl=128 time=1011 ms
64 bytes from 192.168.2.12: icmp_seq=8 ttl=128 time=510 ms

Parents
  • Maybe that is expected behaviour (lengthed ping response times while there is TCP activity).

    Remember that TCPNet is single-threaded, so while a TCP packet is being processed (i.e. while in the TCP socket callback), any other incoming packets (including incoming pings) are buffered, and processed once the TCP callback has completed (or maybe the next time you call main_TcpNet() - I am not sure).

    This is in contrast to bigger systems where typically separate threads/processes respond to each TCP/UDP socket. In this case even if one thread takes a long time to respond to a packet on a given socket, the pings are handled by a separate thread and so respond immediately.

    In my case I have no IP activity except the pings themselves.

    CH

Reply
  • Maybe that is expected behaviour (lengthed ping response times while there is TCP activity).

    Remember that TCPNet is single-threaded, so while a TCP packet is being processed (i.e. while in the TCP socket callback), any other incoming packets (including incoming pings) are buffered, and processed once the TCP callback has completed (or maybe the next time you call main_TcpNet() - I am not sure).

    This is in contrast to bigger systems where typically separate threads/processes respond to each TCP/UDP socket. In this case even if one thread takes a long time to respond to a packet on a given socket, the pings are handled by a separate thread and so respond immediately.

    In my case I have no IP activity except the pings themselves.

    CH

Children
No data