Documentation ¶
Overview ¶
Package reservation is the handler for responding to DHCPv4 messages with only host reservations.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ArchToBootFile = map[iana.Arch]string{ iana.INTEL_X86PC: "undionly.kpxe", iana.NEC_PC98: "undionly.kpxe", iana.EFI_ITANIUM: "undionly.kpxe", iana.DEC_ALPHA: "undionly.kpxe", iana.ARC_X86: "undionly.kpxe", iana.INTEL_LEAN_CLIENT: "undionly.kpxe", iana.EFI_IA32: "ipxe.efi", iana.EFI_X86_64: "ipxe.efi", iana.EFI_XSCALE: "ipxe.efi", iana.EFI_BC: "ipxe.efi", iana.EFI_ARM32: "snp.efi", iana.EFI_ARM64: "snp.efi", iana.EFI_X86_HTTP: "ipxe.efi", iana.EFI_X86_64_HTTP: "ipxe.efi", iana.EFI_ARM32_HTTP: "snp.efi", iana.EFI_ARM64_HTTP: "snp.efi", iana.Arch(41): "snp.efi", }
ArchToBootFile maps supported hardware PXE architectures types to iPXE binary files.
Functions ¶
func GenerateHwName ¶
func GenerateHwName() string
Types ¶
type Handler ¶
type Handler struct { // Backend is the backend to use for getting DHCP data. Backend handler.BackendReader // IPAddr is the IP address to use in DHCP responses. // Option 54 and the sname DHCP header. // This could be a load balancer IP address or an ingress IP address or a local IP address. IPAddr netip.Addr // Log is used to log messages. // `logr.Discard()` can be used if no logging is desired. Log logr.Logger // Netboot configuration Netboot Netboot // OTELEnabled is used to determine if netboot options include otel naming. // When true, the netboot filename will be appended with otel information. // For example, the filename will be "snp.efi-00-23b1e307bb35484f535a1f772c06910e-d887dc3912240434-01". // <original filename>-00-<trace id>-<span id>-<trace flags> OTELEnabled bool // SyslogAddr is the address to send syslog messages to. DHCP Option 7. SyslogAddr netip.Addr //Automatically register all dhcp discoveries as pending hardware AutoRegister bool }
Handler holds the configuration details for the running the DHCP server.
type Netboot ¶
type Netboot struct { // iPXE binary server IP:Port serving via TFTP. IPXEBinServerTFTP netip.AddrPort // IPXEBinServerHTTP is the URL to the IPXE binary server serving via HTTP(s). IPXEBinServerHTTP *url.URL // IPXEScriptURL is the URL to the IPXE script to use. IPXEScriptURL *url.URL // Enabled is whether to enable sending netboot DHCP options. Enabled bool // UserClass (for network booting) allows a custom DHCP option 77 to be used to break out of an iPXE loop. UserClass UserClass }
Netboot holds the netboot configuration details used in running a DHCP server.
type UserClass ¶
type UserClass string
UserClass is DHCP option 77 (https://www.rfc-editor.org/rfc/rfc3004.html).
const ( // If the client has had iPXE burned into its ROM (or is a VM // that uses iPXE as the PXE "ROM"), special handling is // needed because in this mode the client is using iPXE native // drivers and chainloading to a UNDI stack won't work. IPXE UserClass = "iPXE" // If the client identifies as "Tinkerbell", we've already // chainloaded this client to the full-featured copy of iPXE // we supply. We have to distinguish this case so we don't // loop on the chainload step. Tinkerbell UserClass = "Tinkerbell" )
known user-class types. must correspond to DHCP option 77 - User-Class https://www.rfc-editor.org/rfc/rfc3004.html
Click to show internal directories.
Click to hide internal directories.