[dpdk-dev] [PATCH v2] testpmd check return value of rte_eth_dev_vlan_filter()
Qiu, Michael
michael.qiu at intel.com
Wed Jan 28 02:38:02 CET 2015
On 1/28/2015 1:20 AM, Michal Jastrzebski wrote:
> This patch modifies testpmd behavior when setting:
> rx_vlan add all vf_port (enabling all vlanids
> to be passed thru rx filter on VF).
> Rx_vlan_all_filter_set() function,
> checks if the next vlanid can be enabled by the driver.
> Number of vlanids is limited by the NIC and thus the NIC
> do not allow to enable more vlanids than it can allocate
> in VFTA table.
But what about if it is caused by other issue to lead a enable failure?
> v2 - fix formatting errors
>
> Signed-off-by: Michal Jastrzebski <michalx.k.jastrzebski at intel.com>
> ---
> app/test-pmd/config.c | 15 +++++++++------
> app/test-pmd/testpmd.h | 2 +-
> lib/librte_ether/rte_ethdev.c | 4 ++--
> 3 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index c40f819..eda737e 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -1643,21 +1643,22 @@ rx_vlan_filter_set(portid_t port_id, int on)
> "diag=%d\n", port_id, on, diag);
> }
>
> -void
> +int
> rx_vft_set(portid_t port_id, uint16_t vlan_id, int on)
> {
> int diag;
>
> if (port_id_is_invalid(port_id))
> - return;
> + return 1;
> if (vlan_id_is_invalid(vlan_id))
> - return;
> + return 1;
> diag = rte_eth_dev_vlan_filter(port_id, vlan_id, on);
> if (diag == 0)
> - return;
> + return 0;
> printf("rte_eth_dev_vlan_filter(port_pi=%d, vlan_id=%d, on=%d) failed "
> "diag=%d\n",
> port_id, vlan_id, on, diag);
> + return -1;
> }
>
> void
> @@ -1667,8 +1668,10 @@ rx_vlan_all_filter_set(portid_t port_id, int on)
>
> if (port_id_is_invalid(port_id))
> return;
> - for (vlan_id = 0; vlan_id < 4096; vlan_id++)
> - rx_vft_set(port_id, vlan_id, on);
> + for (vlan_id = 0; vlan_id < 4096; vlan_id++) {
Before "{" you use a Tab? One white space is OK.
Thanks,
Michael
> + if (rx_vft_set(port_id, vlan_id, on))
> + break;
> + }
> }
>
> void
> diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
> index 8f5e6c7..e0186b9 100644
> --- a/app/test-pmd/testpmd.h
> +++ b/app/test-pmd/testpmd.h
> @@ -492,7 +492,7 @@ void rx_vlan_strip_set_on_queue(portid_t port_id, uint16_t queue_id, int on);
>
> void rx_vlan_filter_set(portid_t port_id, int on);
> void rx_vlan_all_filter_set(portid_t port_id, int on);
> -void rx_vft_set(portid_t port_id, uint16_t vlan_id, int on);
> +int rx_vft_set(portid_t port_id, uint16_t vlan_id, int on);
> void vlan_extend_set(portid_t port_id, int on);
> void vlan_tpid_set(portid_t port_id, uint16_t tp_id);
> void tx_vlan_set(portid_t port_id, uint16_t vlan_id);
> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
> index ea3a1fb..064b5d6 100644
> --- a/lib/librte_ether/rte_ethdev.c
> +++ b/lib/librte_ether/rte_ethdev.c
> @@ -1519,8 +1519,8 @@ rte_eth_dev_vlan_filter(uint8_t port_id, uint16_t vlan_id, int on)
> return (-EINVAL);
> }
> FUNC_PTR_OR_ERR_RET(*dev->dev_ops->vlan_filter_set, -ENOTSUP);
> - (*dev->dev_ops->vlan_filter_set)(dev, vlan_id, on);
> - return (0);
> +
> + return (*dev->dev_ops->vlan_filter_set)(dev, vlan_id, on);
> }
>
> int
More information about the dev
mailing list