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 CA42423AE60 for ; Thu, 19 Jun 2025 08:01:07 +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=1750320071; cv=none; b=HYVFn85Xlee2KZ6HDmbLEptA/PuLnnVdUOScLG/rnoH+EPXjhDBjOgJ36EXueaasTFiezxCCHq+zzFDGN4q7VLYkOn7Zlo6b4H6F/XW4HELky9t3lQBqbQVvwSEyKjzdZwa2ZRWQqLI5Q6EEcC59XTOrxiuic+rNPUenm2dNGnE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750320071; c=relaxed/simple; bh=U3urW5Bhs84g9Pe2+CDDLc7a/GtMBbfrBx2mnfyLJ+o=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=kTitd0zdo+WJWC03vCx0B6K3F68ntme4MJ1hyVn06si2vZpX1H6rzQXwkcbQlMe+lly1IRtLFj6sX/2/WKVW9U4j1p8IAzLZp9XB34iODhHBto8DRvNWw/XULkHX7WLhJGj4wLNc/jUBSX+FAbv6bNJCV2sehNfNgVTbWKBzZJQ= 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=mE8vzFYz; 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="mE8vzFYz" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codeconstruct.com.au; s=2022a; t=1750320059; bh=BLzdz5uj3P6sm0Auaw7v78VtVB5YcYSOvv3gnPKZ478=; h=From:Subject:Date:To:Cc; b=mE8vzFYz6ncai+XXhRIHdLLc32XK2n5YsfddIMmxBT6xq8GAGfS/ODAw9ajD4UuR8 LV+xuKVNv0mDdK7/XEQQyKe9UBez6yWi+lDuzCaScf6/fsoKZXlVN0yKyOBPIP5AE3 CjgCLTtQXuVb9LNl0JPOwGVmHQvFv0FsE22Cmp6NCMW5cbwVhDenbkt5LpbVtbL2L7 K6OaqcC0FoIPmn+4NYl9ebdqzW7di1o7Sh4koe1JCfhDGDxOaQymM9vwVmYxeJ2Hv2 owIY06cBy+XBOgDDrVJ/3kVUqopkW3upvvwXzv6QWkIQiEpG0YlkAScTMr+ka+Gil/ PHi5+nSlrDAEw== Received: by codeconstruct.com.au (Postfix, from userid 10000) id A6D0168DFC; Thu, 19 Jun 2025 16:00:59 +0800 (AWST) From: Jeremy Kerr Subject: [PATCH net-next v2 00/13] net: mctp: Add support for gateway routing Date: Thu, 19 Jun 2025 16:00:35 +0800 Message-Id: <20250619-dev-forwarding-v2-0-3f81801b06c2@codeconstruct.com.au> 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 X-B4-Tracking: v=1; b=H4sIAKPDU2gC/12NQQ6DIBQFr2L+uhjAKrEr79G4EPgoi0IDSG2Md y9h2eVk8uadEDFYjPBoTgiYbbTeFeC3BtS2uBWJ1YWBU97TnlOiMRPjw2cJ2rqVUMHYKLq7oNJ AGb0DGnvU4BMcJuLwSDAXs9mYfPjWp8yqr9GBsf9oZoSSQQ6jZAZlJ8ykvEblXUxhV6lV/tUuO 8zXdf0AwAMDx8EAAAA= X-Change-ID: 20250520-dev-forwarding-0711973470bf 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 This series adds a gateway route type for the MCTP core, allowing non-local EIDs as the match for a route. Example setup using the mctp tools: mctp route add 9 via mctpi2c0 mctp neigh add 9 dev mctpi2c0 lladdr 0x1d mctp route add 10 gw 9 - will route packets to eid 10 through mctpi2c0, using a dest lladdr of 0x1d (ie, that of the directly-attached eid 9). The core change to support this is the introduction of a struct mctp_dst, which represents the result of a route lookup. Since this involves a bit of surgery through the routing code, we add a few tests along the way. We're introducing an ABI change in the new RTM_{NEW,GET,DEL}ROUTE netlink formats, with the support for a RTA_GATEWAY attribute. Because we need a network ID specified to fully-qualify a gateway EID, the RTA_GATEWAY attribute carries the (net, eid) tuple in full: struct mctp_fq_addr { unsigned int net; mctp_eid_t eid; } Of course, any questions, comments etc are most welcome. Signed-off-by: Jeremy Kerr --- Changes in v2: - 12/13: prevent uninitialsed gateway variable in nlparse_common - 13/13: make test data static - commit message spelling fixes - Link to v1: https://lore.kernel.org/r/20250611-dev-forwarding-v1-0-6b69b1feb37f@codeconstruct.com.au --- Jeremy Kerr (13): net: mctp: don't use source cb data when forwarding, ensure pkt_type is set net: mctp: separate routing database from routing operations net: mctp: separate cb from direct-addressing routing net: mctp: test: Add an addressed device constructor net: mctp: test: Add extaddr routing output test net: mctp: test: move functions into utils.[ch] net: mctp: test: add sock test infrastructure net: mctp: test: Add initial socket tests net: mctp: pass net into route creation net: mctp: remove routes by netid, not by device net: mctp: allow NL parsing directly into a struct mctp_route net: mctp: add gateway routing support net: mctp: test: Add tests for gateway routes include/net/mctp.h | 52 +++- include/uapi/linux/mctp.h | 8 + net/mctp/af_mctp.c | 62 ++--- net/mctp/route.c | 563 ++++++++++++++++++++++++++++-------------- net/mctp/test/route-test.c | 604 +++++++++++++++++++++++++++++---------------- net/mctp/test/sock-test.c | 229 +++++++++++++++++ net/mctp/test/utils.c | 196 ++++++++++++++- net/mctp/test/utils.h | 44 ++++ 8 files changed, 1307 insertions(+), 451 deletions(-) --- base-commit: 0097c4195b1d0ca57d15979626c769c74747b5a0 change-id: 20250520-dev-forwarding-0711973470bf Best regards, -- Jeremy Kerr