From 1b6b09bb514831050b23397c078933c2ace3ff36 Mon Sep 17 00:00:00 2001 From: liuyacan Date: Mon, 16 Aug 2021 10:51:13 +0800 Subject: [PATCH] tcp: Allow accepting session to send custom packet Tcp may want to send acks in established, but the app has not called accept() yet. Type: improvement Signed-off-by: liuyacan Change-Id: I43b8cd386e533ca95c8ec260a0a1f695ea140358 --- src/vnet/session/session_node.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c index b8b5ce2d8de..969f88c7e36 100644 --- a/src/vnet/session/session_node.c +++ b/src/vnet/session/session_node.c @@ -1018,7 +1018,15 @@ session_tx_not_ready (session_t * s, u8 peek_data) /* Can retransmit for closed sessions but can't send new data if * session is not ready or closed */ else if (s->session_state < SESSION_STATE_READY) - return 1; + { + /* Allow accepting session to send custom packets. + * For instance, tcp want to send acks in established, but + * the app has not called accept() yet */ + if (s->session_state == SESSION_STATE_ACCEPTING && + (s->flags & SESSION_F_CUSTOM_TX)) + return 0; + return 1; + } else if (s->session_state >= SESSION_STATE_TRANSPORT_CLOSED) { /* Allow closed transports to still send custom packets. -- 2.16.6