eth: fbnic: add software TX timestamping support

Add software TX timestamping support. RX software timestamping is
implemented in the core and there is no need to provide special flag
in the driver anymore.

Signed-off-by: Vadim Fedorenko <vadfed@meta.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Vadim Fedorenko
2024-10-08 11:14:32 -07:00
committed by Paolo Abeni
parent 9e542ff8b7
commit be65bfc957
2 changed files with 14 additions and 0 deletions

View File

@@ -6,6 +6,16 @@
#include "fbnic_netdev.h"
#include "fbnic_tlv.h"
static int
fbnic_get_ts_info(struct net_device *netdev,
struct kernel_ethtool_ts_info *tsinfo)
{
tsinfo->so_timestamping =
SOF_TIMESTAMPING_TX_SOFTWARE;
return 0;
}
static void
fbnic_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
{
@@ -66,6 +76,7 @@ fbnic_get_eth_mac_stats(struct net_device *netdev,
static const struct ethtool_ops fbnic_ethtool_ops = {
.get_drvinfo = fbnic_get_drvinfo,
.get_ts_info = fbnic_get_ts_info,
.get_eth_mac_stats = fbnic_get_eth_mac_stats,
};

View File

@@ -205,6 +205,9 @@ fbnic_tx_map(struct fbnic_ring *ring, struct sk_buff *skb, __le64 *meta)
ring->tail = tail;
/* Record SW timestamp */
skb_tx_timestamp(skb);
/* Verify there is room for another packet */
fbnic_maybe_stop_tx(skb->dev, ring, FBNIC_MAX_SKB_DESC);