From 243a0433ff05a37113d6890bbeb163bbea033687 Mon Sep 17 00:00:00 2001 From: Dou Chao Date: Tue, 29 Nov 2022 19:41:34 +0800 Subject: vcl: enable gso for 'sendmsg' in LDP mode. Some upon apps(e.g. Nginx-quic) package it's several protocol buffers into a struct msg which is a combination of gso_buffer and gso_size. but if HostStack regardless the gso_size to the buffer and split the buffer with default mss, that cause peer client failed on parsing the package. Type: improvement Signed-off-by: Dou Chao Change-Id: I805eb642be826038ba96d1b85dad8ec0c0f6c459 Signed-off-by: Dou Chao --- src/vnet/session/session_node.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/vnet/session/session_node.c') diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c index be00925bb00..150da259da6 100644 --- a/src/vnet/session/session_node.c +++ b/src/vnet/session/session_node.c @@ -1222,6 +1222,11 @@ session_tx_set_dequeue_params (vlib_main_t * vm, session_tx_context_t * ctx, ASSERT (ctx->hdr.data_length > ctx->hdr.data_offset); len = ctx->hdr.data_length - ctx->hdr.data_offset; + if (ctx->hdr.gso_size) + { + ctx->sp.snd_mss = clib_min (ctx->sp.snd_mss, ctx->hdr.gso_size); + } + /* Process multiple dgrams if smaller than min (buf_space, mss). * This avoids handling multiple dgrams if they require buffer * chains */ -- cgit 1.2.3-korg