[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lwip-users] "pack dropped, no space" after 7 hrs and 35 min
From: |
santosh_ts |
Subject: |
Re: [lwip-users] "pack dropped, no space" after 7 hrs and 35 min |
Date: |
Tue, 30 Jul 2019 22:33:10 -0700 (MST) |
How many packets have you sent in that time?
> It sent almost 21910101 packets.
How many packet buffers have you allocated?
>I have allocated 30 bytes.
> st_psnd_UDP1 = pbuf_alloc(PBUF_TRANSPORT, 30, PBUF_RAM);// Tried with
> 30,8,9
<http://lwip.100.n7.nabble.com/file/t2266/Capture.png>
#define MEM_ALIGNMENT 64
#define MEM_SIZE 524288
#define MEMP_NUM_PBUF 1024 //16 // 32 // 64 // 512
#define MEMP_NUM_UDP_PCB 20 //4 // 10
#define MEMP_NUM_TCP_PCB 32
#define MEMP_NUM_TCP_PCB_LISTEN 8
#define MEMP_NUM_TCP_SEG 256
#define MEMP_NUM_SYS_TIMEOUT 8
#define MEMP_NUM_NETBUF 8
#define MEMP_NUM_NETCONN 16
#define MEMP_NUM_TCPIP_MSG_API 16
#define MEMP_NUM_TCPIP_MSG_INPKT 64
#define MEMP_NUM_SYS_TIMEOUT 8
#define PBUF_POOL_SIZE 16384
#define PBUF_POOL_BUFSIZE 1700
#define PBUF_LINK_HLEN 16
#define ARP_TABLE_SIZE 10
#define ARP_QUEUEING 1
At what rate are you attempting to send these UDP packets?
>I tried to send packets with 10 ms duration and 100ms duration, in both
cases it stopped transmitting after 7 hrs 35 min.
Is there anything else that happens at 7 hours and 35 minutes?
>I have configured 8 ports(AXI Ethernet) and PS Ethernet in Zynq evaluation
board.I am sending packets on all 8 AXI Ethernet ports periodically .
> I am getting error in below function as i am AXI Ethernet.
static err_t low_level_output_axi(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);
#ifdef XLWIP_CONFIG_INCLUDE_AXI_ETHERNET_DMA
/*
* 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);
#endif
int count = 100;
SYS_ARCH_PROTECT(lev);
while (count)
{
/* check if space is available to send */
if (is_tx_space_available_axi(xaxiemacif))
{
_unbuffered_low_level_output_axi(xaxiemacif, p);
//pbuf_free(p); // added
err = ERR_OK;
break;
}
else
{
#if LINK_STATS
lwip_stats.link.drop++;
#endif
#ifdef XLWIP_CONFIG_INCLUDE_AXI_ETHERNET_DMA
process_sent_bds_axi(txring);
#endif
count--;
}
}
if (count == 0)
{
b_Reset = TRUE;
print("pack dropped, no space low_level_output_axi\r\n");
err = ERR_MEM;
}
SYS_ARCH_UNPROTECT(lev);
return err;
}
i tried to reset the FIFO after i get pack dropped, no space
low_level_output error, but still i am not able to see transmission.
What other network activity or protocols are active at the same time?
> Once packets are stopped transmitting from board , i can see
> ICMPv6,IGMPv3,MDNS, SSDP in the trace.
Can you provide a packet trace file?
>I have attached the snapshot
I took the reference from git hub to build this project belowo is the link
https://github.com/fpgadeveloper/ethernet-fmc-axi-eth
--
Sent from: http://lwip.100.n7.nabble.com/lwip-users-f3.html