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?
Thanks,
Dmitry
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)
{
#ifdef TCP_VERBOSE
printf("tcp_handler 2: tcp_rst %d %s
", LINE, FILE);
#endif
tcp_rst(LL, hdrbuf, tp);
goto _th_finish;
}
If any one understands why then please let me know.
Thanks,
Dmitry
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?