Skip to content

lwip: Improve UDP buffering and thread priority#774

Open
ReenigneArcher wants to merge 1 commit into
XboxDev:masterfrom
ReenigneArcher:lwip-moonlight
Open

lwip: Improve UDP buffering and thread priority#774
ReenigneArcher wants to merge 1 commit into
XboxDev:masterfrom
ReenigneArcher:lwip-moonlight

Conversation

@ReenigneArcher

Copy link
Copy Markdown
Contributor

Increase lwIP resource limits and enable socket features to better handle short, high-rate UDP bursts: raise SYS_MBOX_SIZE to 255, MEMP_NUM_PBUF and PBUF_POOL_SIZE to 128, enable LWIP_IGMP, mDNS support, SO_RCVTIMEO, and SO_RCVBUF.

Add TCPIP_THREAD_PRIO and DEFAULT_THREAD_PRIO so the tcpip thread can drain mailboxes under load. In sys_arch.c, include <windows.h> and apply the requested thread priority when a thread is created.

Make RX_BUFF_CNT follow PBUF_POOL_SIZE in nvnetdrv_lwip.c. Replace the hard RX_POOL allocation assert with a graceful packet drop and link statistics updates, and account for link drops when netif input fails.

These changes reduce packet loss and improve responsiveness under short UDP bursts while avoiding crashes on RX resource exhaustion.

The combination of all of these changes, make streaming in my https://github.com/LizardByte/Moonlight-XboxOG project actually work, in combination with #773

Increase lwIP resource limits and enable socket features to better handle short, high-rate UDP bursts: raise SYS_MBOX_SIZE to 255, MEMP_NUM_PBUF and PBUF_POOL_SIZE to 128, enable LWIP_IGMP, mDNS support, SO_RCVTIMEO, and SO_RCVBUF.

Add TCPIP_THREAD_PRIO and DEFAULT_THREAD_PRIO so the tcpip thread can drain mailboxes under load. In sys_arch.c, include <windows.h> and apply the requested thread priority when a thread is created.

Make RX_BUFF_CNT follow PBUF_POOL_SIZE in nvnetdrv_lwip.c. Replace the hard RX_POOL allocation assert with a graceful packet drop and link statistics updates, and account for link drops when netif input fails.

These changes reduce packet loss and improve responsiveness under short UDP bursts while avoiding crashes on RX resource exhaustion.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant