@@ -681,6 +681,8 @@ enum ethtool_link_ext_substate_module {
* @ETH_SS_STATS_ETH_MAC: names of IEEE 802.3 MAC statistics
* @ETH_SS_STATS_ETH_CTRL: names of IEEE 802.3 MAC Control statistics
* @ETH_SS_STATS_RMON: names of RMON statistics
+ * @ETH_SS_ULP_DDP: names of ULP DDP capabilities
+ * @ETH_SS_ULP_DDP_STATS: per-device names of ULP DDP statistics
*
* @ETH_SS_COUNT: number of defined string sets
*/
@@ -706,6 +708,8 @@ enum ethtool_stringset {
ETH_SS_STATS_ETH_MAC,
ETH_SS_STATS_ETH_CTRL,
ETH_SS_STATS_RMON,
+ ETH_SS_ULP_DDP,
+ ETH_SS_ULP_DDP_STATS,
/* add new constants above here */
ETH_SS_COUNT
@@ -5,6 +5,7 @@
#include <linux/phy.h>
#include <linux/rtnetlink.h>
#include <linux/ptp_clock_kernel.h>
+#include <net/ulp_ddp_caps.h>
#include "common.h"
@@ -457,6 +458,12 @@ const char udp_tunnel_type_names[][ETH_GSTRING_LEN] = {
static_assert(ARRAY_SIZE(udp_tunnel_type_names) ==
__ETHTOOL_UDP_TUNNEL_TYPE_CNT);
+const char ulp_ddp_names[][ETH_GSTRING_LEN] = {
+ [ULP_DDP_C_NVME_TCP_BIT] = "nvme-tcp-ddp",
+ [ULP_DDP_C_NVME_TCP_DDGST_RX_BIT] = "nvme-tcp-ddgst-rx-offload",
+};
+static_assert(ARRAY_SIZE(ulp_ddp_names) == ULP_DDP_C_COUNT);
+
/* return false if legacy contained non-0 deprecated fields
* maxtxpkt/maxrxpkt. rest of ksettings always updated
*/
@@ -36,6 +36,7 @@ extern const char sof_timestamping_names[][ETH_GSTRING_LEN];
extern const char ts_tx_type_names[][ETH_GSTRING_LEN];
extern const char ts_rx_filter_names[][ETH_GSTRING_LEN];
extern const char udp_tunnel_type_names[][ETH_GSTRING_LEN];
+extern const char ulp_ddp_names[][ETH_GSTRING_LEN];
int __ethtool_get_link(struct net_device *dev);
@@ -2,6 +2,7 @@
#include <linux/ethtool.h>
#include <linux/phy.h>
+#include <net/ulp_ddp_caps.h>
#include "netlink.h"
#include "common.h"
@@ -105,6 +106,14 @@ static const struct strset_info info_template[] = {
.count = __ETHTOOL_A_STATS_RMON_CNT,
.strings = stats_rmon_names,
},
+ [ETH_SS_ULP_DDP] = {
+ .per_dev = false,
+ .count = ULP_DDP_C_COUNT,
+ .strings = ulp_ddp_names,
+ },
+ [ETH_SS_ULP_DDP_STATS] = {
+ .per_dev = true,
+ },
};
struct strset_req_info {