aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/pxe_api.h
diff options
context:
space:
mode:
authorMichael Brown <mcb30@etherboot.org>2005-05-27 11:36:36 +0000
committerMichael Brown <mcb30@etherboot.org>2005-05-27 11:36:36 +0000
commit6e74dc34601e537bddf131172cc0b0135240e2a0 (patch)
treefc93b6c956d3a640d0d0000f09e5c1b9acfa4e67 /src/include/pxe_api.h
parentaeb984a1a9307a11a8b8c28c185129c0c0cbb910 (diff)
downloadipxe-6e74dc34601e537bddf131172cc0b0135240e2a0.tar.gz
Added implementation note on IP routing.
Added reason for min value of 512 on s_PXENV_TFTP_OPEN::PacketSize.
Diffstat (limited to 'src/include/pxe_api.h')
-rw-r--r--src/include/pxe_api.h35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/include/pxe_api.h b/src/include/pxe_api.h
index da19afb4..53766ee0 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