summaryrefslogtreecommitdiff
path: root/include/uapi
diff options
context:
space:
mode:
authorKory Maincent <kory.maincent@bootlin.com>2023-11-14 14:28:36 +0300
committerDavid S. Miller <davem@davemloft.net>2023-11-18 17:52:57 +0300
commit11d55be06df0aedf19b05ab61c2d26b31a3c7e64 (patch)
tree8d23cbb5b4a7bef39d108dbd1d839a6d9d96cb96 /include/uapi
parentacec05fb78abb74fdab2195bfca9a6d38a732643 (diff)
downloadlinux-11d55be06df0aedf19b05ab61c2d26b31a3c7e64.tar.xz
net: ethtool: Add a command to expose current time stamping layer
Time stamping on network packets may happen either in the MAC or in the PHY, but not both. In preparation for making the choice selectable, expose both the current layers via ethtool. In accordance with the kernel implementation as it stands, the current layer will always read as "phy" when a PHY time stamping device is present. Future patches will allow changing the current layer administratively. Signed-off-by: Kory Maincent <kory.maincent@bootlin.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/ethtool_netlink.h14
-rw-r--r--include/uapi/linux/net_tstamp.h10
2 files changed, 24 insertions, 0 deletions
diff --git a/include/uapi/linux/ethtool_netlink.h b/include/uapi/linux/ethtool_netlink.h
index 73e2c10dc2cc..cb51136328cf 100644
--- a/include/uapi/linux/ethtool_netlink.h
+++ b/include/uapi/linux/ethtool_netlink.h
@@ -57,6 +57,7 @@ enum {
ETHTOOL_MSG_PLCA_GET_STATUS,
ETHTOOL_MSG_MM_GET,
ETHTOOL_MSG_MM_SET,
+ ETHTOOL_MSG_TS_GET,
/* add new constants above here */
__ETHTOOL_MSG_USER_CNT,
@@ -109,6 +110,7 @@ enum {
ETHTOOL_MSG_PLCA_NTF,
ETHTOOL_MSG_MM_GET_REPLY,
ETHTOOL_MSG_MM_NTF,
+ ETHTOOL_MSG_TS_GET_REPLY,
/* add new constants above here */
__ETHTOOL_MSG_KERNEL_CNT,
@@ -975,6 +977,18 @@ enum {
ETHTOOL_A_MM_MAX = (__ETHTOOL_A_MM_CNT - 1)
};
+/* TS LAYER */
+
+enum {
+ ETHTOOL_A_TS_UNSPEC,
+ ETHTOOL_A_TS_HEADER, /* nest - _A_HEADER_* */
+ ETHTOOL_A_TS_LAYER, /* u32 */
+
+ /* add new constants above here */
+ __ETHTOOL_A_TS_CNT,
+ ETHTOOL_A_TS_MAX = (__ETHTOOL_A_TS_CNT - 1)
+};
+
/* generic netlink info */
#define ETHTOOL_GENL_NAME "ethtool"
#define ETHTOOL_GENL_VERSION 1
diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
index df8091998c8d..4551fb3d7720 100644
--- a/include/uapi/linux/net_tstamp.h
+++ b/include/uapi/linux/net_tstamp.h
@@ -13,6 +13,16 @@
#include <linux/types.h>
#include <linux/socket.h> /* for SO_TIMESTAMPING */
+/* Layer of the TIMESTAMPING provider */
+enum timestamping_layer {
+ NO_TIMESTAMPING,
+ SOFTWARE_TIMESTAMPING,
+ MAC_TIMESTAMPING,
+ PHY_TIMESTAMPING,
+
+ __TIMESTAMPING_COUNT,
+};
+
/* SO_TIMESTAMPING flags */
enum {
SOF_TIMESTAMPING_TX_HARDWARE = (1<<0),