Hello @PaulB-AWS
Thanks for the reply.
we are using UDP broadcast on broadcast port 10000 and listening port is TCP 10001.
The network communication is based on remote procedure calls between server and client.
We have initialize both socket and we are using opencore for Etherent in FPGA.
The video data is write on Vram on FPGA side with VHDL process and send by using etherent mac to udp port 5678.
With RISCV and FreeRTOS we are using the following structure for DPRAM to read and write data from and to FPGA ethernet mac.
NetworkBufferDescriptor_t *pxBufferDescriptor;
and then transmit packet using dpram which will also use Etherent mac on FPGA side but different port 10001 and RPC.
I used tcpdump and with only UDP stream video, output is
10:33:18.434209 IP 10.0.0.6.1234 > ali.5678: UDP, length 1460
with reading data only without video with TCP port
10:26:46.206258 IP 10.0.0.6.10001 > ali.50546: Flags [.], ack 35371, win 961, length 0
10:26:46.304434 IP 10.0.0.6.10001 > ali.50546: Flags [P.], seq 20348:20374, ack 35371, win 1003, length 26
and with both (reading data and video on) i got the following information with tcpdump
10:33:18.433995 IP rico.60924 > 10.0.0.6.10001: Flags [P.], seq 3514:3556, ack 1966, win 501, length 42
10:33:18.434209 IP 10.0.0.6.1234 > rico.5678: UDP, length 1460
10:33:18.434478 IP 10.0.0.6.1234 > rico.5678: UDP, length 1460
10:33:18.434734 IP 10.0.0.6.1234 > rico.5678: UDP, length 1460
10:33:18.434734 IP 10.0.0.6.10001 > rico.60924: Flags [.], ack 3556, win 961, length 0
10:33:18.434988 IP 10.0.0.6.1234 > rico.5678: UDP, length 1460
the sensor reading data packets are very small and receiving much slower as compared to video packets.
The output on debug console on server side where FreeRTOS is running.
prvTCPWindowFastRetransmit: Requeue sequence number 128430 < 128560
COMM: RCV OK. Err: 0
COMM: RCV OK. Err: 0
COMM: RCV OK. Err: 0
COMM: RCV OK. Err: 0
prvTCPWindowFastRetransmit: Requeue sequence number 128612 < 128638
COMM: RCV OK. Err: 0
COMM: RCV OK. Err: 0
prvTCPWindowFastRetransmit: Requeue sequence number 128664 < 128690
COMM: RCV OK. Err: 0
COMM: RCV OK. Err: 0
So i got the WindowRetransmit error when video is on with UDP port and TCP is reading data…
As @PaulB-AWS you said this may a problem of dpram memory arbitration on fpga side…?
Can we solve this issue with FreeRTOS or with software rather than using some VHDL programming…?
or it’s related to some communication problem with FreeRTOS stack.?
is it not a problem with Linux buffer on client side PC…?
if anyone has some helpful tips then please share.
Thank you very much