From: liuyacan Date: Mon, 16 Aug 2021 02:51:13 +0000 (+0800) Subject: tcp: Allow accepting session to send custom packet X-Git-Tag: v22.02-rc0~90 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=1b6b09bb514831050b23397c078933c2ace3ff36;p=vpp.git 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 --- 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.