On 08.12.2019 14:22, Eli Britstein wrote:
> Introduce a rte flow query function as a pre-step towards reading HW
> statistics of fully offloaded flows.
> 
> Signed-off-by: Eli Britstein <el...@mellanox.com>
> Reviewed-by: Oz Shlomo <o...@mellanox.com>
> ---
>  lib/netdev-dpdk.c | 25 +++++++++++++++++++++++++
>  lib/netdev-dpdk.h |  6 ++++++
>  2 files changed, 31 insertions(+)
> 
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index da1349b69..e63a496c1 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -4737,6 +4737,31 @@ netdev_dpdk_rte_flow_create(struct netdev *netdev,
>      return flow;
>  }
>  
> +int
> +netdev_dpdk_rte_flow_query(struct netdev *netdev,

Shouldn't it be named netdev_dpdk_rte_flow_query_count() ?

> +                           struct rte_flow *rte_flow,
> +                           struct rte_flow_query_count *query,
> +                           struct rte_flow_error *error)
> +{
> +    struct netdev_dpdk *dev = netdev_dpdk_cast(netdev);
> +    struct rte_flow_action_count count = {};
> +    const struct rte_flow_action actions[] = {
> +        {
> +            .type = RTE_FLOW_ACTION_TYPE_COUNT,
> +            .conf = &count,
> +        },
> +        {
> +            .type = RTE_FLOW_ACTION_TYPE_END,
> +        },
> +    };
> +    int ret;
> +
> +    ovs_mutex_lock(&dev->mutex);
> +    ret = rte_flow_query(dev->port_id, rte_flow, actions, query, error);
> +    ovs_mutex_unlock(&dev->mutex);
> +    return ret;
> +}
> +
>  #define NETDEV_DPDK_CLASS_COMMON                            \
>      .is_pmd = true,                                         \
>      .alloc = netdev_dpdk_alloc,                             \
> diff --git a/lib/netdev-dpdk.h b/lib/netdev-dpdk.h
> index 60631c4f0..ed7cb235a 100644
> --- a/lib/netdev-dpdk.h
> +++ b/lib/netdev-dpdk.h
> @@ -31,6 +31,7 @@ struct rte_flow_error;
>  struct rte_flow_attr;
>  struct rte_flow_item;
>  struct rte_flow_action;
> +struct rte_flow_query_count;
>  
>  void netdev_dpdk_register(void);
>  void free_dpdk_buf(struct dp_packet *);
> @@ -47,6 +48,11 @@ netdev_dpdk_rte_flow_create(struct netdev *netdev,
>                              const struct rte_flow_item *items,
>                              const struct rte_flow_action *actions,
>                              struct rte_flow_error *error);
> +int
> +netdev_dpdk_rte_flow_query(struct netdev *netdev,
> +                           struct rte_flow *rte_flow,
> +                           struct rte_flow_query_count *query,
> +                           struct rte_flow_error *error);
>  
>  #else
>  
> 
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to