
On 2023-09-26 9:45 a.m., Peter Robinson wrote:
Hi Sean,
In our datacenter application, a single DHCP server is servicing 36000+ clients. Improvements are required to the DHCPv4 retransmission behavior to align with RFC and ensure less pressure is exerted on the server:
- retransmission backoff interval maximum is configurable (environment variable bootpretransmitperiodmax)
- initial retransmission backoff interval is configurable (environment variable bootpretransmitperiodinit)
- transaction ID is kept the same for each BOOTP/DHCPv4 request (not recreated on each retry)
Might be also worth looking at the series adding LWIP support [1] and see what impact that may have on this too.
Peter
[1]https://lists.denx.de/pipermail/u-boot/2023-September/531716.html
I'm aware of the LWIP addition but haven't made any attempt to characterize the retransmission behavior.
My understanding is that LWIP doesn't support DHCPv6 or TFTP with IPv6 yet. Our preference would be to stick with the u-boot networking stack for now until LWIP adds full support for IPv6.
Given the importance of the retransmission behavior is for our use-case (36000+ clients pers server), we would have to qualify/validate LWIP before transitioning.
For our application we'll use:
- bootpretransmitperiodmax=16000
- bootpretransmitperiodinit=2000
A new configuration BOOTP_RANDOM_XID has been added to enable a randomized BOOTP/DHCPv4 transaction ID.
Add functionality for DHCPv4 sending/parsing option 209 (PXE config file). Enabled with Kconfig BOOTP_PXE_DHCP_OPTION. Note, this patch was submitted previously but this latest version has been enhanced to avoid a possible double free().
Sean Edmond (3): net: Get pxe config file from dhcp option 209 net: bootp: BOOTP/DHCPv4 retransmission improvements net: bootp: add config option BOOTP_RANDOM_XID
cmd/Kconfig | 11 +++++++ cmd/pxe.c | 10 +++++++ net/bootp.c | 85 +++++++++++++++++++++++++++++++++++++++++++---------- 3 files changed, 91 insertions(+), 15 deletions(-)
-- 2.40.0