On Sun, Feb 21, 2021 at 3:40 AM <pbhagavat...@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavat...@marvell.com>
>
> Introduce event vector transmit capability for event eth
> tx adapter.
>
> The capability indicates that the Tx adapter is capable of
> transmitting event vectors.
> When rte_event_vector::union_valid is set, the Tx adapter should
> transmit all the packets to the rte_event_vector::port using the
> rte_event_vector::queue.
> If rte_event_vector::union_valid is not set then the Tx adapter
> should peek into each mbuf to get the destination port and queue
> pair.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com>


Acked-by: Jerin Jacob <jer...@marvell.com>


> ---
>  doc/guides/prog_guide/event_ethernet_tx_adapter.rst | 12 ++++++++++++
>  lib/librte_eventdev/rte_eventdev.h                  |  8 +++++++-
>  2 files changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/doc/guides/prog_guide/event_ethernet_tx_adapter.rst 
> b/doc/guides/prog_guide/event_ethernet_tx_adapter.rst
> index a8c13e136..87277dcaf 100644
> --- a/doc/guides/prog_guide/event_ethernet_tx_adapter.rst
> +++ b/doc/guides/prog_guide/event_ethernet_tx_adapter.rst
> @@ -164,3 +164,15 @@ The  ``rte_event_eth_tx_adapter_stats_get()`` function 
> reports counters defined
>  in struct ``rte_event_eth_tx_adapter_stats``. The counter values are the sum 
> of
>  the counts from the eventdev PMD callback if the callback is supported, and
>  the counts maintained by the service function, if one exists.
> +
> +Tx event vectorization
> +~~~~~~~~~~~~~~~~~~~~~~
> +
> +The event device, ethernet device paris which support the capability
> +``RTE_EVENT_ETH_TX_ADAPTER_CAP_EVENT_VECTOR`` can process event vector of 
> mbufs.
> +Additionally, application can provide a hint to that Tx adapter that all the
> +mbufs are destined to the same ethernet port and queue by setting the bit
> +``rte_event_vector::attr_valid`` and filling `rte_event_vector::port`` and
> +``rte_event_vector::queue``.
> +If ``rte_event_vector::attr_valid`` is not set then the Tx adapter should 
> peek
> +into each mbuf and transmit them to the requested ethernet port and queue 
> pair.
> diff --git a/lib/librte_eventdev/rte_eventdev.h 
> b/lib/librte_eventdev/rte_eventdev.h
> index 1cf3efa2d..c817c29e6 100644
> --- a/lib/librte_eventdev/rte_eventdev.h
> +++ b/lib/librte_eventdev/rte_eventdev.h
> @@ -926,11 +926,13 @@ struct rte_event_vector {
>         /**< Indicates that the below union attributes have valid information.
>          */
>         union {
> -               /* Used by Rx adapter.
> +               /* Used by Rx/Tx adapter.
>                  * Indicats that all the elements in this vector belong to 
> same
>                  * port and queue pair when originating from Rx adapter, valid
>                  * only when event type is ETHDEV_VECTOR or
>                  * ETH_RX_ADAPTER_VECTOR.
> +                * Can also be used to indicate the Tx adapter the destination
> +                * port and queue of the mbufs in the vector
>                  */
>                 struct {
>                         uint16_t port;
> @@ -1287,6 +1289,10 @@ rte_event_crypto_adapter_caps_get(uint8_t dev_id, 
> uint8_t cdev_id,
>  #define RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT     0x1
>  /**< This flag is sent when the PMD supports a packet transmit callback
>   */
> +#define RTE_EVENT_ETH_TX_ADAPTER_CAP_EVENT_VECTOR      0x2
> +/**< Indicates that the Tx adapter is capable of handling event vector of
> + * mbufs.
> + */
>
>  /**
>   * Retrieve the event device's eth Tx adapter capabilities
> --
> 2.17.1
>

Reply via email to