[PATCH 1/3] reorder: add new drain up to seq number API

Thomas Monjalon thomas at monjalon.net
Mon Feb 20 00:30:33 CET 2023


We are waiting for a detailed review.
The series could be merged without review.

Please fix cosmetic comments below and send a new version to check CI result.

20/01/2023 11:21, Volodymyr Fialko:
> Introduce new reorder drain API:
> `rte_reorder_drain_up_to_seqn` - exhaustively drain all inserted mbufs
> up to the given sequence number.
> 
> Currently there's no ability to force the drain from reorder buffer,
> i.e. only consecutive ordered or ready packets could be drained.
> New function would give user ability to drain inserted packets, without
> need to wait for missing or newer packets.
> 
> Signed-off-by: Volodymyr Fialko <vfialko at marvell.com>
[...]
> --- a/lib/reorder/rte_reorder.h
> +++ b/lib/reorder/rte_reorder.h
> @@ -167,6 +167,31 @@ unsigned int
>  rte_reorder_drain(struct rte_reorder_buffer *b, struct rte_mbuf **mbufs,
>  		unsigned max_mbufs);
>  
> +/**
> + * @warning
> + * @b EXPERIMENTAL: this API may change without prior notice
> + *
> + * Fetch set of reordered packets up to specified sequence number (exclusive)
> + *
> + * Returns a set of in-order packets from the reorder buffer structure.
> + * Gaps may be present since reorder buffer will try to fetch all possible packets up to given
> + * sequence number.
> + *
> + * @param b
> + *   Reorder buffer instance from which packets are to be drained.
> + * @param mbufs
> + *   Array of mbufs where reordered packets will be inserted from reorder buffer.
> + * @param max_mbufs
> + *   The number of elements in the mbufs array.
> + * @param seqn
> + *   Sequence number up to which buffer will be drained.
> + * @return
> + *   Number of mbuf pointers written to mbufs. 0 <= N < max_mbufs.
> + */
> +__rte_experimental
> +unsigned int
> +rte_reorder_drain_up_to_seqn(struct rte_reorder_buffer *b, struct rte_mbuf **mbufs,
> +		unsigned int max_mbufs, rte_reorder_seqn_t seqn);
>  #ifdef __cplusplus

blank line missing

> --- a/lib/reorder/version.map
> +++ b/lib/reorder/version.map
> @@ -16,4 +16,5 @@ EXPERIMENTAL {
>  	global:
>  
>  	rte_reorder_seqn_dynfield_offset;
> +	rte_reorder_drain_up_to_seqn;

Please add a comment "# added in 23.03" as we do in other libs.





More information about the dev mailing list