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: 
Visitor dbabayev
Visitor
9,471 Views
Registered: ‎03-01-2010

lwip raw api webserver "pack dropped, no space"

Hi all,

I am trying to serve up a web page using lwip raw api project with some mods and looking at the hyperterminal output below you can see that some of it goes through and then I get a bunch of dropped packets. Does anyone have any idea of how to get past this isuue?

 

http GET: index.html
http_sent_callback: attempting to read 1400 bytes, left = 27405 bytes
http_sent_callback: attempting to read 1400 bytes, left = 26005 bytes
http_sent_callback: attempting to read 1400 bytes, left = 24605 bytes
http GET: css/main.css
http GET: css/dip/dip.css
http GET: css/led/led.css
http GET: js/dip.js
http GET: css/graycurve/graycurve.css
http_sent_callback: attempting to read 1400 bytes, left = 23205 bytes
http_sent_callback: attempting to read 1400 bytes, left = 21805 bytes
http_sent_callback: attempting to read 1400 bytes, left = 20405 bytes
http_sent_callback: attempting to read 1400 bytes, left = 19005 bytes
http_sent_callback: attempting to read 1400 bytes, left = 4875 bytes
http_sent_callback: attempting to read 1400 bytes, left = 17605 bytes
pack dropped, no space
pack dropped, no space
http_sent_callback: attempting to read 1400 bytes, left = 16205 bytes
pack dropped, no space
pack dropped, no space
pack dropped, no space
pack dropped, no space
pack dropped, no space
http_sent_callback: attempting to read 1400 bytes, left = 14805 bytes
pack dropped, no space
pack dropped, no space
pack dropped, no space
http_sent_callback: attempting to read 1400 bytes, left = 13405 bytes
pack dropped, no space
pack dropped, no space
pack dropped, no space
http GET: js/led.js
pack dropped, no space
pack dropped, no space
pack dropped, no space
pack dropped, no space
http GET: js/range.js
pack dropped, no space
pack dropped, no space
pack dropped, no space
http_sent_callback: attempting to read 1400 bytes, left = 3475 bytes
pack dropped, no space
pack dropped, no space
pack dropped, no space
pack dropped, no space
http_sent_callback: attempting to read 1400 bytes, left = 2075 bytes
pack dropped, no space
pack dropped, no space
pack dropped, no space
pack dropped, no space
http_sent_callback: attempting to read 1400 bytes, left = 12005 bytes
pack dropped, no space
pack dropped, no space
pack dropped, no space
pack dropped, no space
pack dropped, no space

 

 

Thanks,

Dmitry

0 Kudos
12 Replies
Visitor yanguy71
Visitor
8,735 Views
Registered: ‎12-22-2013

Re: lwip raw api webserver "pack dropped, no space"

I have the same error, please help.

Thanks

0 Kudos
Visitor xilinxnii
Visitor
8,665 Views
Registered: ‎01-11-2014

Re: lwip raw api webserver "pack dropped, no space"

I have this message too..when I  start 2 EMAC interfaces? 

when 1 EMAC - OK!

 

0 Kudos
Scholar sampatd
Scholar
8,658 Views
Registered: ‎09-05-2011

Re: lwip raw api webserver "pack dropped, no space"

I don't think lwip can handle dual mac. You may have to use something like treck to do so:
http://www.treck.com/
0 Kudos
Visitor xilinxnii
Visitor
8,648 Views
Registered: ‎01-11-2014

Re: lwip raw api webserver "pack dropped, no space"

It does not help. (( 

Since each platform nuances.

I think the problem with DMA.

Because this error indicated at this lines(in lwIP)

 

static err_t low_level_output(struct netif *netif, struct pbuf *p)
{
SYS_ARCH_DECL_PROTECT(lev);
err_t err;
struct xemac_s *xemac = (struct xemac_s *)(netif->state);
xaxiemacif_s *xaxiemacif = (xaxiemacif_s *)(xemac->state);

/*
* With AXI Ethernet on Zynq, we observed unexplained delays for
* BD Status update. As a result, we are hitting a condition where
* there are no BDs free to transmit packets. So, we have added
* this logic where we look for the status update in a definite
* loop.
*/
XAxiDma_BdRing *txring = XAxiDma_GetTxRing(&xaxiemacif->axidma);
int count = 100;

SYS_ARCH_PROTECT(lev);

while (count) {

/* check if space is available to send */
if (is_tx_space_available(xaxiemacif)) {
_unbuffered_low_level_output(xaxiemacif, p);
err = ERR_OK;
break;
} else {
#if LINK_STATS
lwip_stats.link.drop++;
#endif
process_sent_bds(txring);
count--;
}
}

if (count == 0) {
print("pack dropped, no space\r\n");
err = ERR_MEM;
}

SYS_ARCH_UNPROTECT(lev);
return err;
}

 

But declarations of func "is_tx_space_available()" is a more than one???

 

0 Kudos
Visitor xilinxnii
Visitor
8,638 Views
Registered: ‎01-11-2014

Re: lwip raw api webserver "pack dropped, no space"

I found where problem, all works OK!
Thank to all.

8,467 Views
Registered: ‎03-25-2014

Re: lwip raw api webserver "pack dropped, no space"

Hello,

 

I have the same problem than you.

 

Do you remenber the solution?

 

Regards

0 Kudos
7,091 Views
Registered: ‎07-05-2014

Re: lwip raw api webserver "pack dropped, no space"

Hi,

I have the same problem than you.

Do you remember your solution?

Regards
0 Kudos
Visitor lbyoopp
Visitor
5,800 Views
Registered: ‎02-08-2015

Re: lwip raw api webserver "pack dropped, no space"

yes, when I use both axi dma and ethernet, there are two definitions in 

 

xaxiemacif.h

xemacpsif.h

 

so, how could I resolve this problem if I want to use both AXI-DMA and Ethernet ?

 

Could you please post how you resolve this problem ?

 

Liu

0 Kudos
Visitor ajile
Visitor
4,302 Views
Registered: ‎02-17-2015

Re: lwip raw api webserver "pack dropped, no space"

I recently was suffering with this issue and came across this post, which didn't give a whole lot of information but at least hinted that it has something to do with the AXI DMA.

 

In my case my PL design is using AXI DMA cores, and everything was working fine before but then I slightly changed the PL design so that the names of the AXI DMA cores were different. I then exported the new hardware to the SDK, which overwrote my old hardware defnition. The XSDK asks you if you want to upgrade your BSPs to align with the new hardware definition so I say OK, but I think this was where the problem was - the upgrade of the BSP, although it seemed to have gone smoothly, appeared to have messed something up in the BSP, particularly with LWIP.

 

The fix - simply delete the old BSP and re create it from scratch based on the new hardware definition and copy in all of the settings from the old BSP. A tip for copying around BSPs by the way is to open the system.mss file in XSDK and go to the source tab and just copy paste everything to the new BSP - saves having to remember which check boxes etc. you had selected in the GUI wizard.

 

Maybe this will help someone else. I am using Vivado 2014.3 though so it's possible this has been fixed by now anyway in newer versions..

0 Kudos
Explorer
Explorer
1,242 Views
Registered: ‎06-19-2015

Re: lwip raw api webserver "pack dropped, no space"

Hi @xilinxnii

 

Pls help me, how you solved it.

 

Thanks

Madhu

0 Kudos
Visitor zaal
Visitor
1,118 Views
Registered: ‎10-24-2017

Re: lwip raw api webserver "pack dropped, no space"

Hello!

 

In our project we are faced with this problem and found out that disabling the Microblaze hardware integer divider solves the problem.

 

If hardware integer divider is on, then the function AxiDma_BdRingCreate (axidma_v7_02_a/src/xaxidma_bdring.c, line 326) always (or with our arguments only, I don't know) returns XST_INVALID_PARAM. This is due to an error in evaluating the condition (axidma_v7_02_a/src/xaxidma_bdring.c, line 367):

 

/* Make sure PhysAddr and VirtAddr are on same Alignment */
if ((PhysAddr % Alignment) || (VirtAddr % Alignment)) {

    xdbg_printf(XDBG_DEBUG_ERROR, "BdRingCreate: Physical address"
                " %x and virtual address %x have different alignment\r\n",
		(unsigned int)PhysAddr, (unsigned int)VirtAddr);
	return XST_INVALID_PARAM;
}

 In our case

PhysAddr = VirtAddr = 0xD0038780

Alignment = 0x80

but condition always true.

 

If the hardware integer divider is off, then the condition is checked correctly.

 

We use EDk/SDK v14.7 (nt64), Microblaze v8.50.c, axi_dma v7.02.a, lwip140 v1.06.a

0 Kudos
Highlighted
Observer santosh_ts
Observer
267 Views
Registered: ‎01-02-2019

Re: lwip raw api webserver "pack dropped, no space"

Hello all,

I am also facing similar issue , is there any solution for this ?

Thank you all in advance.

0 Kudos