mbuf: add Tx timestamp registration helper
authorThomas Monjalon <thomas@monjalon.net>
Mon, 2 Nov 2020 19:36:22 +0000 (20:36 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 3 Nov 2020 15:21:15 +0000 (16:21 +0100)
The function rte_mbuf_dyn_tx_timestamp_register()
can be used to register the required field and flag.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: David Marchand <david.marchand@redhat.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
lib/librte_mbuf/rte_mbuf_dyn.c
lib/librte_mbuf/rte_mbuf_dyn.h
lib/librte_mbuf/version.map

index f246a07..e10f4fb 100644 (file)
@@ -613,3 +613,10 @@ rte_mbuf_dyn_rx_timestamp_register(int *field_offset, uint64_t *rx_flag)
        return rte_mbuf_dyn_timestamp_register(field_offset, rx_flag,
                        "Rx", RTE_MBUF_DYNFLAG_RX_TIMESTAMP_NAME);
 }
+
+int
+rte_mbuf_dyn_tx_timestamp_register(int *field_offset, uint64_t *tx_flag)
+{
+       return rte_mbuf_dyn_timestamp_register(field_offset, tx_flag,
+                       "Tx", RTE_MBUF_DYNFLAG_TX_TIMESTAMP_NAME);
+}
index 2e729dd..d88e7ba 100644 (file)
@@ -304,4 +304,26 @@ int rte_mbuf_dyn_rx_timestamp_register(int *field_offset, uint64_t *rx_flag);
  */
 #define RTE_MBUF_DYNFLAG_TX_TIMESTAMP_NAME "rte_dynflag_tx_timestamp"
 
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice.
+ *
+ * Register dynamic mbuf field and flag for Tx timestamp.
+ *
+ * @param field_offset
+ *   Pointer to the offset of the registered mbuf field, can be NULL.
+ *   The same field is shared for Rx and Tx timestamp.
+ * @param tx_flag
+ *   Pointer to the mask of the registered offload flag, can be NULL.
+ * @return
+ *   0 on success, -1 otherwise.
+ *   Possible values for rte_errno:
+ *   - EEXIST: already registered with different parameters.
+ *   - EPERM: called from a secondary process.
+ *   - ENOENT: no more field or flag available.
+ *   - ENOMEM: allocation failure.
+ */
+__rte_experimental
+int rte_mbuf_dyn_tx_timestamp_register(int *field_offset, uint64_t *tx_flag);
+
 #endif
index 0b66668..b7d98e7 100644 (file)
@@ -43,6 +43,7 @@ EXPERIMENTAL {
        rte_mbuf_dynflag_register_bitnum;
        rte_mbuf_dyn_dump;
        rte_mbuf_dyn_rx_timestamp_register;
+       rte_mbuf_dyn_tx_timestamp_register;
        rte_pktmbuf_copy;
        rte_pktmbuf_free_bulk;
        rte_pktmbuf_pool_create_extbuf;