UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Newbie pedrorp
Newbie
4,491 Views
Registered: ‎04-07-2010

Reassembly `problems with UDP packets in a Ml507 board

Hello,

I have an embedded system implemented in a ML507 board. The system hardware is equal to that in xapp1026, it includes a XPS_LL_TEMAC IP core. The software in the board only has to receive UDP packets (using lwip UDP functions) and write them in a file in the DDR2(I have implemented an MFS file system). The thansmitter of the UDP packets can send then with a configurable length. When the length is bigger than 1500 bytes the transmitter fragments then in IP packets with a maximum length of 1500 bytes. So the ML507 boards receives the UDP packets already fragmented when the size is bigger than 1500 bytes.

 

If I configure the TX for sending packets less than 1500 bytes the ML507 works properly, receives the packets and save them in the file. But when the UDP packets are fragmented the project does not work. It seems that all the fragments are received by the board and it detects that are fragments and also it recognise that the last fragment has arrived, but it is not able to reassemble them. At last the function defined in  udp_recv() is never called.

 

Has somebody had the same problem?, how must I configure the lwip, the pbufs, the TEMAC, and so on, to be able to receive fragmented UDP packets?. I need to enable Jumbo frames?.

 

Best regards,

Pedro 

Tags (4)
0 Kudos
2 Replies
Visitor mbodnar420
Visitor
4,199 Views
Registered: ‎05-01-2009

Re: Reassembly `problems with UDP packets in a Ml507 board

Hi Pedrorp,

 

I am currently having the same problem (noticing the same behavior, anyway).

 

With ip_debug on, I can see the packets received correctly at that layer, and ip_reass called to defragment.  However, the udp recv callback is never entered.  Of course, this is for packets larger than the Ethernet frame size (non-jumbo frames).

 

You posted some months ago; have you figured it out?

0 Kudos
Visitor mbodnar420
Visitor
4,188 Views
Registered: ‎05-01-2009

Re: Reassembly `problems with UDP packets in a Ml507 board

I tried tracing  execution through the ip_reass, and when the last fragment in the datagram arrives, it is successfully identified as such (MS = 0?), but fails the vaildation (and hence the datagram is never fully reconstructed).

 

As a work around, I configure the PC driver to limit the datagram size to the Ethernet MSS, so fragmentation never actually occurs.  I have very controlled use over my system configuration, so this is probably ok for now.

0 Kudos