
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
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