/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _NET_SELFTESTS #define _NET_SELFTESTS #include #include struct net_packet_attrs { const unsigned char *src; const unsigned char *dst; u32 ip_src; u32 ip_dst; bool tcp; u16 sport; u16 dport; int timeout; int size; int max_size; u8 id; u16 queue_mapping; bool bad_csum; }; struct net_test_priv { struct net_packet_attrs *packet; struct packet_type pt; struct completion comp; int double_vlan; int vlan_id; int ok; }; struct netsfhdr { __be32 version; __be64 magic; u8 id; } __packed; #define NET_TEST_PKT_SIZE (sizeof(struct ethhdr) + sizeof(struct iphdr) + \ sizeof(struct netsfhdr)) #define NET_TEST_PKT_MAGIC 0xdeadcafecafedeadULL #define NET_LB_TIMEOUT msecs_to_jiffies(200) #if IS_ENABLED(CONFIG_NET_SELFTESTS) struct sk_buff *net_test_get_skb(struct net_device *ndev, u8 id, struct net_packet_attrs *attr); void net_selftest(struct net_device *ndev, struct ethtool_test *etest, u64 *buf); int net_selftest_get_count(void); void net_selftest_get_strings(u8 *data); #else static inline struct sk_buff *net_test_get_skb(struct net_device *ndev, u8 id, struct net_packet_attrs *attr) { return NULL; } static inline void net_selftest(struct net_device *ndev, struct ethtool_test *etest, u64 *buf) { } static inline int net_selftest_get_count(void) { return 0; } static inline void net_selftest_get_strings(u8 *data) { } #endif #endif /* _NET_SELFTESTS */