- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Using SDK 3.5.2 and 3.7.0 I'm able to trigger a packet pool starvation by send 2 or more consecutive packets to the same destination ip and port. Example below:
void application_start(void) {
wiced_init();
if (wiced_network_up(WICED_STA_INTERFACE, WICED_USE_EXTERNAL_DHCP_SERVER, NULL) != WICED_SUCCESS) {
printf("Unable to bring up network\n");
while(1);
}
wiced_udp_socket_t s;
if (wiced_udp_create_socket(&s, 12345, WICED_STA_INTERFACE) != WICED_SUCCESS) {
printf("Unable to create UDP socket\n");
while(1);
}
wiced_ip_address_t address;
if (wiced_ip_get_ipv4_address(WICED_STA_INTERFACE, &address) != WICED_SUCCESS) {
printf("Unable to get local IPv4 address\n");
while(1);
}
const char *payload = "hello world!";
size_t size = strlen(payload);
// random range, ignoring netmask.
for (int i = 0; i < 100; i++) {
char *data;
uint16_t available_data_length;
printf("sending packet %d\n", i);
wiced_packet_t *packet;
if (wiced_packet_create_udp(&s, size, &packet, (uint8_t **)&data, &available_data_length) != WICED_SUCCESS) {
printf("UDP tx packet creation failed\n");
continue;
}
memcpy(data, payload, size);
wiced_packet_set_data_end(packet, (uint8_t *)data + size);
// send 2 packets back to back to same dst ip, port.
wiced_ip_address_t dst = {
.version = WICED_IPV4,
.ip.v4 = (address.ip.v4 & 0xFFFFFF00) | (((i >> 1) + 1) & 0xFF)
};
if (wiced_udp_send(&s, &dst, 34567, packet) != WICED_SUCCESS) {
printf("UDP packet send failed\n");
wiced_packet_delete(packet);
}
}
Logs:
Starting WICED v3.5.2
Platform EMW3165 initialised
Started ThreadX v5.6
Initialising NetX_Duo v5.7_sp2
Creating Packet pools
WWD SDIO interface initialised
WLAN MAC Address : D0:BA:E4:00:E8:4A
WLAN Firmware : wl0: Oct 22 2015 15:05:09 version 5.90.230.15 FWID 01-ffee4f57
Joining : TestAP
Successfully joined : TestAP
Obtaining IPv4 address via DHCP
DHCP CLIENT hostname WICED IP
IPv4 network ready IP: 10.0.0.208
sending packet 0
sending packet 1
sending packet 2
sending packet 3
sending packet 4
sending packet 5
sending packet 6
sending packet 7
sending packet 8
sending packet 9
UDP tx packet creation failed
sending packet 10
UDP tx packet creation failed
sending packet 11
UDP tx packet creation failed
sending packet 12
- Labels:
-
SDK 3.x
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Yes, your observation is correct. If there are no buffers available to queue messages to be sent to destination, application has to wait queued message to be sent. Once the previously queued message is sent it will be marked as available for application to use.
As you see on the .../apps/snip/udp_transmit snip application, the udp data is sent out every second to allow queued data to be actually sent.
Seyhan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think you misunderstood or perhaps I did not make it clear.
1. Sending multiple UDP packets to multiple destination IPs results in a state where the packet pool is never free'd up after transmit - ALL future attempts to send will fail.
2. Sending multiple UDP packets to single destination IP works fine - even WITHOUT the one second delay (I understand your comment re. buffers being full), if it were buffer exhaustion then it should happen in this case too.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
To further clarify, changing lines 40-43 to the following works fine, with or without a delay.
// send 2 packets back to back to same dst ip, port.
wiced_ip_address_t dst = {
.version = WICED_IPV4,
.ip.v4 = (address.ip.v4 & 0xFFFFFF00) | (i & 0xFF),
};
This is definitely a bug in WICED or NetX_Duo. I'm not a total novice, I have built successful commercial products using WICED
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you send multiple packet to multiple IP address (in local network as your example).
The UDP packet only could send out to AIR if ARP resolved get response from the destination IP address!
If there are no destination device could response the ARP request, the ARP request used packet buffer will be freed until time out!
That is why the packet send to single destination or broadcast address work fine! But multiple destination IP address !
I don't think that is bug of NetX_Due!
PS. ARP cache also will be clear in 5 or 10 min.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Jone, that makes sense. But as I have pointed out, sending 100 or even UDP datagrams to unresolved addresses DOES NOT result in the packet pool starvation IF you avoid sending multiple datagrams back to back to same destination IP.
I'll do this one more time, perhaps I'm bad at explaining:
1. Sending multiple datagrams to same destination IP and doing this for more than say 5 or 6 different IPs results in a state where you cannot create any more UDP packets.
2. Sending datagrams to multiple destination IPs (even if ARP does not resolve) works fine.
If you run my test case, you'll see what I'm talking about. I can consistently reproduce it. We can keep debating on the logical WHYs, but the test case clearly demonstrates that it's a bug since the stack does not recover even after 5 to 10 mins.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I used the post test example, add 50ms delay between each send ! and modified to show timing and packet buffer pool when failed!
below is log, which could run through all 100 send
=======================================================
Starting WICED v3.7.0
Platform XXXXXX initialised
Started ThreadX v5.6
Initialising NetX_Duo v5.7_sp2
Creating Packet pools
WWD SDIO interface initialised
WLAN MAC Address : 40:2C:F4:E8:CF:4A
WLAN Firmware : wl0: Oct 22 2015 15:05:09 version 5.90.230.15 FWID 01-722ff8f
Joining : YOUR_AP_SSID
Successfully joined : YOUR_AP_SSID
Obtaining IPv4 address via DHCP
DHCP CLIENT hostname WICED IP
IPv4 network ready IP: 192.168.1.53
Setting IPv6 link-local address
IPv6 network ready IP: FE80:0000:0000:0000:422C:F4FF:FEE8:CF4A
tick: 7696 sending packet 0
tick: 7698 UDP send to 192.168.1.1
tick: 7751 sending packet 1
tick: 7753 UDP send to 192.168.1.1
tick: 7806 sending packet 2
tick: 7808 UDP send to 192.168.1.2
tick: 7861 sending packet 3
tick: 7863 UDP send to 192.168.1.2
tick: 7916 sending packet 4
tick: 7918 UDP send to 192.168.1.3
tick: 7971 sending packet 5
tick: 7973 UDP send to 192.168.1.3
tick: 8026 sending packet 6
tick: 8028 UDP send to 192.168.1.4
tick: 8081 sending packet 7
tick: 8083 UDP send to 192.168.1.4
tick: 8136 sending packet 8
tick: 8138 UDP send to 192.168.1.5
tick: 8191 sending packet 9
tick: 10193 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 12254 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 14315 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 16376 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 18437 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 20498 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 22559 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 24620 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 26540 UDP send to 192.168.1.5
tick: 26593 sending packet 10
tick: 26595 UDP send to 192.168.1.6
tick: 26599 UDP packet send failed r=9
TX pool: t:7 f:6:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 26659 sending packet 11
tick: 26661 UDP send to 192.168.1.6
tick: 26665 UDP packet send failed r=9
TX pool: t:7 f:6:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 26725 sending packet 12
tick: 26727 UDP send to 192.168.1.7
tick: 26731 UDP packet send failed r=9
TX pool: t:7 f:6:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 26791 sending packet 13
tick: 26793 UDP send to 192.168.1.7
tick: 26797 UDP packet send failed r=9
TX pool: t:7 f:6:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 26857 sending packet 14
tick: 26859 UDP send to 192.168.1.8
tick: 26863 UDP packet send failed r=9
TX pool: t:7 f:6:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 26923 sending packet 15
tick: 26925 UDP send to 192.168.1.8
tick: 26929 UDP packet send failed r=9
TX pool: t:7 f:6:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 26989 sending packet 16
tick: 26992 UDP send to 192.168.1.9
tick: 27045 sending packet 17
tick: 27047 UDP send to 192.168.1.9
tick: 27101 sending packet 18
tick: 27103 UDP send to 192.168.1.10
tick: 27157 sending packet 19
tick: 27159 UDP send to 192.168.1.10
tick: 27213 sending packet 20
tick: 27215 UDP send to 192.168.1.11
tick: 27269 sending packet 21
tick: 27271 UDP send to 192.168.1.11
tick: 27325 sending packet 22
tick: 27327 UDP send to 192.168.1.12
tick: 27381 sending packet 23
tick: 27383 UDP send to 192.168.1.12
tick: 27437 sending packet 24
tick: 27439 UDP send to 192.168.1.13
tick: 27493 sending packet 25
tick: 29495 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 31556 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 33617 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 35678 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 37739 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 39800 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 41861 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 43922 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 45540 UDP send to 192.168.1.13
tick: 45593 sending packet 26
tick: 45595 UDP send to 192.168.1.14
tick: 45649 sending packet 27
tick: 45651 UDP send to 192.168.1.14
tick: 45705 sending packet 28
tick: 45707 UDP send to 192.168.1.15
tick: 45761 sending packet 29
tick: 45763 UDP send to 192.168.1.15
tick: 45817 sending packet 30
tick: 46540 UDP send to 192.168.1.16
tick: 46593 sending packet 31
tick: 46595 UDP send to 192.168.1.16
tick: 46649 sending packet 32
tick: 48651 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 50712 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 52773 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 54834 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 56895 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 58956 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 61017 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 63078 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 64540 UDP send to 192.168.1.17
tick: 64593 sending packet 33
tick: 64595 UDP send to 192.168.1.17
tick: 64649 sending packet 34
tick: 64651 UDP send to 192.168.1.18
tick: 64705 sending packet 35
tick: 64707 UDP send to 192.168.1.18
tick: 64761 sending packet 36
tick: 65540 UDP send to 192.168.1.19
tick: 65593 sending packet 37
tick: 65595 UDP send to 192.168.1.19
tick: 65649 sending packet 38
tick: 66540 UDP send to 192.168.1.20
tick: 66593 sending packet 39
tick: 68595 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 70656 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 72717 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 74778 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 76839 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 78900 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 80961 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 82540 UDP send to 192.168.1.20
tick: 82593 sending packet 40
tick: 82595 UDP send to 192.168.1.21
tick: 82649 sending packet 41
tick: 84540 UDP send to 192.168.1.21
tick: 84593 sending packet 42
tick: 84595 UDP send to 192.168.1.22
tick: 84649 sending packet 43
tick: 84651 UDP send to 192.168.1.22
tick: 84705 sending packet 44
tick: 84707 UDP send to 192.168.1.23
tick: 84761 sending packet 45
tick: 85540 UDP send to 192.168.1.23
tick: 85593 sending packet 46
tick: 85595 UDP send to 192.168.1.24
tick: 85649 sending packet 47
tick: 87651 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 89712 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 91773 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 93834 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 95895 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 97956 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 100017 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 100540 UDP send to 192.168.1.24
tick: 100593 sending packet 48
tick: 100595 UDP send to 192.168.1.25
tick: 100649 sending packet 49
tick: 102651 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 103540 UDP send to 192.168.1.25
tick: 103593 sending packet 50
tick: 103595 UDP send to 192.168.1.26
tick: 103649 sending packet 51
tick: 104540 UDP send to 192.168.1.26
tick: 104593 sending packet 52
tick: 104595 UDP send to 192.168.1.27
tick: 104649 sending packet 53
tick: 105540 UDP send to 192.168.1.27
tick: 105593 sending packet 54
tick: 105595 UDP send to 192.168.1.28
tick: 105649 sending packet 55
tick: 107651 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 109712 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 111773 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 113834 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 115895 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 117956 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 118540 UDP send to 192.168.1.28
tick: 118593 sending packet 56
tick: 118595 UDP send to 192.168.1.29
tick: 118649 sending packet 57
tick: 120651 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 121540 UDP send to 192.168.1.29
tick: 121593 sending packet 58
tick: 121595 UDP send to 192.168.1.30
tick: 121649 sending packet 59
tick: 123540 UDP send to 192.168.1.30
tick: 123593 sending packet 60
tick: 123595 UDP send to 192.168.1.31
tick: 123649 sending packet 61
tick: 124540 UDP send to 192.168.1.31
tick: 124593 sending packet 62
tick: 124595 UDP send to 192.168.1.32
tick: 124649 sending packet 63
tick: 126651 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 128712 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 130773 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 132834 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 134895 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 136956 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 137540 UDP send to 192.168.1.32
tick: 137593 sending packet 64
tick: 137595 UDP send to 192.168.1.33
tick: 137649 sending packet 65
tick: 139651 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 140540 UDP send to 192.168.1.33
tick: 140593 sending packet 66
tick: 140595 UDP send to 192.168.1.34
tick: 140649 sending packet 67
tick: 142540 UDP send to 192.168.1.34
tick: 142593 sending packet 68
tick: 142595 UDP send to 192.168.1.35
tick: 142649 sending packet 69
tick: 143540 UDP send to 192.168.1.35
tick: 143593 sending packet 70
tick: 143595 UDP send to 192.168.1.36
tick: 143649 sending packet 71
tick: 145651 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 147712 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 149773 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 151834 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 153895 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 155956 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 156540 UDP send to 192.168.1.36
tick: 156593 sending packet 72
tick: 156595 UDP send to 192.168.1.37
tick: 156649 sending packet 73
tick: 158651 UDP tx packet creation failed r=2
TX pool: t:7 f:0:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 159540 UDP send to 192.168.1.37
tick: 159593 sending packet 74
tick: 159595 UDP send to 192.168.1.38
tick: 159649 sending packet 75
tick: 159651 UDP send to 192.168.1.38
tick: 159705 sending packet 76
tick: 159707 UDP send to 192.168.1.39
tick: 159761 sending packet 77
tick: 159763 UDP send to 192.168.1.39
tick: 159817 sending packet 78
tick: 159819 UDP send to 192.168.1.40
tick: 159873 sending packet 79
tick: 159875 UDP send to 192.168.1.40
tick: 159929 sending packet 80
tick: 159931 UDP send to 192.168.1.41
tick: 159985 sending packet 81
tick: 159987 UDP send to 192.168.1.41
tick: 160041 sending packet 82
tick: 160043 UDP send to 192.168.1.42
tick: 160097 sending packet 83
tick: 160099 UDP send to 192.168.1.42
tick: 160153 sending packet 84
tick: 160155 UDP send to 192.168.1.43
tick: 160209 sending packet 85
tick: 160211 UDP send to 192.168.1.43
tick: 160265 sending packet 86
tick: 160267 UDP send to 192.168.1.44
tick: 160321 sending packet 87
tick: 160323 UDP send to 192.168.1.44
tick: 160377 sending packet 88
tick: 160379 UDP send to 192.168.1.45
tick: 160433 sending packet 89
tick: 160435 UDP send to 192.168.1.45
tick: 160489 sending packet 90
tick: 160491 UDP send to 192.168.1.46
tick: 160545 sending packet 91
tick: 160548 UDP send to 192.168.1.46
tick: 160551 UDP packet send failed r=9
TX pool: t:7 f:1:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 160612 sending packet 92
tick: 160614 UDP send to 192.168.1.47
tick: 160618 UDP packet send failed r=9
TX pool: t:7 f:1:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 160678 sending packet 93
tick: 160680 UDP send to 192.168.1.47
tick: 160684 UDP packet send failed r=9
TX pool: t:7 f:1:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 160744 sending packet 94
tick: 160746 UDP send to 192.168.1.48
tick: 160750 UDP packet send failed r=9
TX pool: t:7 f:1:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 160810 sending packet 95
tick: 160812 UDP send to 192.168.1.48
tick: 160816 UDP packet send failed r=9
TX pool: t:7 f:1:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 160876 sending packet 96
tick: 160878 UDP send to 192.168.1.49
tick: 160882 UDP packet send failed r=9
TX pool: t:7 f:1:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 160942 sending packet 97
tick: 160944 UDP send to 192.168.1.49
tick: 160948 UDP packet send failed r=9
TX pool: t:7 f:1:0 req:0 sus:0 inv:0
RX pool: t:7 f:7:7 req:0 sus:0 inv:0
tick: 161008 sending packet 98
tick: 161010 UDP send to 192.168.1.50
tick: 161064 sending packet 99
tick: 161066 UDP send to 192.168.1.50
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks a lot for running the test case Jone.
I can see you are getting intermittent successes with the send between the failures whereas I was not able to send a packet after the 8th or 9th transmit even with a 1-2s delay between sends.
The question still stands, why does this work with multiple unicasts to different hosts but has failures with multiple back to back packets to same host ?
I'll test this again with SDK 3.7 to check if I'm getting the same behavior on my side.
I'd be very interested to see if you get any errors without back-to-back transmit (see my message, Re: UDP packet pool starvation with NetX_Duo)
Thanks again!