diff options
author | Steffan Karger <steffan@karger.me> | 2015-06-30 21:44:56 +0200 |
---|---|---|
committer | Gert Doering <gert@greenie.muc.de> | 2015-07-01 16:51:38 +0200 |
commit | fc91d4b0071178e298052078431fb86f03be84fc (patch) | |
tree | da6b04e32ed4160481374d4e93153d7362ff3cb3 /src/openvpn | |
parent | 68eecf76978a80bd5d88e944e4ed5e42bf2fd8e4 (diff) | |
download | openvpn-fc91d4b0071178e298052078431fb86f03be84fc.tar.gz openvpn-fc91d4b0071178e298052078431fb86f03be84fc.tar.xz openvpn-fc91d4b0071178e298052078431fb86f03be84fc.zip |
Increase control channel packet size for faster handshakes
Instead of limiting the control channel TCP/UDP packet payload size at
'100 bytes + real control channel overhead' (~140 bytes ethernet payload),
increase the max TCP/UDP payload size to '1250 bytes - calculated overhead'
(~1210 bytes ethernet payload).
Note that this patch does *not* yield an optimal solution, but it is a
simple and rather safe change that will improve connection setup times
significantly.
v2: use the mininum value of --link-mtu and 1250 to give the user a way to
reduce control packet size if really needed.
trac #545
Signed-off-by: Steffan Karger <steffan@karger.me>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1435693496-10931-1-git-send-email-steffan@karger.me>
URL: http://article.gmane.org/gmane.network.openvpn.devel/9841
Signed-off-by: Gert Doering <gert@greenie.muc.de>
Diffstat (limited to 'src/openvpn')
-rw-r--r-- | src/openvpn/ssl.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/openvpn/ssl.c b/src/openvpn/ssl.c index ebb2f0d..4e44410 100644 --- a/src/openvpn/ssl.c +++ b/src/openvpn/ssl.c @@ -298,8 +298,9 @@ tls_init_control_channel_frame_parameters(const struct frame *data_channel_frame reliable_ack_adjust_frame_parameters (frame, CONTROL_SEND_ACK_MAX); frame_add_to_extra_frame (frame, SID_SIZE + sizeof (packet_id_type)); - /* set dynamic link MTU to minimum value */ - frame_set_mtu_dynamic (frame, 0, SET_MTU_TUN); + /* set dynamic link MTU to cap control channel packets at 1250 bytes */ + ASSERT (TUN_LINK_DELTA (frame) < min_int (frame->link_mtu, 1250)); + frame->link_mtu_dynamic = min_int (frame->link_mtu, 1250) - TUN_LINK_DELTA (frame); } void |