[dpdk-dev] [PATCH v3 08/16] net/nfb: switch Rx timestamp to dynamic mbuf field
Olivier Matz
olivier.matz at 6wind.com
Tue Nov 3 11:20:40 CET 2020
On Tue, Nov 03, 2020 at 01:13:59AM +0100, Thomas Monjalon wrote:
> The mbuf timestamp is moved to a dynamic field
> in order to allow removal of the deprecated static field.
> The related mbuf flag is also replaced.
>
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
> drivers/net/nfb/nfb_rx.c | 15 ++++++++++++++-
> drivers/net/nfb/nfb_rx.h | 18 ++++++++++++++----
> 2 files changed, 28 insertions(+), 5 deletions(-)
<...>
> index cf3899b2fb..e548226e0f 100644
> --- a/drivers/net/nfb/nfb_rx.h
> +++ b/drivers/net/nfb/nfb_rx.h
> @@ -15,6 +15,16 @@
>
> #define NFB_TIMESTAMP_FLAG (1 << 0)
>
> +extern uint64_t nfb_timestamp_rx_dynflag;
> +extern int nfb_timestamp_dynfield_offset;
> +
> +static inline rte_mbuf_timestamp_t *
> +nfb_timestamp_dynfield(struct rte_mbuf *mbuf)
> +{
> + return RTE_MBUF_DYNFIELD(mbuf,
> + nfb_timestamp_dynfield_offset, rte_mbuf_timestamp_t *);
> +}
> +
> struct ndp_rx_queue {
> struct nfb_device *nfb; /* nfb dev structure */
> struct ndp_queue *queue; /* rx queue */
> @@ -191,15 +201,15 @@ nfb_eth_ndp_rx(void *queue,
>
> if (timestamping_enabled) {
> /* nanoseconds */
> - mbuf->timestamp =
> + *nfb_timestamp_dynfield(mbuf) =
> rte_le_to_cpu_32(*((uint32_t *)
> (packets[i].header + 4)));
> - mbuf->timestamp <<= 32;
> + *nfb_timestamp_dynfield(mbuf) <<= 32;
> /* seconds */
> - mbuf->timestamp |=
> + *nfb_timestamp_dynfield(mbuf) |=
> rte_le_to_cpu_32(*((uint32_t *)
> (packets[i].header + 8)));
> - mbuf->ol_flags |= PKT_RX_TIMESTAMP;
> + mbuf->ol_flags |= nfb_timestamp_rx_dynflag;
> }
>
> bufs[num_rx++] = mbuf;
I think it would be better with a local variable.
More information about the dev
mailing list