From cd120f9bbb2101dfd7eca11d1a28e06ac5ace479 Mon Sep 17 00:00:00 2001 From: Chenmin Sun Date: Mon, 20 Jan 2020 20:17:09 +0800 Subject: dpdk: fix flow(with mark action) deletion crash issue Type: fix this patch fixes mark flow deletion crash issue, see below test flow add src-ip any proto udp src-port 111 dst-port 222 mark 100 test flow enable index 0 1/1 test flow disable index 0 1/1 test flow enable index 0 1/1 test flow disable index 0 1/1 -> [crash] This is because the code resets a wrong vector in flow lookup entry recycle logic. See function dpdk_flow_ops_fn(). Signed-off-by: Chenmin Sun Change-Id: I2b0a1e531931ab25541d672d88da18dc2289f1ce --- src/plugins/dpdk/device/flow.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/dpdk/device/flow.c b/src/plugins/dpdk/device/flow.c index d3ca4359722..85a62bbf46b 100644 --- a/src/plugins/dpdk/device/flow.c +++ b/src/plugins/dpdk/device/flow.c @@ -573,7 +573,7 @@ dpdk_flow_ops_fn (vnet_main_t * vnm, vnet_flow_dev_op_t op, u32 dev_instance, vec_foreach (fl_index, xd->parked_lookup_indexes) pool_put_index (xd->flow_lookup_entries, *fl_index); - vec_reset_length (xd->flow_lookup_entries); + vec_reset_length (xd->parked_lookup_indexes); } if (op == VNET_FLOW_DEV_OP_DEL_FLOW) -- cgit 1.2.3-korg