How ipxe/ipxe works
iPXE is network-boot firmware. Its documented user-facing workflow is to start the firmware, choose or script a boot action, retrieve an image or SAN resource, and boot it; it also supports interactive menus and forms. The main entry point’s call to ipxe(NULL) is visible, and the README documents the capabilities. Other runtime links are omitted where the sampled evidence does not establish who calls whom.
Main entry points: autoboot.c Autoboot · main.c Firmware entry · tlskey.c TLS security · httpauth.c HTTP boot
Components 21
Boot control
- Firmware entry
src/core/main.c - Autoboot
src/usr/autoboot.c - PXE menus
src/usr/pxemenu.c - Image commands
src/hci/commands/image_cmd.c
Network boot
- HTTP boot
src/net/tcp/httpauth.c - DHCP configuration
src/net/udp/dhcp.c - Wi-Fi networking
src/net/80211/net80211.c - TLS security
src/crypto/tlskey.c - Certificate validation
src/crypto/x509.c
Boot sources
- SAN boot
src/core/sanboot.c - NFS access
src/net/oncrpc/nfs_open.c - EFI images
src/image/efi_image.c
Firmware interfaces
- Network drivers
src/drivers/net - USB host support
src/drivers/usb/xhci.c - EFI services
src/interface/efi/efi_service.c
PXE compatibility
- UNDI network interface
src/arch/x86/drivers/net/undinet.c - PXE API
src/arch/x86/include/pxe_api.h - PXE data types
src/arch/x86/include/pxe_types.h
Other components
- Boot operator
- Web server
- SAN target
Connections 15
- Boot operator → Firmware entry: starts firmware
- Firmware entry → Autoboot: calls ipxe
src/core/main.c - Boot operator → PXE menus: chooses menu
- Boot operator → Image commands: runs script
- Autoboot → DHCP configuration: configures network
- Autoboot → HTTP boot: retrieves image
- Autoboot → SAN boot: boots SAN
- Autoboot → NFS access: opens NFS
- Autoboot → EFI images: boots image
- Web server → HTTP boot: serves boot files
- Web server → TLS security: secures HTTPS
- TLS security → Certificate validation: validates certificates
- SAN target → SAN boot: provides SAN
- Network drivers → UNDI network interface: supports network boot
- PXE data types → PXE API: defines types
src/arch/x86/include/pxe_api.h