#include <linux/phy.h>
#include <net/selftests.h>
#include <net/tcp.h>
#include <net/udp.h>
struct net_packet_attrs { … };
struct net_test_priv { … };
struct netsfhdr { … } __packed;
static u8 net_test_next_id;
#define NET_TEST_PKT_SIZE …
#define NET_TEST_PKT_MAGIC …
#define NET_LB_TIMEOUT …
static struct sk_buff *net_test_get_skb(struct net_device *ndev,
struct net_packet_attrs *attr)
{ … }
static int net_test_loopback_validate(struct sk_buff *skb,
struct net_device *ndev,
struct packet_type *pt,
struct net_device *orig_ndev)
{ … }
static int __net_test_loopback(struct net_device *ndev,
struct net_packet_attrs *attr)
{ … }
static int net_test_netif_carrier(struct net_device *ndev)
{ … }
static int net_test_phy_phydev(struct net_device *ndev)
{ … }
static int net_test_phy_loopback_enable(struct net_device *ndev)
{ … }
static int net_test_phy_loopback_disable(struct net_device *ndev)
{ … }
static int net_test_phy_loopback_udp(struct net_device *ndev)
{ … }
static int net_test_phy_loopback_udp_mtu(struct net_device *ndev)
{ … }
static int net_test_phy_loopback_tcp(struct net_device *ndev)
{ … }
static const struct net_test { … } net_selftests[] = …;
void net_selftest(struct net_device *ndev, struct ethtool_test *etest, u64 *buf)
{ … }
EXPORT_SYMBOL_GPL(…);
int net_selftest_get_count(void)
{ … }
EXPORT_SYMBOL_GPL(…);
void net_selftest_get_strings(u8 *data)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;