Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/net/mctp/test/utils.h
26282 views
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_bind_setup {
35
mctp_eid_t bind_addr;
36
int bind_net;
37
u8 bind_type;
38
39
bool have_peer;
40
mctp_eid_t peer_addr;
41
int peer_net;
42
43
/* optional name. Used for comparison in "lookup" tests */
44
const char *name;
45
};
46
47
struct mctp_test_dev *mctp_test_create_dev(void);
48
struct mctp_test_dev *mctp_test_create_dev_lladdr(unsigned short lladdr_len,
49
const unsigned char *lladdr);
50
void mctp_test_destroy_dev(struct mctp_test_dev *dev);
51
52
struct mctp_test_route *mctp_test_create_route_direct(struct net *net,
53
struct mctp_dev *dev,
54
mctp_eid_t eid,
55
unsigned int mtu);
56
struct mctp_test_route *mctp_test_create_route_gw(struct net *net,
57
unsigned int netid,
58
mctp_eid_t eid,
59
mctp_eid_t gw,
60
unsigned int mtu);
61
void mctp_test_dst_setup(struct kunit *test, struct mctp_dst *dst,
62
struct mctp_test_dev *dev,
63
struct mctp_test_pktqueue *tpq, unsigned int mtu);
64
void mctp_test_dst_release(struct mctp_dst *dst,
65
struct mctp_test_pktqueue *tpq);
66
void mctp_test_pktqueue_init(struct mctp_test_pktqueue *tpq);
67
void mctp_test_route_destroy(struct kunit *test, struct mctp_test_route *rt);
68
void mctp_test_skb_set_dev(struct sk_buff *skb, struct mctp_test_dev *dev);
69
struct sk_buff *mctp_test_create_skb(const struct mctp_hdr *hdr,
70
unsigned int data_len);
71
struct sk_buff *__mctp_test_create_skb_data(const struct mctp_hdr *hdr,
72
const void *data, size_t data_len);
73
74
#define mctp_test_create_skb_data(h, d) \
75
__mctp_test_create_skb_data(h, d, sizeof(*d))
76
77
void mctp_test_bind_run(struct kunit *test,
78
const struct mctp_test_bind_setup *setup,
79
int *ret_bind_errno, struct socket **sock);
80
81
#endif /* __NET_MCTP_TEST_UTILS_H */
82
83