WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2016-Aug-27 08:11:27

adherentx
Member
Registered: 2014-Oct-23
Posts: 45

problem of receiving asynchronous jumbo Ethernet packets

Following up another post about Ethernet communications between PC and WARP, I found another problem. 

I am working based on the 802.11 reference design v1.5.0 on WARP v3 boards.

I let a PC send multiple UDP packets to a WARP board. I disabled the response request. So the PC would keep sending UDP packets without waiting for the response. In the XDK I set num_rx_buffers as 8. I am sure the buffer number is sufficient and no packet was dropped. However, I found a strange problem: if I send 800 integers in each packets, then sometimes the later part of a receive buffer would be occupied by the content of the next packet. That is, the buffers look like:

Code:

buffer 0: header of packet 0; int[0] to int[546] of packet 0; header of packet 1; int[0] to int[235] of packet 1
buffer 1: header of packet 1; int[0] to int[546] of packet 1; header of packet 2; int[0] to int[235] of packet 2
...

Note that the problem always happens at the index 546. If I send less than 500 integers in each packet, I don't have this problem. It seems that when the packet is long, WARP does not write the buffer correctly, and somehow the later part of the buffer is overwritten.
Your ideas and suggestions would be highly appreciated.

Last edited by adherentx (2016-Aug-27 08:12:09)

Offline

 

#2 2016-Aug-27 09:34:42

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: problem of receiving asynchronous jumbo Ethernet packets

We actually just fixed this bug in the WARP_ip_udp library yesterday (changeset 5609). An error in the Rx buffer address assignment code resulted in overlapping Rx buffers. The overlap started around 2200 bytes, so the issue only manifests for rapid reception of jumbo frames by the node.

Update your edk_user_repository to get the WARP_ip_udp bug fix, click the 'Rescan Repositories' button in the SDK, then clean the software project in the SDK. Be sure to clean the application project, *not* the BSP. Cleaning the application will clean and rebuild the BSP+application. Cleaning just the BSP will not trigger a rebuild of the application to use the updated BSP binaries.

Offline

 

#3 2016-Aug-28 01:50:51

adherentx
Member
Registered: 2014-Oct-23
Posts: 45

Re: problem of receiving asynchronous jumbo Ethernet packets

murphpo wrote:

Update your edk_user_repository to get the WARP_ip_udp bug fix, click the 'Rescan Repositories' button in the SDK, then clean the software project in the SDK. Be sure to clean the application project, *not* the BSP. Cleaning the application will clean and rebuild the BSP+application. Cleaning just the BSP will not trigger a rebuild of the application to use the updated BSP binaries.

The problem is perfectly solved. Thank you!

Offline

 

Board footer