| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _NET_SELFTESTS |
| #define _NET_SELFTESTS |
| |
| #include <linux/ethtool.h> |
| #include <linux/netdevice.h> |
| |
| 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 */ |