Jump to main content

##

# 1.2.3.2.2 User Datagram Protocol (UDP) Configurations

UDP Specific User Configurations

- Maximum number of Sockets:

  - Maximum number of UDP sockets that can be opened simultaneously
  - These sockets will be created when the module is initialized.
  - Default value: 10
  - Symbol TCPIP_UDP_MAX_SOCKETS

- Default TX Buffer Size:

  - Default socket TX buffer size.
  - Note that this setting affects all UDP sockets that are created and, together with TCPIP_UDP_MAX_SOCKETS, has a great impact on the heap size that is used by the stack (see TCPIP_STACK_DRAM_SIZE setting).
  - When large TX bufferrs are needed, probably a dynamic, per socket approach, is a better choice (see TCPIP_UDP_OptionsSet function).
  - Default value: 512
  - Symbol TCPIP_UDP_SOCKET_DEFAULT_TX_SIZE

- Enable Console Commands:

  - Enable the UDP TCP/IP Console Commands
  - This setting will add a UDP "info" command to the TCP/IP command menu allowing a run time inspection of the UDP sockets
  - Set the value to 1 to enable, 0 to disable the feature.
  - Note: to have the UDP commands available the TCP/IP commands need to be enabled.
  - Default value: false
  - Symbol: TCPIP_UDP_COMMANDS

- Calculate TX Checksum:

  - Calculate and transmit a checksum when sending data.
  - Checksum is not mandatory for UDP packets but is highly recommended.
  - This will affect the UDP TX performance.
  - Default value: true
  - Symbol TCPIP_UDP_USE_TX_CHECKSUM

- Calculate RX Checksum:

  - Check incoming packets to have proper checksum.
  - Checksum is not mandatory for UDP packets but is highly recommended.
  - This will affect the UDP RX performance.
  - Default value: true
  - Symbol TCPIP_UDP_USE_RX_CHECKSUM

- TX Queue Limit:

  - The maximum number of TX packets that can be queued by an UDP socket at a certain time.
  - For sockets that need to transfer a lot of data (Iperf, for example), especially on slow connections this limit prevents running out of memory because the MAC/PHY transfer cannot keep up with the UDP packet allocation rate imposed by the application.
  - Adjust depending on the TCPIP_UDP_SOCKET_DEFAULT_TX_SIZE, the connection speed and the amount of memory available to the stack.
  - Default value: 3
  - Symbol TCPIP_UDP_SOCKET_DEFAULT_TX_QUEUE_LIMIT

- RX Queue Limit:

  - The maximum number of RX packets that can be queued by an UDP socket at a certain time.
  - Note that UDP sockets do not use their own RX buffers but instead use the network driver supplied packets and a timely processing is critical to avoid packet memory starvation for the whole stack.
  - This symbol sets the maximum number of UDP buffers/packets that can be queued for a UDP socket at a certain time.
  - Once this limit is reached further incoming packets are silently discarded.
  - Adjust depending on the number of RX buffers that are available for the stack and the amount of memory available to the stack.
  - Default value: 3
  - Symbol TCPIP_UDP_SOCKET_DEFAULT_RX_QUEUE_LIMIT

- Enable Pool Buffers:

  - Enable the build of the pre-allocated pool buffers option
  - Default value: false
  - Symbol TCPIP_UDP_USE_POOL_BUFFERS

- Number of Socket Pool Buffers:

  - Number of buffers in the private UDP pool.
  - These are preallocated buffers that are to be used by UDP sockets only.
  - This improves the UDP socket throughput and is meant only for UDP sockets that have to sustain high TX traffic rate.
  - However, this memory is not returned to the stack heap, it always belongs to UDP.
  - A socket needs to have an option set in order to use the buffers pool (see the UDPSetOptions()).
  - Use 0 to disable the feature.
  - Default value: 4
  - Symbol TCPIP_UDP_SOCKET_POOL_BUFFERS

- Pool Buffer Size:

  - Size of the buffers in the UDP pool.
  - Any UDP socket that is enabled to use the pool and has the TX size <= than this size can use a buffer from the pool.
  - Note that this setting, together with TCPIP_UDP_SOCKET_POOL_BUFFERS, has impact on the heap size that is used by the stack (see TCPIP_STACK_DRAM_SIZE setting).
  - Default value: 512
  - Symbol TCPIP_UDP_SOCKET_POOL_BUFFER_SIZE

- Enable External Packet Processing: // This setting enables/disables the processing of the RX packets by an external handler // The user of the UDP can register an external function to process the incoming packets // If true, the functionality is built in and could be used by the application // If false, the functionality does not exist and the generated code is slightly smaller

  - Default value: false
  - Symbol TCPIP_UDP_EXTERN_PACKET_PROCESS