From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from codeconstruct.com.au (pi.codeconstruct.com.au [203.29.241.158]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB7BD222596 for ; Wed, 2 Jul 2025 06:20:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.29.241.158 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751437223; cv=none; b=MPqHIcKM5OVbQTuZjhtMn+qHZR8gUYa0g+l7POeAb7syKp3yBW51X94pHm4m/zZrs2+YnkIrxpNqwOxKVOYoIx3xBK7n4YW2xUYWOhKzjPr6ZlfA0WnlDdT5lVpvj7mzjgxSmuS+x21040badYWnsRQ9N/oMSmWXFNR4vbaxJYo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751437223; c=relaxed/simple; bh=L0QDqvP7LYf3a7HP40O4D/9HzWhTu21fcJ9OM8avD+c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LRV+/eW5yJg812v0WjagD5qeJ8yZrSJLFXF7nFmGq4QQvyccHvbc9aJg8uF2yT27OSNqi/qhfAF9QtAfGYd0Kch5aDqW6c9zhexSM3DE9LxD6nZqex6dqJ1z43UQnrRWnXnUR2g7Xw4fIvSfI1w3n7F7ohcPyhjcCLq6mvA0IHk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=codeconstruct.com.au; spf=pass smtp.mailfrom=codeconstruct.com.au; dkim=pass (2048-bit key) header.d=codeconstruct.com.au header.i=@codeconstruct.com.au header.b=fpgYuY5e; arc=none smtp.client-ip=203.29.241.158 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=codeconstruct.com.au Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=codeconstruct.com.au Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=codeconstruct.com.au header.i=@codeconstruct.com.au header.b="fpgYuY5e" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codeconstruct.com.au; s=2022a; t=1751437216; bh=bpplyrufTPAEz0szVkPuhXMUOEK92m/zleybUILmNWU=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=fpgYuY5evGNjZa5xkZEKfzQw8PkWO71PUYqkTDUqUpbq6W7ERO+4Wkuf91h/x7/YZ uifxUGV8Du4zapOUVNck7aUGZE/q0t8+yCzOOTYTsXkYncOFH0dmByFCcdbSLB7YsX cUZ1OffWZivPPoh/tt0DKYMw0ShgEP1LkWszPF5Xd4ZWwwtRMDevkxS8wRqqpJQOg/ 3Cgl5Si9M1EESV9FBowVrS9dMUnvesa3/Lv1dSCM6cmzmQHWKTtU4ZE9+2NU/zWlW8 0+s0D8KfQvNQ5z99PFc15O4w6Pxhgovd+Gmh4OVAIMRvVZ2s9maYIP+DI2rdWFaQ6X elS3NO9KpDdIA== Received: by codeconstruct.com.au (Postfix, from userid 10000) id 8105D6A70C; Wed, 2 Jul 2025 14:20:16 +0800 (AWST) From: Jeremy Kerr Date: Wed, 02 Jul 2025 14:20:05 +0800 Subject: [PATCH net-next v5 05/14] net: mctp: test: Add an addressed device constructor Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250702-dev-forwarding-v5-5-1468191da8a4@codeconstruct.com.au> References: <20250702-dev-forwarding-v5-0-1468191da8a4@codeconstruct.com.au> In-Reply-To: <20250702-dev-forwarding-v5-0-1468191da8a4@codeconstruct.com.au> To: Matt Johnston , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org X-Mailer: b4 0.14.2 Upcoming tests will check semantics of hardware addressing, which require a dev with ->addr_len != 0. Add a constructor to create a MCTP interface using a physically-addressed bus type. Signed-off-by: Jeremy Kerr --- net/mctp/test/utils.c | 20 ++++++++++++++++++-- net/mctp/test/utils.h | 7 +++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/net/mctp/test/utils.c b/net/mctp/test/utils.c index 565763eb02114be8fd2a097fe0fe391d8f4bd2ae..26dce14dc7f246f03ff66e5b84274b33c48baf0e 100644 --- a/net/mctp/test/utils.c +++ b/net/mctp/test/utils.c @@ -26,19 +26,22 @@ static void mctp_test_dev_setup(struct net_device *ndev) ndev->type = ARPHRD_MCTP; ndev->mtu = MCTP_DEV_TEST_MTU; ndev->hard_header_len = 0; - ndev->addr_len = 0; ndev->tx_queue_len = DEFAULT_TX_QUEUE_LEN; ndev->flags = IFF_NOARP; ndev->netdev_ops = &mctp_test_netdev_ops; ndev->needs_free_netdev = true; } -struct mctp_test_dev *mctp_test_create_dev(void) +static struct mctp_test_dev *__mctp_test_create_dev(unsigned short lladdr_len, + const unsigned char *lladdr) { struct mctp_test_dev *dev; struct net_device *ndev; int rc; + if (WARN_ON(lladdr_len > MAX_ADDR_LEN)) + return NULL; + ndev = alloc_netdev(sizeof(*dev), "mctptest%d", NET_NAME_ENUM, mctp_test_dev_setup); if (!ndev) @@ -46,6 +49,8 @@ struct mctp_test_dev *mctp_test_create_dev(void) dev = netdev_priv(ndev); dev->ndev = ndev; + ndev->addr_len = lladdr_len; + dev_addr_set(ndev, lladdr); rc = register_netdev(ndev); if (rc) { @@ -61,6 +66,17 @@ struct mctp_test_dev *mctp_test_create_dev(void) return dev; } +struct mctp_test_dev *mctp_test_create_dev(void) +{ + return __mctp_test_create_dev(0, NULL); +} + +struct mctp_test_dev *mctp_test_create_dev_lladdr(unsigned short lladdr_len, + const unsigned char *lladdr) +{ + return __mctp_test_create_dev(lladdr_len, lladdr); +} + void mctp_test_destroy_dev(struct mctp_test_dev *dev) { mctp_dev_put(dev->mdev); diff --git a/net/mctp/test/utils.h b/net/mctp/test/utils.h index df6aa1c03440922c18eec337b220b8428d1c684e..c702f4a6b5ff9f2de06f6a6bfee0c3653abfdefd 100644 --- a/net/mctp/test/utils.h +++ b/net/mctp/test/utils.h @@ -3,6 +3,8 @@ #ifndef __NET_MCTP_TEST_UTILS_H #define __NET_MCTP_TEST_UTILS_H +#include + #include #define MCTP_DEV_TEST_MTU 68 @@ -10,11 +12,16 @@ struct mctp_test_dev { struct net_device *ndev; struct mctp_dev *mdev; + + unsigned short lladdr_len; + unsigned char lladdr[MAX_ADDR_LEN]; }; struct mctp_test_dev; struct mctp_test_dev *mctp_test_create_dev(void); +struct mctp_test_dev *mctp_test_create_dev_lladdr(unsigned short lladdr_len, + const unsigned char *lladdr); void mctp_test_destroy_dev(struct mctp_test_dev *dev); #endif /* __NET_MCTP_TEST_UTILS_H */ -- 2.39.5