diff options
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | hwdb/20-net-ifname.hwdb | 5 | ||||
-rw-r--r-- | man/udev.xml | 9 | ||||
-rw-r--r-- | network/99-default.link | 2 | ||||
-rw-r--r-- | src/udev/net/link-config.c | 4 | ||||
-rw-r--r-- | src/udev/net/link-config.h | 1 |
6 files changed, 21 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am index d8b5b71614..02a1aaef08 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2463,6 +2463,7 @@ dist_udevhwdb_DATA = \ hwdb/20-bluetooth-vendor-product.hwdb \ hwdb/20-acpi-vendor.hwdb \ hwdb/20-OUI.hwdb \ + hwdb/20-net-ifname.hwdb \ hwdb/60-keyboard.hwdb udevconfdir = $(sysconfdir)/udev diff --git a/hwdb/20-net-ifname.hwdb b/hwdb/20-net-ifname.hwdb new file mode 100644 index 0000000000..29d2633501 --- /dev/null +++ b/hwdb/20-net-ifname.hwdb @@ -0,0 +1,5 @@ +# This file is part of systemd. + +# Dell iDRAC Virtual USB NIC +usb:v413CpA102* + ID_NET_NAME_FROM_DATABASE=irdac diff --git a/man/udev.xml b/man/udev.xml index eab5d25f0a..c053a86d3e 100644 --- a/man/udev.xml +++ b/man/udev.xml @@ -884,6 +884,15 @@ </para> <variablelist> <varlistentry> + <term><literal>database</literal></term> + <listitem> + <para>The name is set based on entries in the Hardware + Database with the key + <literal>ID_NET_NAME_FROM_DATABASE</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> <term><literal>onboard</literal></term> <listitem> <para>The name is set based on information given by the diff --git a/network/99-default.link b/network/99-default.link index 05be03bd37..53215f633b 100644 --- a/network/99-default.link +++ b/network/99-default.link @@ -1,3 +1,3 @@ [Link] -NamePolicy=onboard slot path +NamePolicy=database onboard slot path MACAddressPolicy=persistent diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c index 3afaff10c8..d05b909913 100644 --- a/src/udev/net/link-config.c +++ b/src/udev/net/link-config.c @@ -383,6 +383,9 @@ int link_config_apply(link_config_ctx *ctx, link_config *config, struct udev_dev for (policy = config->name_policy; !new_name && *policy != _NAMEPOLICY_INVALID; policy++) { switch (*policy) { + case NAMEPOLICY_DATABASE: + new_name = udev_device_get_property_value(device, "ID_NET_NAME_FROM_DATABASE"); + break; case NAMEPOLICY_ONBOARD: new_name = udev_device_get_property_value(device, "ID_NET_NAME_ONBOARD"); break; @@ -447,6 +450,7 @@ DEFINE_STRING_TABLE_LOOKUP(mac_policy, MACPolicy); DEFINE_CONFIG_PARSE_ENUM(config_parse_mac_policy, mac_policy, MACPolicy, "Failed to parse MAC address policy"); static const char* const name_policy_table[] = { + [NAMEPOLICY_DATABASE] = "database", [NAMEPOLICY_ONBOARD] = "onboard", [NAMEPOLICY_SLOT] = "slot", [NAMEPOLICY_PATH] = "path", diff --git a/src/udev/net/link-config.h b/src/udev/net/link-config.h index a55c6f5f05..4fc8963114 100644 --- a/src/udev/net/link-config.h +++ b/src/udev/net/link-config.h @@ -38,6 +38,7 @@ typedef enum MACPolicy { } MACPolicy; typedef enum NamePolicy { + NAMEPOLICY_DATABASE, NAMEPOLICY_ONBOARD, NAMEPOLICY_SLOT, NAMEPOLICY_PATH, |