aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/tcp
diff options
context:
space:
mode:
authorSimon Zhang <yuwei1.zhang@intel.com>2019-12-24 20:02:20 +0800
committerFlorin Coras <florin.coras@gmail.com>2020-01-15 15:59:19 +0000
commit79bfb9e09c7bf2072d34b2ed6159ba11815dab3a (patch)
treed50fb21269d70a7a0b4ea12ed1835b82a5bddf0f /src/vnet/tcp
parentd63b356bdf29fbb80f810d341dcaf8f5f92121c1 (diff)
tcp: fix tcp check tx offload issue
Type: fix Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com> Change-Id: I3b8755831d762abf51e1cbe1b57024f9297de9a4 Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
Diffstat (limited to 'src/vnet/tcp')
-rwxr-xr-xsrc/vnet/tcp/tcp_input.c8
1 files changed, 6 insertions, 2 deletions
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;
}