[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