[dpdk-dev] [PATCH v2 23/37] net/txgbe: add flow API create function

Ferruh Yigit ferruh.yigit at intel.com
Wed Nov 11 17:11:05 CET 2020


On 11/11/2020 6:49 AM, Jiawen Wu wrote:
> Add support to create operation for flow API.
> 
> Signed-off-by: Jiawen Wu <jiawenwu at trustnetic.com>
> ---
>   drivers/net/txgbe/txgbe_ethdev.h |   2 +
>   drivers/net/txgbe/txgbe_fdir.c   |  27 ++++
>   drivers/net/txgbe/txgbe_flow.c   | 257 +++++++++++++++++++++++++++++++
>   3 files changed, 286 insertions(+)
> 
> diff --git a/drivers/net/txgbe/txgbe_ethdev.h b/drivers/net/txgbe/txgbe_ethdev.h
> index a0a452c1a..a0a18d254 100644
> --- a/drivers/net/txgbe/txgbe_ethdev.h
> +++ b/drivers/net/txgbe/txgbe_ethdev.h
> @@ -464,6 +464,8 @@ void txgbe_set_ivar_map(struct txgbe_hw *hw, int8_t direction,
>    */
>   int txgbe_fdir_configure(struct rte_eth_dev *dev);
>   int txgbe_fdir_set_input_mask(struct rte_eth_dev *dev);
> +int txgbe_fdir_set_flexbytes_offset(struct rte_eth_dev *dev,
> +				    uint16_t offset);
>   int txgbe_fdir_filter_program(struct rte_eth_dev *dev,
>   			      struct txgbe_fdir_rule *rule,
>   			      bool del, bool update);
> diff --git a/drivers/net/txgbe/txgbe_fdir.c b/drivers/net/txgbe/txgbe_fdir.c
> index 2faf7fd84..2342cf681 100644
> --- a/drivers/net/txgbe/txgbe_fdir.c
> +++ b/drivers/net/txgbe/txgbe_fdir.c
> @@ -270,6 +270,33 @@ txgbe_fdir_store_input_mask(struct rte_eth_dev *dev)
>   	return 0;
>   }
>   
> +int
> +txgbe_fdir_set_flexbytes_offset(struct rte_eth_dev *dev,
> +				uint16_t offset)
> +{
> +	struct txgbe_hw *hw = TXGBE_DEV_HW(dev);
> +	int i;
> +
> +	for (i = 0; i < 64; i++) {
> +		uint32_t flexreg, flex;
> +		flexreg = rd32(hw, TXGBE_FDIRFLEXCFG(i / 4));
> +		flex = TXGBE_FDIRFLEXCFG_BASE_MAC;
> +		flex |= TXGBE_FDIRFLEXCFG_OFST(offset / 2);
> +		flexreg &= ~(TXGBE_FDIRFLEXCFG_ALL(~0UL, i % 4));
> +		flexreg |= TXGBE_FDIRFLEXCFG_ALL(flex, i % 4);
> +		wr32(hw, TXGBE_FDIRFLEXCFG(i / 4), flexreg);
> +	}
> +
> +	txgbe_flush(hw);
> +	for (i = 0; i < TXGBE_FDIR_INIT_DONE_POLL; i++) {
> +		if (rd32(hw, TXGBE_FDIRCTL) &
> +			TXGBE_FDIRCTL_INITDONE)
> +			break;
> +		msec_delay(1);
> +	}
> +	return 0;
> +}
> +

Is this funtions should be added in the fdir patch?
Or when filter added together with rte_flow validate/create pieces, this won't 
be a problem anymore I guess.


More information about the dev mailing list