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