8 Replies Latest reply on Aug 10, 2016 4:02 AM by mrdec_2167091

    UDP packet pool starvation with NetX_Duo

      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
      
        • 1. Re: UDP packet pool starvation with NetX_Duo

          Any Cypress / WICED team members out here that could help with this ? I'm working on a late stage prototype and this seems to be a roadblock.

           

          Thanks

           

          /cc GregG_16 MichaelF_56

          • 2. Re: UDP packet pool starvation with NetX_Duo
            SeyhanA_31

            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

            1 of 1 people found this helpful
            • 3. Re: UDP packet pool starvation with NetX_Duo

              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.

              • 4. Re: UDP packet pool starvation with NetX_Duo

                SeyhanA_31

                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

                • 5. Re: UDP packet pool starvation with NetX_Duo
                  JoYi_1844281

                  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.

                  1 of 1 people found this helpful
                  • 6. Re: UDP packet pool starvation with NetX_Duo

                    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.

                    • 7. Re: UDP packet pool starvation with NetX_Duo
                      JoYi_1844281

                      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

                      1 of 1 people found this helpful
                      • 8. Re: UDP packet pool starvation with NetX_Duo

                        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!