From 526d314266f1648ae79d8cdd380edb371fb69e4b Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sat, 13 Jan 2007 17:36:17 +0000 Subject: Advertise a larger MSS to improve TCP performance. --- src/include/gpxe/tcp.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/include') diff --git a/src/include/gpxe/tcp.h b/src/include/gpxe/tcp.h index f9cd41390..c8988cf52 100644 --- a/src/include/gpxe/tcp.h +++ b/src/include/gpxe/tcp.h @@ -27,6 +27,18 @@ struct tcp_header { uint16_t urg; /* Urgent pointer */ }; +/** + * TCP MSS option + */ +struct tcp_mss_option { + uint8_t kind; + uint8_t length; + uint16_t mss; +}; + +/** Code for the TCP MSS option */ +#define TCP_OPTION_MSS 2 + /* * TCP flags */ @@ -212,7 +224,17 @@ struct tcp_header { * guess an arbitrary number that is empirically as large as possible * while avoiding retransmissions due to dropped packets. */ -#define TCP_WINDOW_SIZE 2048 +#define TCP_WINDOW_SIZE 4096 + +/** + * Advertised TCP MSS + * + * We currently hardcode this to a reasonable value and hope that the + * sender uses path MTU discovery. The alternative is breaking the + * abstraction layer so that we can find out the MTU from the IP layer + * (which would have to find out from the net device layer). + */ +#define TCP_MSS 1460 /** TCP maximum segment lifetime * -- cgit v1.2.3-55-g7522