udev-builtin-net_id: Extend persistent naming support to MCTP interfaces

Now that we have Management Component Transport Protocol (MCTP) transports
available over USB, it would be helpful to apply udev's persistent
naming rules to MCTP interfaces, to follow the USB hub/port topology.

Enable persistent naming for ARPHRD_MCTP-type devices, using a "mc" name
prefix, and add appropriate definitions for the v260 naming sheme.
This commit is contained in:
Jeremy Kerr
2025-12-18 10:54:51 +01:00
committed by Zbigniew Jędrzejewski-Szmek
parent f603bc37f4
commit cc1ed77280
4 changed files with 25 additions and 1 deletions
+14
View File
@@ -90,6 +90,10 @@
<entry><constant>ww</constant></entry>
<entry>Wireless wide area network (WWAN)</entry>
</row>
<row>
<entry><constant>mc</constant></entry>
<entry>Management Component Transport Protocol (MCTP)</entry>
</row>
</tbody>
</tgroup>
</table>
@@ -561,6 +565,16 @@
<xi:include href="version-info.xml" xpointer="v259"/>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>v260</constant></term>
<listitem><para>MCTP interfaces are now assigned persistent names, using a <constant>mc</constant>
prefix.</para>
<xi:include href="version-info.xml" xpointer="v260"/>
</listitem>
</varlistentry>
</variablelist>
<para>Note that <constant>latest</constant> may be used to denote the latest scheme known (to this
+1
View File
@@ -30,6 +30,7 @@ static const NamingScheme naming_schemes[] = {
{ "v257", NAMING_V257 },
{ "v258", NAMING_V258 },
{ "v259", NAMING_V259 },
{ "v260", NAMING_V260 },
/* … add more schemes here, as the logic to name devices is updated … */
EXTRA_NET_NAMING_MAP
+2
View File
@@ -43,6 +43,7 @@ typedef enum NamingSchemeFlags {
NAMING_DEVICETREE_PORT_ALIASES = 1 << 19, /* Include aliases of OF nodes of a netdev itself, not just its parent. See PR #33958. */
NAMING_USE_INTERFACE_PROPERTY = 1 << 20, /* Use INTERFACE udev property, rather than sysname, when no renaming is requested. */
NAMING_DEVICETREE_ALIASES_WLAN = 1 << 21, /* Generate names from devicetree aliases for WLAN devices */
NAMING_MCTP = 1 << 22, /* Use "mc" prefix for MCTP devices */
/* And now the masks that combine the features above */
NAMING_V238 = 0,
@@ -65,6 +66,7 @@ typedef enum NamingSchemeFlags {
NAMING_V257 = NAMING_V255 | NAMING_FIRMWARE_NODE_SUN | NAMING_DEVICETREE_PORT_ALIASES,
NAMING_V258 = NAMING_V257 | NAMING_USE_INTERFACE_PROPERTY,
NAMING_V259 = NAMING_V258 | NAMING_DEVICETREE_ALIASES_WLAN,
NAMING_V260 = NAMING_V259 | NAMING_MCTP,
EXTRA_NET_NAMING_SCHEMES
+8 -1
View File
@@ -1307,7 +1307,7 @@ static int get_ifname_prefix(sd_device *dev, const char **ret) {
if (r < 0)
return r;
/* handle only ARPHRD_ETHER, ARPHRD_SLIP and ARPHRD_INFINIBAND devices */
/* handle only ARPHRD_ETHER, ARPHRD_SLIP, ARPHRD_INFINIBAND, and ARPHDR_MCTP devices */
switch (iftype) {
case ARPHRD_ETHER: {
if (device_is_devtype(dev, "wlan") > 0)
@@ -1329,6 +1329,13 @@ static int get_ifname_prefix(sd_device *dev, const char **ret) {
*ret = "sl";
return 0;
case ARPHRD_MCTP:
if (!naming_scheme_has(NAMING_MCTP))
return -EOPNOTSUPP;
*ret = "mc";
return 0;
default:
return -EOPNOTSUPP;
}