[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