From 6e74dc34601e537bddf131172cc0b0135240e2a0 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 27 May 2005 11:36:36 +0000 Subject: [PATCH] Added implementation note on IP routing. Added reason for min value of 512 on s_PXENV_TFTP_OPEN::PacketSize. --- src/include/pxe_api.h | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/include/pxe_api.h b/src/include/pxe_api.h index da19afb4f..53766ee07 100644 --- a/src/include/pxe_api.h +++ b/src/include/pxe_api.h @@ -565,8 +565,8 @@ struct s_PXENV_TFTP_OPEN { /** Requested size of TFTP packets * * This is the TFTP "blksize" option. This must be at least - * 512, according to the PXE specification, though no reason - * is offered. + * 512, since servers that do not support TFTP options cannot + * negotiate blocksizes smaller than this. */ UINT16_t PacketSize; } PACKED; @@ -1633,6 +1633,37 @@ extern PXENV_EXIT_t undi_loader ( struct s_UNDI_LOADER *undi_loader ); /** @page pxe_notes Etherboot PXE implementation notes +@section pxe_routing IP routing + +Several PXE API calls (e.g. pxenv_tftp_open() and pxenv_udp_write()) +allow for the caller to specify a "relay agent IP address", often in a +field called "gateway" or similar. The PXE specification states that +"The IP layer should provide space for a minimum of four routing +entries obtained from the default router and static route DHCP option +tags in the DHCPACK message, plus any non-zero giaddr field from the +DHCPOFFER message(s) accepted by the client". + +The DHCP static route option ("option static-routes" in dhcpd.conf) +works only for classed IP routing (i.e. it provides no way to specify +a subnet mask). Since virtually everything now uses classless IP +routing, the DHCP static route option is almost totally useless, and +is (according to the dhcp-options man page) not implemented by any of +the popular DHCP clients. + +This leaves the caller-specified "relay agent IP address", the giaddr +field from the DHCPOFFER message(s) and the default gateway(s) +provided via the routers option ("option routers" in dhcpd.conf) in +the DHCPACK message. Each of these is a default gateway address. +It's a fair bet that the routers option should take priority over the +giaddr field, since the routers option has to be explicitly specified +by the DHCP server operator. Similarly, it's fair to assume that the +caller-specified "relay agent IP address", if present, should take +priority over any other routing table entries. + +@bug Etherboot currently ignores all potential sources of routing +information other than the first router provided to it by a DHCP +routers option. + @section pxe_x86_modes x86 processor mode restrictions On the x86 platform, different PXE API calls have different