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_direct(struct net *net, 40 struct mctp_dev *dev, 41 mctp_eid_t eid, 42 unsigned int mtu); 43 struct mctp_test_route *mctp_test_create_route_gw(struct net *net, 44 unsigned int netid, 45 mctp_eid_t eid, 46 mctp_eid_t gw, 47 unsigned int mtu); 48 void mctp_test_dst_setup(struct kunit *test, struct mctp_dst *dst, 49 struct mctp_test_dev *dev, 50 struct mctp_test_pktqueue *tpq, unsigned int mtu); 51 void mctp_test_dst_release(struct mctp_dst *dst, 52 struct mctp_test_pktqueue *tpq); 53 void mctp_test_pktqueue_init(struct mctp_test_pktqueue *tpq); 54 void mctp_test_route_destroy(struct kunit *test, struct mctp_test_route *rt); 55 void mctp_test_skb_set_dev(struct sk_buff *skb, struct mctp_test_dev *dev); 56 struct sk_buff *mctp_test_create_skb(const struct mctp_hdr *hdr, 57 unsigned int data_len); 58 struct sk_buff *__mctp_test_create_skb_data(const struct mctp_hdr *hdr, 59 const void *data, size_t data_len); 60 61 #define mctp_test_create_skb_data(h, d) \ 62 __mctp_test_create_skb_data(h, d, sizeof(*d)) 63 64 #endif /* __NET_MCTP_TEST_UTILS_H */ 65