[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250219194213.10448-8-gerhard@engleder-embedded.com>
Date: Wed, 19 Feb 2025 20:42:12 +0100
From: Gerhard Engleder <gerhard@...leder-embedded.com>
To: andrew@...n.ch,
hkallweit1@...il.com,
linux@...linux.org.uk,
davem@...emloft.net,
edumazet@...gle.com,
kuba@...nel.org,
pabeni@...hat.com
Cc: netdev@...r.kernel.org,
Gerhard Engleder <gerhard@...leder-embedded.com>
Subject: [PATCH net-next v7 7/8] net: selftests: Add selftests sets with fixed speed
Add PHY loopback selftest sets with fixed 100 Mbps and 1000 Mbps speed.
Signed-off-by: Gerhard Engleder <gerhard@...leder-embedded.com>
---
include/net/selftests.h | 4 ++++
net/core/selftests.c | 46 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+)
diff --git a/include/net/selftests.h b/include/net/selftests.h
index a3e9bb959e3d..ba781fa6249a 100644
--- a/include/net/selftests.h
+++ b/include/net/selftests.h
@@ -7,9 +7,13 @@
/**
* enum net_selftest_set - selftest set ID
* @NET_SELFTEST_CARRIER: Loopback tests based on carrier speed
+ * @NET_SELFTEST_100: Loopback tests with 100 Mbps
+ * @NET_SELFTEST_1000: Loopback tests with 1000 Mbps
*/
enum net_selftest_set {
NET_TEST_LOOPBACK_CARRIER = 0,
+ NET_TEST_LOOPBACK_100,
+ NET_TEST_LOOPBACK_1000,
};
#if IS_ENABLED(CONFIG_NET_SELFTESTS)
diff --git a/net/core/selftests.c b/net/core/selftests.c
index 3a597a38566e..3149bd1f15d3 100644
--- a/net/core/selftests.c
+++ b/net/core/selftests.c
@@ -324,6 +324,26 @@ static int net_test_phy_loopback_enable_fn(struct net_device *ndev)
static const NET_TEST(phy_loopback_enable, "PHY loopback enable");
+static int net_test_phy_loopback_100_enable_fn(struct net_device *ndev)
+{
+ if (!ndev->phydev)
+ return -EOPNOTSUPP;
+
+ return phy_loopback(ndev->phydev, true, 100);
+}
+
+static const NET_TEST(phy_loopback_100_enable, "PHY loopback 100 Mbps");
+
+static int net_test_phy_loopback_1000_enable_fn(struct net_device *ndev)
+{
+ if (!ndev->phydev)
+ return -EOPNOTSUPP;
+
+ return phy_loopback(ndev->phydev, true, 1000);
+}
+
+static const NET_TEST(phy_loopback_1000_enable, "PHY loopback 1000 Mbps");
+
static int net_test_phy_loopback_disable_fn(struct net_device *ndev)
{
if (!ndev->phydev)
@@ -376,11 +396,33 @@ static const struct net_test *net_selftests_carrier[] = {
&net_test_phy_loopback_disable,
};
+static const struct net_test *net_selftests_100[] = {
+ &net_test_phy_phydev,
+ &net_test_phy_loopback_100_enable,
+ &net_test_phy_loopback_udp,
+ &net_test_phy_loopback_udp_mtu,
+ &net_test_phy_loopback_tcp,
+ &net_test_phy_loopback_disable,
+};
+
+static const struct net_test *net_selftests_1000[] = {
+ &net_test_phy_phydev,
+ &net_test_phy_loopback_1000_enable,
+ &net_test_phy_loopback_udp,
+ &net_test_phy_loopback_udp_mtu,
+ &net_test_phy_loopback_tcp,
+ &net_test_phy_loopback_disable,
+};
+
static const struct net_test **net_selftests_set_get(int set)
{
switch (set) {
case NET_TEST_LOOPBACK_CARRIER:
return net_selftests_carrier;
+ case NET_TEST_LOOPBACK_100:
+ return net_selftests_100;
+ case NET_TEST_LOOPBACK_1000:
+ return net_selftests_1000;
}
return NULL;
@@ -415,6 +457,10 @@ int net_selftest_set_get_count(int set)
switch (set) {
case NET_TEST_LOOPBACK_CARRIER:
return ARRAY_SIZE(net_selftests_carrier);
+ case NET_TEST_LOOPBACK_100:
+ return ARRAY_SIZE(net_selftests_100);
+ case NET_TEST_LOOPBACK_1000:
+ return ARRAY_SIZE(net_selftests_1000);
default:
return -EINVAL;
}
--
2.39.5
Powered by blists - more mailing lists