diff options
| author | Michael Brown | 2014-03-04 14:14:13 +0100 |
|---|---|---|
| committer | Michael Brown | 2014-03-04 14:23:29 +0100 |
| commit | e191298a1d62446646922b1f3d899dfb16da73ff (patch) | |
| tree | 45aed089b8aafd2efd15d2171e314cee37eb1302 /src/arch | |
| parent | [tcpip] Provide tcpip_mtu() to determine the maximum transmission unit (diff) | |
| download | ipxe-e191298a1d62446646922b1f3d899dfb16da73ff.tar.gz ipxe-e191298a1d62446646922b1f3d899dfb16da73ff.tar.xz ipxe-e191298a1d62446646922b1f3d899dfb16da73ff.zip | |
[tcp] Calculate correct MSS from peer address
iPXE currently advertises a fixed MSS of 1460, which is correct only
for IPv4 over Ethernet. For IPv6 over Ethernet, the value should be
1440 (allowing for the larger IPv6 header). For non-Ethernet link
layers, the value should reflect the MTU of the underlying network
device.
Use tcpip_mtu() to calculate the transport-layer MTU associated with
the peer address, and calculate the MSS to allow for an optionless TCP
header as per RFC 6691.
As a side benefit, we can now fail a connection immediately with a
meaningful error message if we have no route to the destination
address.
Reported-by: Anton D. Kachalov <mouse@yandex-team.ru>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch')
0 files changed, 0 insertions, 0 deletions
