[dpdk-dev] [PATCH] net/i40e: fix vlan insert code redundance

Ferruh Yigit ferruh.yigit at intel.com
Fri Feb 10 11:25:23 CET 2017


On 2/10/2017 1:26 AM, Qiming Yang wrote:
> This patch removed useless tx_flags in vlan insertion.

Overall this looks good, I wonder what was the initial intention of this
code, understanding it helps to figure out if there is a hidden defect.

This code not fixes a defect, but improves the code, is there any
performance gain with this?
If not, I am for deferring this to next release.

> 
> Fixes: 4861cde46116 ("i40e: new poll mode driver")
> 
> Signed-off-by: Qiming Yang <qiming.yang at intel.com>
> ---
>  drivers/net/i40e/i40e_rxtx.c | 8 +-------
>  drivers/net/i40e/i40e_rxtx.h | 2 --
>  2 files changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
> index 608685f..b91cd70 100644
> --- a/drivers/net/i40e/i40e_rxtx.c
> +++ b/drivers/net/i40e/i40e_rxtx.c
> @@ -1026,7 +1026,6 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
>  	uint16_t nb_tx;
>  	uint32_t td_cmd;
>  	uint32_t td_offset;
> -	uint32_t tx_flags;
>  	uint32_t td_tag;
>  	uint64_t ol_flags;
>  	uint16_t nb_used;
> @@ -1050,7 +1049,6 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
>  		td_cmd = 0;
>  		td_tag = 0;
>  		td_offset = 0;
> -		tx_flags = 0;
>  
>  		tx_pkt = *tx_pkts++;
>  		RTE_MBUF_PREFETCH_TO_FREE(txe->mbuf);
> @@ -1097,12 +1095,8 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
>  
>  		/* Descriptor based VLAN insertion */
>  		if (ol_flags & (PKT_TX_VLAN_PKT | PKT_TX_QINQ_PKT)) {
> -			tx_flags |= tx_pkt->vlan_tci <<
> -				I40E_TX_FLAG_L2TAG1_SHIFT;
> -			tx_flags |= I40E_TX_FLAG_INSERT_VLAN;

The I40E_TX_FLAG_INSERT_VLAN flag also seems used only here, and can be
removed.

Also I40E_TX_FLAG_CSUM and I40E_TX_FLAG_TSYN seems not used at all,
understanding why they are introduced at first place can be useful.

>  			td_cmd |= I40E_TX_DESC_CMD_IL2TAG1;
> -			td_tag = (tx_flags & I40E_TX_FLAG_L2TAG1_MASK) >>
> -						I40E_TX_FLAG_L2TAG1_SHIFT;
> +			td_tag = tx_pkt->vlan_tci;
>  		}
>  
>  		/* Always enable CRC offload insertion */
> diff --git a/drivers/net/i40e/i40e_rxtx.h b/drivers/net/i40e/i40e_rxtx.h
> index 9df8a56..3d4abdc 100644
> --- a/drivers/net/i40e/i40e_rxtx.h
> +++ b/drivers/net/i40e/i40e_rxtx.h
> @@ -38,8 +38,6 @@
>   * 32 bits tx flags, high 16 bits for L2TAG1 (VLAN),
>   * low 16 bits for others.
>   */
> -#define I40E_TX_FLAG_L2TAG1_SHIFT 16
> -#define I40E_TX_FLAG_L2TAG1_MASK  0xffff0000
>  #define I40E_TX_FLAG_CSUM         ((uint32_t)(1 << 0))
>  #define I40E_TX_FLAG_INSERT_VLAN  ((uint32_t)(1 << 1))
>  #define I40E_TX_FLAG_TSYN         ((uint32_t)(1 << 2))
> 



More information about the dev mailing list