Hi,
I figured out a strange behaviour when I send many TCP/IP packets from a host to my XMOS sc_xtcp sink. I got an stcp_event() for incoming data, but the data (usually an ACK) are the ones I just sent back to the host. With wireshark, I saw that the sc_xtcp is [ACK] a packet and then [PSH. ACK] the new request, but the ACK was for the same seq.
When I change the order in the function xtcpd_appcall() (uip_xtcp.c) to check first for new data and then ack a packet it works way better. I still got some problems if the TCP/IP packets are very large, but for small one it works great.
Hi @aritec, can you fork sc_xtcp and do a pull request with your proposed changes? That way I can see the changes to the code and test it if necessary.
Hi, I figured out a strange behaviour when I send many TCP/IP packets from a host to my XMOS sc_xtcp sink. I got an stcp_event() for incoming data, but the data (usually an ACK) are the ones I just sent back to the host. With wireshark, I saw that the sc_xtcp is [ACK] a packet and then [PSH. ACK] the new request, but the ACK was for the same seq.
When I change the order in the function xtcpd_appcall() (uip_xtcp.c) to check first for new data and then ack a packet it works way better. I still got some problems if the TCP/IP packets are very large, but for small one it works great.
Regards Armin