[v2,2/4] app/testpmd: fix VLAN offload configuration when config fail
Checks
Commit Message
From: Chengchang Tang <tangchengchang@huawei.com>
When failing to configure VLAN offloads after the port was started, there
is no need to update the port configuration. Currently, when user
configure an unsupported VLAN offloads and fails, and then restart the
port, it will fails since the configuration has been refreshed.
This patch makes the function return directly insead of refreshing the
configuration when execution fails.
Fixes: 384161e00627 ("app/testpmd: adjust on the fly VLAN configuration")
Cc: stable@dpdk.org
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
---
app/test-pmd/config.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
Comments
On 8/20/2020 2:42 AM, Wei Hu (Xavier) wrote:
> From: Chengchang Tang <tangchengchang@huawei.com>
>
> When failing to configure VLAN offloads after the port was started, there
> is no need to update the port configuration. Currently, when user
> configure an unsupported VLAN offloads and fails, and then restart the
> port, it will fails since the configuration has been refreshed.
>
> This patch makes the function return directly insead of refreshing the
> configuration when execution fails.
>
> Fixes: 384161e00627 ("app/testpmd: adjust on the fly VLAN configuration")
> Cc: stable@dpdk.org
>
> Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -3390,9 +3390,11 @@ vlan_extend_set(portid_t port_id, int on)
}
diag = rte_eth_dev_set_vlan_offload(port_id, vlan_offload);
- if (diag < 0)
+ if (diag < 0) {
printf("rx_vlan_extend_set(port_pi=%d, on=%d) failed "
"diag=%d\n", port_id, on, diag);
+ return;
+ }
ports[port_id].dev_conf.rxmode.offloads = port_rx_offloads;
}
@@ -3417,9 +3419,11 @@ rx_vlan_strip_set(portid_t port_id, int on)
}
diag = rte_eth_dev_set_vlan_offload(port_id, vlan_offload);
- if (diag < 0)
+ if (diag < 0) {
printf("rx_vlan_strip_set(port_pi=%d, on=%d) failed "
"diag=%d\n", port_id, on, diag);
+ return;
+ }
ports[port_id].dev_conf.rxmode.offloads = port_rx_offloads;
}
@@ -3458,9 +3462,11 @@ rx_vlan_filter_set(portid_t port_id, int on)
}
diag = rte_eth_dev_set_vlan_offload(port_id, vlan_offload);
- if (diag < 0)
+ if (diag < 0) {
printf("rx_vlan_filter_set(port_pi=%d, on=%d) failed "
"diag=%d\n", port_id, on, diag);
+ return;
+ }
ports[port_id].dev_conf.rxmode.offloads = port_rx_offloads;
}
@@ -3485,9 +3491,11 @@ rx_vlan_qinq_strip_set(portid_t port_id, int on)
}
diag = rte_eth_dev_set_vlan_offload(port_id, vlan_offload);
- if (diag < 0)
+ if (diag < 0) {
printf("%s(port_pi=%d, on=%d) failed "
"diag=%d\n", __func__, port_id, on, diag);
+ return;
+ }
ports[port_id].dev_conf.rxmode.offloads = port_rx_offloads;
}