Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _NET_SELFTESTS
3#define _NET_SELFTESTS
4
5#include <linux/ethtool.h>
6#include <linux/netdevice.h>
7
8struct net_packet_attrs {
9 const unsigned char *src;
10 const unsigned char *dst;
11 u32 ip_src;
12 u32 ip_dst;
13 bool tcp;
14 u16 sport;
15 u16 dport;
16 int timeout;
17 int size;
18 int max_size;
19 u8 id;
20 u16 queue_mapping;
21 bool bad_csum;
22};
23
24struct net_test_priv {
25 struct net_packet_attrs *packet;
26 struct packet_type pt;
27 struct completion comp;
28 int double_vlan;
29 int vlan_id;
30 int ok;
31};
32
33struct netsfhdr {
34 __be32 version;
35 __be64 magic;
36 u8 id;
37} __packed;
38
39#define NET_TEST_PKT_SIZE (sizeof(struct ethhdr) + sizeof(struct iphdr) + \
40 sizeof(struct netsfhdr))
41#define NET_TEST_PKT_MAGIC 0xdeadcafecafedeadULL
42#define NET_LB_TIMEOUT msecs_to_jiffies(200)
43
44#if IS_ENABLED(CONFIG_NET_SELFTESTS)
45
46struct sk_buff *net_test_get_skb(struct net_device *ndev, u8 id,
47 struct net_packet_attrs *attr);
48void net_selftest(struct net_device *ndev, struct ethtool_test *etest,
49 u64 *buf);
50int net_selftest_get_count(void);
51void net_selftest_get_strings(u8 *data);
52
53#else
54
55static inline struct sk_buff *net_test_get_skb(struct net_device *ndev, u8 id,
56 struct net_packet_attrs *attr)
57{
58 return NULL;
59}
60
61static inline void net_selftest(struct net_device *ndev, struct ethtool_test *etest,
62 u64 *buf)
63{
64}
65
66static inline int net_selftest_get_count(void)
67{
68 return 0;
69}
70
71static inline void net_selftest_get_strings(u8 *data)
72{
73}
74
75#endif
76#endif /* _NET_SELFTESTS */