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:
committed by
Zbigniew Jędrzejewski-Szmek
parent
f603bc37f4
commit
cc1ed77280
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user