public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v6 0/3] BOOTP/DHCPv4 enhancements
@ 2024-04-29 18:33 Sean Edmond
  2024-04-29 18:33 ` [PATCH v6 1/3] net: Enhancements for dhcp option 209 Sean Edmond
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Sean Edmond @ 2024-04-29 18:33 UTC (permalink / raw)
  To: u-boot
  Cc: trini, Sean Edmond, AKASHI Takahiro, Bin Meng, Bin Meng,
	Charles Hardin, Francis Laniel, Heinrich Schuchardt,
	Ilias Apalodimas, Joe Hershberger, Marek Vasut,
	Mattijs Korpershoek, Michal Simek, Oleksandr Suvorov,
	Peter Robinson, Ramon Fried, Sean Anderson, Sean Anderson,
	Simon Glass, Vincent Stehlé


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)

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.

Enhance DHCPv4 sending/parsing option 209 (PXE config file).  A previous
patch was accepted.  A new patch fixes a possible double free() and
addresses latest review comments.

Changes in v7:
- Remove "depends on LIB_RAND || LIB_HW_RAND" from CMD_BOOTP
- Add CMD_BOOTP/CMD_DHCP/CMD_DHCP6 to LIB_RAND menu choice
- Add space after "config CMD_DHCP"

Changes in v6:
- CMD_BOOTP should "depends on LIB_RAND || LIB_HW_RAND"

Changes in v5:
- add change log to individual patches
- fix depends for BOOTP_RANDOM_XID:
  "depends on CMD_BOOTP && (LIB_RAND || LIB_HW_RAND)"

Changes in v4:
- rebase master and resolve conflicts
- default y for BOOTP_PXE_DHCP_OPTION (feedback from review)
- Add "select LIB_RAND" for "config CMD_BOOTP" (retransmission
  improvements require rand())

Changes in v3:
- add define for option 209 and rfc5071 reference
- Set RETRANSMIT_PERIOD_MAX_MS=60000
- Add randomization factor to retransmission timeout
- Add depends for BOOTP_RANDOM_XID

Changes in v2:
- use env_get_ulong() to get environment variables

Sean Edmond (3):
  net: Enhancements for dhcp option 209
  net: bootp: BOOTP/DHCPv4 retransmission improvements
  net: bootp: add config option BOOTP_RANDOM_XID

 cmd/Kconfig |  8 ++++++
 cmd/pxe.c   |  2 ++
 lib/Kconfig |  3 ++-
 net/bootp.c | 76 +++++++++++++++++++++++++++++++++++++++++------------
 net/bootp.h |  2 ++
 5 files changed, 73 insertions(+), 18 deletions(-)

-- 
2.42.0


^ permalink raw reply	[flat|nested] 6+ messages in thread
* [PATCH v6 0/3] BOOTP/DHCPv4 enhancements
@ 2023-11-22 23:27 Sean Edmond
  2023-11-22 23:27 ` [PATCH v6 1/3] net: Enhancements for dhcp option 209 Sean Edmond
  0 siblings, 1 reply; 6+ messages in thread
From: Sean Edmond @ 2023-11-22 23:27 UTC (permalink / raw)
  To: u-boot
  Cc: trini, Sean Edmond, Abdellatif El Khlifi, Bin Meng,
	Heinrich Schuchardt, Joe Hershberger, Marek Vasut, Michal Simek,
	Ramon Fried, Roger Knecht, Simon Glass, Tobias Waldekranz


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)

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.

Enhance DHCPv4 sending/parsing option 209 (PXE config file).  A previous
patch was accepted.  A new patch fixes a possible double free() and
addresses latest review comments.

Changes in v6:
- CMD_BOOTP should "depends on LIB_RAND || LIB_HW_RAND"

Changes in v5:
- add change log to individual patches
- fix depends for BOOTP_RANDOM_XID:
  "depends on CMD_BOOTP && (LIB_RAND || LIB_HW_RAND)"

Changes in v4:
- rebase master and resolve conflicts
- default y for BOOTP_PXE_DHCP_OPTION (feedback from review)
- Add "select LIB_RAND" for "config CMD_BOOTP" (retransmission
  improvements require rand())

Changes in v3:
- add define for option 209 and rfc5071 reference
- Set RETRANSMIT_PERIOD_MAX_MS=60000
- Add randomization factor to retransmission timeout
- Add depends for BOOTP_RANDOM_XID

Changes in v2:
- use env_get_ulong() to get environment variables

Sean Edmond (3):
  net: Enhancements for dhcp option 209
  net: bootp: BOOTP/DHCPv4 retransmission improvements
  net: bootp: add config option BOOTP_RANDOM_XID

 cmd/Kconfig | 10 ++++++-
 cmd/pxe.c   |  2 ++
 net/bootp.c | 76 +++++++++++++++++++++++++++++++++++++++++------------
 net/bootp.h |  2 ++
 4 files changed, 72 insertions(+), 18 deletions(-)

-- 
2.42.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-05-08 15:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-29 18:33 [PATCH v6 0/3] BOOTP/DHCPv4 enhancements Sean Edmond
2024-04-29 18:33 ` [PATCH v6 1/3] net: Enhancements for dhcp option 209 Sean Edmond
2024-04-29 18:33 ` [PATCH v6 2/3] net: bootp: BOOTP/DHCPv4 retransmission improvements Sean Edmond
2024-05-08 15:32   ` Tom Rini
2024-04-29 18:33 ` [PATCH v6 3/3] net: bootp: add config option BOOTP_RANDOM_XID Sean Edmond
  -- strict thread matches above, loose matches on Subject: below --
2023-11-22 23:27 [PATCH v6 0/3] BOOTP/DHCPv4 enhancements Sean Edmond
2023-11-22 23:27 ` [PATCH v6 1/3] net: Enhancements for dhcp option 209 Sean Edmond

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox