All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Nithin Kumar Dabilpuram <ndabilpuram@marvell.com>,
	Wenzhuo Lu <wenzhuo.lu@intel.com>,
	Jingjing Wu <jingjing.wu@intel.com>,
	Bernard Iremonger <bernard.iremonger@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	Jerin Jacob Kollanukkaran <jerinj@marvell.com>
Subject: Re: [PATCH] app/testpmd: fix tx vlan and qinq insert enable
Date: Fri, 1 Mar 2019 16:29:07 +0000	[thread overview]
Message-ID: <97ca84ab-84b1-744d-c571-ab052fd9f19d@intel.com> (raw)
In-Reply-To: <20190219064840.12046-1-ndabilpuram@marvell.com>

On 2/19/2019 6:48 AM, Nithin Kumar Dabilpuram wrote:
> Tx VLAN & QinQ insert enable need not depend on
> Rx VLAN offload ETH_VLAN_EXTEND_OFFLOAD. 

+1

> Also enable
> DEV_TX_OFFLOAD_VLAN_INSERT for tx_qinq_set() as it takes
> both vlan id's.

+1

Technically two different but related fix, should it be two separate patches,
what do you think?

> 
> Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
> ---
>  app/test-pmd/config.c | 15 ++-------------
>  1 file changed, 2 insertions(+), 13 deletions(-)
> 
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index b9e5dd9..0243f07 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -2955,7 +2955,6 @@ vlan_tpid_set(portid_t port_id, enum rte_vlan_type vlan_type, uint16_t tp_id)
>  void
>  tx_vlan_set(portid_t port_id, uint16_t vlan_id)
>  {
> -	int vlan_offload;
>  	struct rte_eth_dev_info dev_info;
>  
>  	if (port_id_is_invalid(port_id, ENABLED_WARN))
> @@ -2963,11 +2962,6 @@ tx_vlan_set(portid_t port_id, uint16_t vlan_id)
>  	if (vlan_id_is_invalid(vlan_id))
>  		return;
>  
> -	vlan_offload = rte_eth_dev_get_vlan_offload(port_id);
> -	if (vlan_offload & ETH_VLAN_EXTEND_OFFLOAD) {
> -		printf("Error, as QinQ has been enabled.\n");
> -		return;
> -	}

Here I think intention is if QINQ is enabled 'tx_vlan_id' & 'tx_vlan_id_outer'
should be set by tx_qinq_set() not 'tx_vlan_set', and check is for that.

What do you think keeping same logic?
But of course check should be if 'ports[port_id].dev_conf.txmode.offloads' has
'DEV_TX_OFFLOAD_QINQ_INSERT' instead of above check.

>  	rte_eth_dev_info_get(port_id, &dev_info);
>  	if ((dev_info.tx_offload_capa & DEV_TX_OFFLOAD_VLAN_INSERT) == 0) {
>  		printf("Error: vlan insert is not supported by port %d\n",
> @@ -2983,7 +2977,6 @@ tx_vlan_set(portid_t port_id, uint16_t vlan_id)
>  void
>  tx_qinq_set(portid_t port_id, uint16_t vlan_id, uint16_t vlan_id_outer)
>  {
> -	int vlan_offload;
>  	struct rte_eth_dev_info dev_info;
>  
>  	if (port_id_is_invalid(port_id, ENABLED_WARN))
> @@ -2993,11 +2986,6 @@ tx_qinq_set(portid_t port_id, uint16_t vlan_id, uint16_t vlan_id_outer)
>  	if (vlan_id_is_invalid(vlan_id_outer))
>  		return;
>  
> -	vlan_offload = rte_eth_dev_get_vlan_offload(port_id);
> -	if (!(vlan_offload & ETH_VLAN_EXTEND_OFFLOAD)) {
> -		printf("Error, as QinQ hasn't been enabled.\n");
> -		return;
> -	}
>  	rte_eth_dev_info_get(port_id, &dev_info);
>  	if ((dev_info.tx_offload_capa & DEV_TX_OFFLOAD_QINQ_INSERT) == 0) {
>  		printf("Error: qinq insert not supported by port %d\n",
> @@ -3006,7 +2994,8 @@ tx_qinq_set(portid_t port_id, uint16_t vlan_id, uint16_t vlan_id_outer)
>  	}
>  
>  	tx_vlan_reset(port_id);
> -	ports[port_id].dev_conf.txmode.offloads |= DEV_TX_OFFLOAD_QINQ_INSERT;
> +	ports[port_id].dev_conf.txmode.offloads |= (DEV_TX_OFFLOAD_VLAN_INSERT |
> +						    DEV_TX_OFFLOAD_QINQ_INSERT);
>  	ports[port_id].tx_vlan_id = vlan_id;
>  	ports[port_id].tx_vlan_id_outer = vlan_id_outer;
>  }
> 

  reply	other threads:[~2019-03-01 16:29 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-19  6:48 [PATCH] app/testpmd: fix tx vlan and qinq insert enable Nithin Kumar Dabilpuram
2019-03-01 16:29 ` Ferruh Yigit [this message]
2019-03-18  9:56 ` [PATCH v2 1/2] app/testpmd: fix tx vlan and qinq dependency Nithin Kumar Dabilpuram
2019-03-18  9:56   ` [PATCH v2 2/2] app/testpmd: fix tx qinq insert enable Nithin Kumar Dabilpuram
2019-03-26 17:40     ` Iremonger, Bernard
2019-03-21 17:11   ` [PATCH v2 1/2] app/testpmd: fix tx vlan and qinq dependency Ferruh Yigit
2019-03-26 17:33     ` Iremonger, Bernard
2019-03-27  9:52       ` Iremonger, Bernard
2019-03-31 18:58     ` [EXT] " Nithin Kumar Dabilpuram
2019-04-01 19:10       ` Ferruh Yigit
2019-04-02  2:35         ` Wang, Xiao W
2019-04-05  7:36 ` [dpdk-dev] [PATCH v3 1/2] app/testpmd: fix Tx VLAN and QinQ dependency Nithin Kumar Dabilpuram
2019-04-05  7:36   ` [dpdk-dev] [PATCH v3 2/2] app/testpmd: fix Tx QinQ set Nithin Kumar Dabilpuram
2019-04-05 13:36   ` [dpdk-dev] [PATCH v3 1/2] app/testpmd: fix Tx VLAN and QinQ dependency Ferruh Yigit
2019-04-05 12:04 ` [dpdk-dev] [PATCH v4 " Nithin Dabilpuram
2019-04-05 12:04   ` [dpdk-dev] [PATCH v4 2/2] app/testpmd: fix Tx QinQ set Nithin Dabilpuram
2019-04-05 12:06   ` [dpdk-dev] [PATCH v4 1/2] app/testpmd: fix Tx VLAN and QinQ dependency Ferruh Yigit
2019-04-05 13:10     ` Nithin Kumar D
2019-04-05 13:32       ` Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=97ca84ab-84b1-744d-c571-ab052fd9f19d@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=bernard.iremonger@intel.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=jingjing.wu@intel.com \
    --cc=ndabilpuram@marvell.com \
    --cc=wenzhuo.lu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.