xref: /linux/net/mctp/test/utils.h (revision 80bcf05e54e0e269515192c3a2ceff736a730492)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #ifndef __NET_MCTP_TEST_UTILS_H
4 #define __NET_MCTP_TEST_UTILS_H
5 
6 #include <uapi/linux/netdevice.h>
7 
8 #include <net/mctp.h>
9 #include <net/mctpdevice.h>
10 
11 #include <kunit/test.h>
12 
13 #define MCTP_DEV_TEST_MTU	68
14 
15 struct mctp_test_dev {
16 	struct net_device *ndev;
17 	struct mctp_dev *mdev;
18 
19 	unsigned short lladdr_len;
20 	unsigned char lladdr[MAX_ADDR_LEN];
21 };
22 
23 struct mctp_test_dev;
24 
25 struct mctp_test_route {
26 	struct mctp_route	rt;
27 };
28 
29 struct mctp_test_pktqueue {
30 	unsigned int magic;
31 	struct sk_buff_head pkts;
32 };
33 
34 struct mctp_test_dev *mctp_test_create_dev(void);
35 struct mctp_test_dev *mctp_test_create_dev_lladdr(unsigned short lladdr_len,
36 						  const unsigned char *lladdr);
37 void mctp_test_destroy_dev(struct mctp_test_dev *dev);
38 
39 struct mctp_test_route *mctp_test_create_route(struct net *net,
40 					       struct mctp_dev *dev,
41 					       mctp_eid_t eid,
42 					       unsigned int mtu);
43 void mctp_test_dst_setup(struct kunit *test, struct mctp_dst *dst,
44 			 struct mctp_test_dev *dev,
45 			 struct mctp_test_pktqueue *tpq, unsigned int mtu);
46 void mctp_test_dst_release(struct mctp_dst *dst,
47 			   struct mctp_test_pktqueue *tpq);
48 void mctp_test_pktqueue_init(struct mctp_test_pktqueue *tpq);
49 void mctp_test_route_destroy(struct kunit *test, struct mctp_test_route *rt);
50 void mctp_test_skb_set_dev(struct sk_buff *skb, struct mctp_test_dev *dev);
51 struct sk_buff *mctp_test_create_skb(const struct mctp_hdr *hdr,
52 				     unsigned int data_len);
53 struct sk_buff *__mctp_test_create_skb_data(const struct mctp_hdr *hdr,
54 					    const void *data, size_t data_len);
55 
56 #define mctp_test_create_skb_data(h, d) \
57 	__mctp_test_create_skb_data(h, d, sizeof(*d))
58 
59 #endif /* __NET_MCTP_TEST_UTILS_H */
60