[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240911124513.2691688-2-vadfed@meta.com>
Date: Wed, 11 Sep 2024 05:45:09 -0700
From: Vadim Fedorenko <vadfed@...a.com>
To: Vadim Fedorenko <vadim.fedorenko@...ux.dev>,
Jakub Kicinski
<kuba@...nel.org>, David Ahern <dsahern@...nel.org>,
Paolo Abeni
<pabeni@...hat.com>,
"David S. Miller" <davem@...emloft.net>,
Alexander Duyck
<alexanderduyck@...com>
CC: Vadim Fedorenko <vadfed@...a.com>, <netdev@...r.kernel.org>
Subject: [PATCH net-next 1/5] 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@...a.com>
---
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c | 11 +++++++++++
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c | 3 +++
2 files changed, 14 insertions(+)
diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c b/drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
index 5d980e178941..40d294d3e7a7 100644
--- a/drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
+++ b/drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
@@ -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_timstamping =
+ 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,
};
diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c b/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
index 4d0406af297f..c10339c4e5a0 100644
--- a/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
+++ b/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
@@ -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);
--
2.43.5
Powered by blists - more mailing lists