ethdev: add Rx HW timestamp capability
Add a new offload capability flag for Rx HW timestamp and enabling/disabling this via rte_eth_rxmode. Signed-off-by: Raslan Darawsheh <rasland@mellanox.com> Reviewed-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
This commit is contained in:
parent
03e0868b4c
commit
42ffc45aa3
@ -574,6 +574,17 @@ Supports L4 checksum offload.
|
||||
* **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_UDP_CKSUM,DEV_RX_OFFLOAD_TCP_CKSUM``,
|
||||
``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_UDP_CKSUM,DEV_TX_OFFLOAD_TCP_CKSUM,DEV_TX_OFFLOAD_SCTP_CKSUM``.
|
||||
|
||||
.. _nic_features_hw_timestamp:
|
||||
|
||||
Timestamp offload
|
||||
-----------------
|
||||
|
||||
Supports Timestamp.
|
||||
|
||||
* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_TIMESTAMP``.
|
||||
* **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_TIMESTAMP``.
|
||||
* **[provides] mbuf**: ``mbuf.timestamp``.
|
||||
* **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa: DEV_RX_OFFLOAD_TIMESTAMP``.
|
||||
|
||||
.. _nic_features_macsec_offload:
|
||||
|
||||
|
@ -48,6 +48,7 @@ VLAN offload =
|
||||
QinQ offload =
|
||||
L3 checksum offload =
|
||||
L4 checksum offload =
|
||||
Timestamp offload =
|
||||
MACsec offload =
|
||||
Inner L3 checksum =
|
||||
Inner L4 checksum =
|
||||
|
@ -715,6 +715,8 @@ rte_eth_convert_rx_offload_bitfield(const struct rte_eth_rxmode *rxmode,
|
||||
offloads |= DEV_RX_OFFLOAD_SCATTER;
|
||||
if (rxmode->enable_lro == 1)
|
||||
offloads |= DEV_RX_OFFLOAD_TCP_LRO;
|
||||
if (rxmode->hw_timestamp == 1)
|
||||
offloads |= DEV_RX_OFFLOAD_TIMESTAMP;
|
||||
|
||||
*rx_offloads = offloads;
|
||||
}
|
||||
@ -763,6 +765,10 @@ rte_eth_convert_rx_offloads(const uint64_t rx_offloads,
|
||||
rxmode->enable_lro = 1;
|
||||
else
|
||||
rxmode->enable_lro = 0;
|
||||
if (rx_offloads & DEV_RX_OFFLOAD_TIMESTAMP)
|
||||
rxmode->hw_timestamp = 1;
|
||||
else
|
||||
rxmode->hw_timestamp = 0;
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -369,6 +369,7 @@ struct rte_eth_rxmode {
|
||||
hw_strip_crc : 1, /**< Enable CRC stripping by hardware. */
|
||||
enable_scatter : 1, /**< Enable scatter packets rx handler */
|
||||
enable_lro : 1, /**< Enable LRO */
|
||||
hw_timestamp : 1, /**< Enable HW timestamp */
|
||||
/**
|
||||
* When set the offload bitfield should be ignored.
|
||||
* Instead per-port Rx offloads should be set on offloads
|
||||
@ -961,6 +962,7 @@ struct rte_eth_conf {
|
||||
#define DEV_RX_OFFLOAD_JUMBO_FRAME 0x00000800
|
||||
#define DEV_RX_OFFLOAD_CRC_STRIP 0x00001000
|
||||
#define DEV_RX_OFFLOAD_SCATTER 0x00002000
|
||||
#define DEV_RX_OFFLOAD_TIMESTAMP 0x00004000
|
||||
#define DEV_RX_OFFLOAD_CHECKSUM (DEV_RX_OFFLOAD_IPV4_CKSUM | \
|
||||
DEV_RX_OFFLOAD_UDP_CKSUM | \
|
||||
DEV_RX_OFFLOAD_TCP_CKSUM)
|
||||
|
Loading…
x
Reference in New Issue
Block a user