udev: net-config - allow interface names to be set from the hwdb

This commit is contained in:
Tom Gundersen 2014-02-19 22:37:13 +01:00
parent dd8875f939
commit e51660ae56
6 changed files with 21 additions and 1 deletions

View File

@ -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

5
hwdb/20-net-ifname.hwdb Normal file
View File

@ -0,0 +1,5 @@
# This file is part of systemd.
# Dell iDRAC Virtual USB NIC
usb:v413CpA102*
ID_NET_NAME_FROM_DATABASE=irdac

View File

@ -883,6 +883,15 @@
<literal>NAME</literal>. The available policies are:
</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>

View File

@ -1,3 +1,3 @@
[Link]
NamePolicy=onboard slot path
NamePolicy=database onboard slot path
MACAddressPolicy=persistent

View File

@ -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",

View File

@ -38,6 +38,7 @@ typedef enum MACPolicy {
} MACPolicy;
typedef enum NamePolicy {
NAMEPOLICY_DATABASE,
NAMEPOLICY_ONBOARD,
NAMEPOLICY_SLOT,
NAMEPOLICY_PATH,