From: Simon Zhang Date: Tue, 24 Dec 2019 12:02:20 +0000 (+0800) Subject: tcp: fix tcp check tx offload issue X-Git-Tag: v20.05-rc0~2 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;ds=sidebyside;h=79bfb9e09c7bf2072d34b2ed6159ba11815dab3a;p=vpp.git tcp: fix tcp check tx offload issue Type: fix Signed-off-by: Simon Zhang Change-Id: I3b8755831d762abf51e1cbe1b57024f9297de9a4 Signed-off-by: Simon Zhang --- diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c index cb5020d118e..cf74fb91ce1 100755 --- a/src/vnet/tcp/tcp_input.c +++ b/src/vnet/tcp/tcp_input.c @@ -2438,11 +2438,15 @@ tcp_check_tx_offload (tcp_connection_t * tc, int is_ipv4) } lb = load_balance_get (lb_idx); + if (PREDICT_FALSE (lb->lb_n_buckets > 1)) + return; dpo = load_balance_get_bucket_i (lb, 0); - sw_if_idx = dpo->dpoi_index; - hw_if = vnet_get_sup_hw_interface (vnm, sw_if_idx); + sw_if_idx = dpo_get_urpf (dpo); + if (PREDICT_FALSE (sw_if_idx == ~0)) + return; + hw_if = vnet_get_sup_hw_interface (vnm, sw_if_idx); if (hw_if->flags & VNET_HW_INTERFACE_FLAG_SUPPORTS_GSO) tc->cfg_flags |= TCP_CFG_F_TSO; }