|
@@ -36,12 +36,14 @@
|
36
|
36
|
* @err #PXENV_STATUS_UNDI_INVALID_STATE NIC could not be initialised
|
37
|
37
|
*
|
38
|
38
|
* Prepares the PXE stack for communication using pxenv_udp_write()
|
39
|
|
- * and pxenv_udp_read(). The IP address supplied in
|
40
|
|
- * s_PXENV_UDP_OPEN::src_ip will be recorded and used as the local
|
41
|
|
- * station's IP address for all further communication, including
|
42
|
|
- * communication by means other than pxenv_udp_write() and
|
43
|
|
- * pxenv_udp_read(). (If s_PXENV_UDP_OPEN::src_ip is 0.0.0.0, the
|
44
|
|
- * local station's IP address will remain unchanged.)
|
|
39
|
+ * and pxenv_udp_read().
|
|
40
|
+ *
|
|
41
|
+ * The IP address supplied in s_PXENV_UDP_OPEN::src_ip will be
|
|
42
|
+ * recorded and used as the local station's IP address for all further
|
|
43
|
+ * communication, including communication by means other than
|
|
44
|
+ * pxenv_udp_write() and pxenv_udp_read(). (If
|
|
45
|
+ * s_PXENV_UDP_OPEN::src_ip is 0.0.0.0, the local station's IP address
|
|
46
|
+ * will remain unchanged.)
|
45
|
47
|
*
|
46
|
48
|
* You can only have one open UDP connection at a time. You cannot
|
47
|
49
|
* 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 ) {
|
108
|
110
|
*
|
109
|
111
|
* @v udp_write Pointer to a struct s_PXENV_UDP_WRITE
|
110
|
112
|
* @v s_PXENV_UDP_WRITE::ip Destination IP address
|
111
|
|
- * @v s_PXENV_UDP_WRITE::gw Gateway IP address, or 0.0.0.0
|
|
113
|
+ * @v s_PXENV_UDP_WRITE::gw Relay agent IP address, or 0.0.0.0
|
112
|
114
|
* @v s_PXENV_UDP_WRITE::src_port Source UDP port, or 0
|
113
|
115
|
* @v s_PXENV_UDP_WRITE::dst_port Destination UDP port
|
114
|
116
|
* @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 ) {
|
128
|
130
|
* header.
|
129
|
131
|
*
|
130
|
132
|
* If s_PXENV_UDP_WRITE::gw is 0.0.0.0, normal IP routing will take
|
131
|
|
- * place (using, for example, the default gateway IP address returned
|
132
|
|
- * by the DHCP server).
|
|
133
|
+ * place. See the relevant @ref pxe_routing "implementation note" for
|
|
134
|
+ * more details.
|
133
|
135
|
*
|
134
|
136
|
* If s_PXENV_UDP_WRITE::src_port is 0, port 2069 will be used.
|
135
|
137
|
*
|
|
@@ -143,9 +145,6 @@ PXENV_EXIT_t pxenv_udp_close ( struct s_PXENV_UDP_CLOSE *udp_close __unused ) {
|
143
|
145
|
* call this function with a 32-bit stack segment. (See the relevant
|
144
|
146
|
* @ref pxe_x86_pmode16 "implementation note" for more details.)
|
145
|
147
|
*
|
146
|
|
- * @bug s_PXENV_UDP_WRITE::gw is ignored; the default routing table is
|
147
|
|
- * always used.
|
148
|
|
- *
|
149
|
148
|
*/
|
150
|
149
|
PXENV_EXIT_t pxenv_udp_write ( struct s_PXENV_UDP_WRITE *udp_write ) {
|
151
|
150
|
uint16_t src_port;
|
|
@@ -304,7 +303,7 @@ PXENV_EXIT_t pxenv_udp_read ( struct s_PXENV_UDP_READ *udp_read ) {
|
304
|
303
|
return PXENV_EXIT_SUCCESS;
|
305
|
304
|
}
|
306
|
305
|
|
307
|
|
-/** @page pxe_notes PXE implementation notes
|
|
306
|
+/** @page pxe_notes Etherboot PXE implementation notes
|
308
|
307
|
|
309
|
308
|
@section pxe_note_udp The connectionless nature of UDP
|
310
|
309
|
|