david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

Refer to implementation note on IP routing.

This commit is contained in:
Michael Brown 2005-05-27 11:37:09 +00:00
parent 6e74dc3460
commit 97675c7129
1 changed files with 12 additions and 13 deletions

View File

@ -36,12 +36,14 @@
* @err #PXENV_STATUS_UNDI_INVALID_STATE NIC could not be initialised * @err #PXENV_STATUS_UNDI_INVALID_STATE NIC could not be initialised
* *
* Prepares the PXE stack for communication using pxenv_udp_write() * Prepares the PXE stack for communication using pxenv_udp_write()
* and pxenv_udp_read(). The IP address supplied in * and pxenv_udp_read().
* s_PXENV_UDP_OPEN::src_ip will be recorded and used as the local *
* station's IP address for all further communication, including * The IP address supplied in s_PXENV_UDP_OPEN::src_ip will be
* communication by means other than pxenv_udp_write() and * recorded and used as the local station's IP address for all further
* pxenv_udp_read(). (If s_PXENV_UDP_OPEN::src_ip is 0.0.0.0, the * communication, including communication by means other than
* local station's IP address will remain unchanged.) * pxenv_udp_write() and pxenv_udp_read(). (If
* s_PXENV_UDP_OPEN::src_ip is 0.0.0.0, the local station's IP address
* will remain unchanged.)
* *
* You can only have one open UDP connection at a time. You cannot * You can only have one open UDP connection at a time. You cannot
* have a UDP connection open at the same time as a TFTP connection. * have a UDP connection open at the same time as a TFTP connection.
@ -108,7 +110,7 @@ PXENV_EXIT_t pxenv_udp_close ( struct s_PXENV_UDP_CLOSE *udp_close __unused ) {
* *
* @v udp_write Pointer to a struct s_PXENV_UDP_WRITE * @v udp_write Pointer to a struct s_PXENV_UDP_WRITE
* @v s_PXENV_UDP_WRITE::ip Destination IP address * @v s_PXENV_UDP_WRITE::ip Destination IP address
* @v s_PXENV_UDP_WRITE::gw Gateway IP address, or 0.0.0.0 * @v s_PXENV_UDP_WRITE::gw Relay agent IP address, or 0.0.0.0
* @v s_PXENV_UDP_WRITE::src_port Source UDP port, or 0 * @v s_PXENV_UDP_WRITE::src_port Source UDP port, or 0
* @v s_PXENV_UDP_WRITE::dst_port Destination UDP port * @v s_PXENV_UDP_WRITE::dst_port Destination UDP port
* @v s_PXENV_UDP_WRITE::buffer_size Length of the UDP payload * @v s_PXENV_UDP_WRITE::buffer_size Length of the UDP payload
@ -128,8 +130,8 @@ PXENV_EXIT_t pxenv_udp_close ( struct s_PXENV_UDP_CLOSE *udp_close __unused ) {
* header. * header.
* *
* If s_PXENV_UDP_WRITE::gw is 0.0.0.0, normal IP routing will take * If s_PXENV_UDP_WRITE::gw is 0.0.0.0, normal IP routing will take
* place (using, for example, the default gateway IP address returned * place. See the relevant @ref pxe_routing "implementation note" for
* by the DHCP server). * more details.
* *
* If s_PXENV_UDP_WRITE::src_port is 0, port 2069 will be used. * If s_PXENV_UDP_WRITE::src_port is 0, port 2069 will be used.
* *
@ -143,9 +145,6 @@ PXENV_EXIT_t pxenv_udp_close ( struct s_PXENV_UDP_CLOSE *udp_close __unused ) {
* call this function with a 32-bit stack segment. (See the relevant * call this function with a 32-bit stack segment. (See the relevant
* @ref pxe_x86_pmode16 "implementation note" for more details.) * @ref pxe_x86_pmode16 "implementation note" for more details.)
* *
* @bug s_PXENV_UDP_WRITE::gw is ignored; the default routing table is
* always used.
*
*/ */
PXENV_EXIT_t pxenv_udp_write ( struct s_PXENV_UDP_WRITE *udp_write ) { PXENV_EXIT_t pxenv_udp_write ( struct s_PXENV_UDP_WRITE *udp_write ) {
uint16_t src_port; uint16_t src_port;
@ -304,7 +303,7 @@ PXENV_EXIT_t pxenv_udp_read ( struct s_PXENV_UDP_READ *udp_read ) {
return PXENV_EXIT_SUCCESS; return PXENV_EXIT_SUCCESS;
} }
/** @page pxe_notes PXE implementation notes /** @page pxe_notes Etherboot PXE implementation notes
@section pxe_note_udp The connectionless nature of UDP @section pxe_note_udp The connectionless nature of UDP