summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteffan Karger <steffan@karger.me>2015-06-30 21:44:56 +0200
committerGert Doering <gert@greenie.muc.de>2015-10-04 22:01:27 +0200
commit29b65ffdb2e7ed3d3b7bcac4048f6cd919ed13b3 (patch)
tree54e179523737fae016cae93791b2fc0423d7abb5
parentad71fe5f79ffbd4c86afa79d4559b08617b41dfb (diff)
downloadopenvpn-29b65ffdb2e7ed3d3b7bcac4048f6cd919ed13b3.tar.gz
openvpn-29b65ffdb2e7ed3d3b7bcac4048f6cd919ed13b3.tar.xz
openvpn-29b65ffdb2e7ed3d3b7bcac4048f6cd919ed13b3.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> (cherry picked from commit fc91d4b0071178e298052078431fb86f03be84fc)
-rw-r--r--src/openvpn/ssl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/openvpn/ssl.c b/src/openvpn/ssl.c
index a17c738..5f2f965 100644
--- a/src/openvpn/ssl.c
+++ b/src/openvpn/ssl.c
@@ -301,8 +301,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