|
@@ -565,8 +565,8 @@ struct s_PXENV_TFTP_OPEN {
|
565
|
565
|
/** Requested size of TFTP packets
|
566
|
566
|
*
|
567
|
567
|
* This is the TFTP "blksize" option. This must be at least
|
568
|
|
- * 512, according to the PXE specification, though no reason
|
569
|
|
- * is offered.
|
|
568
|
+ * 512, since servers that do not support TFTP options cannot
|
|
569
|
+ * negotiate blocksizes smaller than this.
|
570
|
570
|
*/
|
571
|
571
|
UINT16_t PacketSize;
|
572
|
572
|
} PACKED;
|
|
@@ -1633,6 +1633,37 @@ extern PXENV_EXIT_t undi_loader ( struct s_UNDI_LOADER *undi_loader );
|
1633
|
1633
|
|
1634
|
1634
|
/** @page pxe_notes Etherboot PXE implementation notes
|
1635
|
1635
|
|
|
1636
|
+@section pxe_routing IP routing
|
|
1637
|
+
|
|
1638
|
+Several PXE API calls (e.g. pxenv_tftp_open() and pxenv_udp_write())
|
|
1639
|
+allow for the caller to specify a "relay agent IP address", often in a
|
|
1640
|
+field called "gateway" or similar. The PXE specification states that
|
|
1641
|
+"The IP layer should provide space for a minimum of four routing
|
|
1642
|
+entries obtained from the default router and static route DHCP option
|
|
1643
|
+tags in the DHCPACK message, plus any non-zero giaddr field from the
|
|
1644
|
+DHCPOFFER message(s) accepted by the client".
|
|
1645
|
+
|
|
1646
|
+The DHCP static route option ("option static-routes" in dhcpd.conf)
|
|
1647
|
+works only for classed IP routing (i.e. it provides no way to specify
|
|
1648
|
+a subnet mask). Since virtually everything now uses classless IP
|
|
1649
|
+routing, the DHCP static route option is almost totally useless, and
|
|
1650
|
+is (according to the dhcp-options man page) not implemented by any of
|
|
1651
|
+the popular DHCP clients.
|
|
1652
|
+
|
|
1653
|
+This leaves the caller-specified "relay agent IP address", the giaddr
|
|
1654
|
+field from the DHCPOFFER message(s) and the default gateway(s)
|
|
1655
|
+provided via the routers option ("option routers" in dhcpd.conf) in
|
|
1656
|
+the DHCPACK message. Each of these is a default gateway address.
|
|
1657
|
+It's a fair bet that the routers option should take priority over the
|
|
1658
|
+giaddr field, since the routers option has to be explicitly specified
|
|
1659
|
+by the DHCP server operator. Similarly, it's fair to assume that the
|
|
1660
|
+caller-specified "relay agent IP address", if present, should take
|
|
1661
|
+priority over any other routing table entries.
|
|
1662
|
+
|
|
1663
|
+@bug Etherboot currently ignores all potential sources of routing
|
|
1664
|
+information other than the first router provided to it by a DHCP
|
|
1665
|
+routers option.
|
|
1666
|
+
|
1636
|
1667
|
@section pxe_x86_modes x86 processor mode restrictions
|
1637
|
1668
|
|
1638
|
1669
|
On the x86 platform, different PXE API calls have different
|