[dpdk-dev] [PATCH v3 02/10] ethdev: add conf arg to shared action icreate API
Ori Kam
orika at nvidia.com
Sun Oct 4 13:11:26 CEST 2020
Hi Andrey
Why is this patch not part of the previous one?
Best,
Ori
> -----Original Message-----
> From: Andrey Vesnovaty <andreyv at nvidia.com>
> Sent: Sunday, October 4, 2020 1:06 AM
> To: dev at dpdk.org
> Cc: jer at marvell.com; jerinjacobk at gmail.com; NBU-Contact-Thomas Monjalon
> <thomas at monjalon.net>; ferruh.yigit at intel.com;
> stephen at networkplumber.org; bruce.richardson at intel.com; Ori Kam
> <orika at nvidia.com>; Slava Ovsiienko <viacheslavo at nvidia.com>;
> andrey.vesnovaty at gmail.com; mdr at ashroe.eu; nhorman at tuxdriver.com;
> ajit.khaparde at broadcom.com; samik.gupta at broadcom.com; Ori Kam
> <orika at mellanox.com>; Andrew Rybchenko <arybchenko at solarflare.com>
> Subject: [PATCH v3 02/10] ethdev: add conf arg to shared action icreate API
>
> Add configuration argument to shared action create interface.
> Currently there is only ingress & egress fields but more fields can be
> added later. Shared action configuration & implementation are PMD
> specific.
>
> Signed-off-by: Andrey Vesnovaty <andreyv at nvidia.com>
> ---
> lib/librte_ethdev/rte_flow.c | 4 +++-
> lib/librte_ethdev/rte_flow.h | 17 +++++++++++++++--
> lib/librte_ethdev/rte_flow_driver.h | 5 +++--
> 3 files changed, 21 insertions(+), 5 deletions(-)
>
> diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
> index ba3f01f7c7..9afa8905df 100644
> --- a/lib/librte_ethdev/rte_flow.c
> +++ b/lib/librte_ethdev/rte_flow.c
> @@ -1255,6 +1255,7 @@ rte_flow_get_aged_flows(uint16_t port_id, void
> **contexts,
>
> struct rte_flow_shared_action *
> rte_flow_shared_action_create(uint16_t port_id,
> + const struct rte_flow_shared_action_conf *conf,
> const struct rte_flow_action *action,
> struct rte_flow_error *error)
> {
> @@ -1265,7 +1266,8 @@ rte_flow_shared_action_create(uint16_t port_id,
> if (unlikely(!ops))
> return NULL;
> if (likely(!!ops->shared_action_create)) {
> - shared_action = ops->shared_action_create(dev, action, error);
> + shared_action = ops->shared_action_create(dev, conf, action,
> + error);
> if (shared_action == NULL)
> flow_err(port_id, -rte_errno, error);
> return shared_action;
> diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
> index 02391316cb..8a2db4f6da 100644
> --- a/lib/librte_ethdev/rte_flow.h
> +++ b/lib/librte_ethdev/rte_flow.h
> @@ -3380,6 +3380,16 @@ int
> rte_flow_get_aged_flows(uint16_t port_id, void **contexts,
> uint32_t nb_contexts, struct rte_flow_error *error);
>
> +/**
> + * Specify shared action configuration
> + */
> +struct rte_flow_shared_action_conf {
> + uint32_t ingress:1;
> + /**< Action valid for rules applied to ingress traffic. */
> + uint32_t egress:1;
> + /**< Action valid for rules applied to egress traffic. */
> +};
> +
> /**
> * @warning
> * @b EXPERIMENTAL: this API may change without prior notice.
> @@ -3388,6 +3398,8 @@ rte_flow_get_aged_flows(uint16_t port_id, void
> **contexts,
> *
> * @param[in] port_id
> * The port identifier of the Ethernet device.
> + * @param[in] conf
> + * Shared action configuration.
> * @param[in] action
> * Action configuration for shared action creation.
> * @param[out] error
> @@ -3404,6 +3416,7 @@ rte_flow_get_aged_flows(uint16_t port_id, void
> **contexts,
> __rte_experimental
> struct rte_flow_shared_action *
> rte_flow_shared_action_create(uint16_t port_id,
> + const struct rte_flow_shared_action_conf *conf,
> const struct rte_flow_action *action,
> struct rte_flow_error *error);
>
> @@ -3432,8 +3445,8 @@ rte_flow_shared_action_create(uint16_t port_id,
> __rte_experimental
> int
> rte_flow_shared_action_destroy(uint16_t port_id,
> - struct rte_flow_shared_action *action,
> - struct rte_flow_error *error);
> + struct rte_flow_shared_action *action,
> + struct rte_flow_error *error);
>
> /**
> * @warning
> diff --git a/lib/librte_ethdev/rte_flow_driver.h
> b/lib/librte_ethdev/rte_flow_driver.h
> index 72bfc3b7a7..adaace47ea 100644
> --- a/lib/librte_ethdev/rte_flow_driver.h
> +++ b/lib/librte_ethdev/rte_flow_driver.h
> @@ -111,8 +111,9 @@ struct rte_flow_ops {
> /** See rte_flow_shared_action_create() */
> struct rte_flow_shared_action *(*shared_action_create)
> (struct rte_eth_dev *dev,
> - const struct rte_flow_action *action,
> - struct rte_flow_error *error);
> + const struct rte_flow_shared_action_conf *conf,
> + const struct rte_flow_action *action,
> + struct rte_flow_error *error);
> /** See rte_flow_shared_action_destroy() */
> int (*shared_action_destroy)
> (struct rte_eth_dev *dev,
> --
> 2.26.2
More information about the dev
mailing list