Name update

This commit is contained in:
Miles Ward
2026-04-29 02:47:00 -04:00
commit 3517c67831
66 changed files with 9016 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
//! DHCP proxy (RFC 4578 "PXE Boot Server Discovery").
//!
//! Listens on UDP/67 (broadcast) and UDP/4011 (PXE boot server). Never
//! assigns IPs — only returns boot parameters (siaddr, option 66 TFTP server,
//! option 67 boot filename, and the mandatory option 60 "PXEClient" echo).
//!
//! Key decisions (see architecture memory for rationale):
//! - Single code path handles both 67 and 4011; distinguished by port.
//! - We set `SO_REUSEADDR` + `SO_BROADCAST` and enable `IP_PKTINFO` so we can
//! (a) learn the destination interface for multi-homed pods and (b) reply
//! back through the correct interface. This lets us run behind host-network
//! in OpenShift without needing `SO_BINDTODEVICE` (which requires NET_RAW).
//! - Classification is: option 77 user-class `iPXE` → serve HTTP script URL;
//! option 60 starts `HTTPClient` → serve HTTP URL directly (UEFI HTTP boot);
//! otherwise → TFTP + arch-specific iPXE binary.
//! - We MUST echo `option 60 = "PXEClient"` (or `"HTTPClient"`) in replies or
//! clients silently drop them.
#![forbid(unsafe_code)]
pub mod reply;
pub mod server;
pub use server::DhcpProxyServer;