Browse Source

Added implementation note on IP routing.

Added reason for min value of 512 on s_PXENV_TFTP_OPEN::PacketSize.
tags/v0.9.3
Michael Brown 19 years ago
parent
commit
6e74dc3460
1 changed files with 33 additions and 2 deletions
  1. 33
    2
      src/include/pxe_api.h

+ 33
- 2
src/include/pxe_api.h View File

565
 	/** Requested size of TFTP packets
565
 	/** Requested size of TFTP packets
566
 	 *
566
 	 *
567
 	 * This is the TFTP "blksize" option.  This must be at least
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
 	UINT16_t PacketSize;
571
 	UINT16_t PacketSize;
572
 } PACKED;
572
 } PACKED;
1633
 
1633
 
1634
 /** @page pxe_notes Etherboot PXE implementation notes
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
 @section pxe_x86_modes x86 processor mode restrictions
1667
 @section pxe_x86_modes x86 processor mode restrictions
1637
 
1668
 
1638
 On the x86 platform, different PXE API calls have different
1669
 On the x86 platform, different PXE API calls have different

Loading…
Cancel
Save