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 8779427EC98 for ; Fri, 27 Jun 2025 08:52:51 +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=1751014373; cv=none; b=NYBshpMJIZauBtGPEE/2FtppytMabQ8KRtTwtFkbOjKP/9XD9oHm1oNNv84uy5wA02t64BT1yBb73REI7M925pgprLQPZN4IspYxpDvT7sKC4DdlJ3B8uyVb6yf05TesI/HABZgAiom9LbqRpr4vIfWElwr7KSjUk6hWE5GhFQA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751014373; c=relaxed/simple; bh=ZJp2HjcVsPoxxoBEkEZHhUQTWbAjLlLOvQCV6m4NcDY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oXCw0L1TfFRNYlHkYjS4KZ1kZDK9/qovRQ4ynkryrWGnLmn23HxB+2fgNwuT+783roiv1HKsQfxKNESrZO4v/qP2Os7fG7BOdAyYu9a5Asei8wVWy6bU3FCBcVKzVtF+I3c8NcuNBRFWKOwz8hRyeGXQRGgoGel82Wc1aPlRDhI= 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=kB8YjOkT; 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="kB8YjOkT" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codeconstruct.com.au; s=2022a; t=1751014367; bh=mGu60tlqFztUWyd1Ilm2Hk2b8oLP5dkP5s8S9fOy73I=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=kB8YjOkTriz6+RIGh8w3dkGlyQkPNDsPXMrY6KFhG2oIOzEBANlUABK8qyJOESRVz MDz3Mgv/hywhsB+GCiRMgbjhrqjdaNVJsDvqWx5pu22nYIv/hEpkVMXfx/3VBZZOhs BoLwKeWf0AG67QBmwWVDGj4jLUcBzEIn7ieqvyrZVzyMp+d1g0xEJFXtnQuHrV16x+ i1+yrWYAn9Jc7LC4lByVGRCKgiAiFx40bBtqPuQhZU3ptYkYxWKfI4Wh1tGbXdE/Ss Z44XsFqSwjatqkack1rVWG8r6jWw9W9jlBAb2hanT93kqyWKN3ijCjgj/yOsecVkpX Oqj8RlPUFdPKg== Received: by codeconstruct.com.au (Postfix, from userid 10000) id 625B969E22; Fri, 27 Jun 2025 16:52:47 +0800 (AWST) From: Jeremy Kerr Date: Fri, 27 Jun 2025 16:52:22 +0800 Subject: [PATCH net-next v4 06/14] net: mctp: test: Add extaddr routing output test 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: <20250627-dev-forwarding-v4-6-72bb3cabc97c@codeconstruct.com.au> References: <20250627-dev-forwarding-v4-0-72bb3cabc97c@codeconstruct.com.au> In-Reply-To: <20250627-dev-forwarding-v4-0-72bb3cabc97c@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 Test that the routing code preserves the haddr data in a skb through an input route operation. Signed-off-by: Jeremy Kerr --- net/mctp/test/route-test.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/net/mctp/test/route-test.c b/net/mctp/test/route-test.c index 7a1eba463fe77e4419dfeb94341562541a13fe8a..3a1a686e36c36d3ee700a093cbf77da7e25afe56 100644 --- a/net/mctp/test/route-test.c +++ b/net/mctp/test/route-test.c @@ -1294,6 +1294,58 @@ static void mctp_test_route_output_key_create(struct kunit *test) mctp_test_destroy_dev(dev); } +static void mctp_test_route_extaddr_input(struct kunit *test) +{ + static const unsigned char haddr[] = { 0xaa, 0x55 }; + struct mctp_test_pktqueue tpq; + struct mctp_skb_cb *cb, *cb2; + const unsigned int len = 40; + struct mctp_test_dev *dev; + struct sk_buff *skb, *skb2; + struct mctp_dst dst; + struct mctp_hdr hdr; + struct socket *sock; + int rc; + + hdr.ver = 1; + hdr.src = 10; + hdr.dest = 8; + hdr.flags_seq_tag = FL_S | FL_E | FL_TO; + + __mctp_route_test_init(test, &dev, &dst, &tpq, &sock, MCTP_NET_ANY); + + skb = mctp_test_create_skb(&hdr, len); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, skb); + + /* set our hardware addressing data */ + cb = mctp_cb(skb); + memcpy(cb->haddr, haddr, sizeof(haddr)); + cb->halen = sizeof(haddr); + + mctp_test_skb_set_dev(skb, dev); + + rc = mctp_dst_input(&dst, skb); + KUNIT_ASSERT_EQ(test, rc, 0); + + mctp_test_dst_release(&dst, &tpq); + + skb2 = skb_recv_datagram(sock->sk, MSG_DONTWAIT, &rc); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, skb2); + KUNIT_ASSERT_EQ(test, skb2->len, len); + + cb2 = mctp_cb(skb2); + + /* Received SKB should have the hardware addressing as set above. + * We're likely to have the same actual cb here (ie., cb == cb2), + * but it's the comparison that we care about + */ + KUNIT_EXPECT_EQ(test, cb2->halen, sizeof(haddr)); + KUNIT_EXPECT_MEMEQ(test, cb2->haddr, haddr, sizeof(haddr)); + + skb_free_datagram(sock->sk, skb2); + mctp_test_destroy_dev(dev); +} + static struct kunit_case mctp_test_cases[] = { KUNIT_CASE_PARAM(mctp_test_fragment, mctp_frag_gen_params), KUNIT_CASE_PARAM(mctp_test_rx_input, mctp_rx_input_gen_params), @@ -1310,6 +1362,7 @@ static struct kunit_case mctp_test_cases[] = { KUNIT_CASE(mctp_test_fragment_flow), KUNIT_CASE(mctp_test_route_output_key_create), KUNIT_CASE(mctp_test_route_input_cloned_frag), + KUNIT_CASE(mctp_test_route_extaddr_input), {} }; -- 2.39.5