TCP RST/ACK responce to SYN instead of SYN/ACK

I have code that was built on DC rev 9.52 and the Rabbit device works in static mode when the host is on a different LAN. When establishing a telnet connection from host to the device, the device responds with SYN/ACK to SYN.

Now using DC rev 9.62, when configured in static mode, the device responds with RST/ACK to SYN instead of SYN/ACK.

There has to be something different in the library files. Can any one help. How do I troubleshoot the reson for a RST/ACK response?


Did you download the library patches for Dynamic C 9.62?

The patches did not help.

WireShark shows:

When in Static mode:

From Host to Device [SYN]
From Device to Host [RST, ACK]
From Host to Device [TCP Spurious Retransmission] [SYN]
From Device to Host [RST, ACK]

When in Dynamic mode:

From Host to Device [SYN]
From Device to Host [SYN, ACK]

What am I missing?

Also keep in mind that Point-to-Point connection works in Static configuration.

What Rabbit product do you have and are you using the Rabbit proto board?

I am using RCM3315.

The board is sitting on a custom built motherboard, which mainly supplies power.

OK, got it!

In the TCP.LIB, I swapped the comments:

This was commented out:

ath = arpcache_new(hisip, &((eth_Header *)hdrbuf)->source, iface);

This was used:

//ath = arpresolve_start_iface(hisip, iface);

Bad result caused:

if (ath <= 0)
printf("tcp_handler 2: tcp_rst %d %s
tcp_rst(LL, hdrbuf, tp);
goto _th_finish;

If any one understands why then please let me know.


There is a note above the commented line:
Vantive 23956: now use ARP lookup instead of sending back to source’s MAC address.

Not sure if the issue you are seeing is application specific. Are you able to reproduce this with a sample?