Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mctp: Add test utils

Add a new object for shared test utilities

Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Jeremy Kerr and committed by
David S. Miller
ded21b72 161eba50

+90
+3
net/mctp/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 obj-$(CONFIG_MCTP) += mctp.o 3 3 mctp-objs := af_mctp.o device.o route.o neigh.o 4 + 5 + # tests 6 + obj-$(CONFIG_MCTP_TEST) += test/utils.o
+67
net/mctp/test/utils.c
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + 3 + #include <linux/netdevice.h> 4 + #include <linux/mctp.h> 5 + #include <linux/if_arp.h> 6 + 7 + #include <net/mctpdevice.h> 8 + #include <net/pkt_sched.h> 9 + 10 + #include "utils.h" 11 + 12 + static netdev_tx_t mctp_test_dev_tx(struct sk_buff *skb, 13 + struct net_device *ndev) 14 + { 15 + kfree(skb); 16 + return NETDEV_TX_OK; 17 + } 18 + 19 + static const struct net_device_ops mctp_test_netdev_ops = { 20 + .ndo_start_xmit = mctp_test_dev_tx, 21 + }; 22 + 23 + static void mctp_test_dev_setup(struct net_device *ndev) 24 + { 25 + ndev->type = ARPHRD_MCTP; 26 + ndev->mtu = MCTP_DEV_TEST_MTU; 27 + ndev->hard_header_len = 0; 28 + ndev->addr_len = 0; 29 + ndev->tx_queue_len = DEFAULT_TX_QUEUE_LEN; 30 + ndev->flags = IFF_NOARP; 31 + ndev->netdev_ops = &mctp_test_netdev_ops; 32 + ndev->needs_free_netdev = true; 33 + } 34 + 35 + struct mctp_test_dev *mctp_test_create_dev(void) 36 + { 37 + struct mctp_test_dev *dev; 38 + struct net_device *ndev; 39 + int rc; 40 + 41 + ndev = alloc_netdev(sizeof(*dev), "mctptest%d", NET_NAME_ENUM, 42 + mctp_test_dev_setup); 43 + if (!ndev) 44 + return NULL; 45 + 46 + dev = netdev_priv(ndev); 47 + dev->ndev = ndev; 48 + 49 + rc = register_netdev(ndev); 50 + if (rc) { 51 + free_netdev(ndev); 52 + return NULL; 53 + } 54 + 55 + rcu_read_lock(); 56 + dev->mdev = __mctp_dev_get(ndev); 57 + mctp_dev_hold(dev->mdev); 58 + rcu_read_unlock(); 59 + 60 + return dev; 61 + } 62 + 63 + void mctp_test_destroy_dev(struct mctp_test_dev *dev) 64 + { 65 + mctp_dev_put(dev->mdev); 66 + unregister_netdev(dev->ndev); 67 + }
+20
net/mctp/test/utils.h
··· 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 <kunit/test.h> 7 + 8 + #define MCTP_DEV_TEST_MTU 68 9 + 10 + struct mctp_test_dev { 11 + struct net_device *ndev; 12 + struct mctp_dev *mdev; 13 + }; 14 + 15 + struct mctp_test_dev; 16 + 17 + struct mctp_test_dev *mctp_test_create_dev(void); 18 + void mctp_test_destroy_dev(struct mctp_test_dev *dev); 19 + 20 + #endif /* __NET_MCTP_TEST_UTILS_H */