mirror of
https://github.com/systemd/systemd
synced 2024-10-15 04:24:19 +00:00
udev: net-config - allow interface names to be set from the hwdb
This commit is contained in:
parent
dd8875f939
commit
e51660ae56
|
@ -2463,6 +2463,7 @@ dist_udevhwdb_DATA = \
|
||||||
hwdb/20-bluetooth-vendor-product.hwdb \
|
hwdb/20-bluetooth-vendor-product.hwdb \
|
||||||
hwdb/20-acpi-vendor.hwdb \
|
hwdb/20-acpi-vendor.hwdb \
|
||||||
hwdb/20-OUI.hwdb \
|
hwdb/20-OUI.hwdb \
|
||||||
|
hwdb/20-net-ifname.hwdb \
|
||||||
hwdb/60-keyboard.hwdb
|
hwdb/60-keyboard.hwdb
|
||||||
|
|
||||||
udevconfdir = $(sysconfdir)/udev
|
udevconfdir = $(sysconfdir)/udev
|
||||||
|
|
5
hwdb/20-net-ifname.hwdb
Normal file
5
hwdb/20-net-ifname.hwdb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# This file is part of systemd.
|
||||||
|
|
||||||
|
# Dell iDRAC Virtual USB NIC
|
||||||
|
usb:v413CpA102*
|
||||||
|
ID_NET_NAME_FROM_DATABASE=irdac
|
|
@ -883,6 +883,15 @@
|
||||||
<literal>NAME</literal>. The available policies are:
|
<literal>NAME</literal>. The available policies are:
|
||||||
</para>
|
</para>
|
||||||
<variablelist>
|
<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>
|
<varlistentry>
|
||||||
<term><literal>onboard</literal></term>
|
<term><literal>onboard</literal></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
[Link]
|
[Link]
|
||||||
NamePolicy=onboard slot path
|
NamePolicy=database onboard slot path
|
||||||
MACAddressPolicy=persistent
|
MACAddressPolicy=persistent
|
||||||
|
|
|
@ -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++) {
|
for (policy = config->name_policy; !new_name && *policy != _NAMEPOLICY_INVALID; policy++) {
|
||||||
switch (*policy) {
|
switch (*policy) {
|
||||||
|
case NAMEPOLICY_DATABASE:
|
||||||
|
new_name = udev_device_get_property_value(device, "ID_NET_NAME_FROM_DATABASE");
|
||||||
|
break;
|
||||||
case NAMEPOLICY_ONBOARD:
|
case NAMEPOLICY_ONBOARD:
|
||||||
new_name = udev_device_get_property_value(device, "ID_NET_NAME_ONBOARD");
|
new_name = udev_device_get_property_value(device, "ID_NET_NAME_ONBOARD");
|
||||||
break;
|
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");
|
DEFINE_CONFIG_PARSE_ENUM(config_parse_mac_policy, mac_policy, MACPolicy, "Failed to parse MAC address policy");
|
||||||
|
|
||||||
static const char* const name_policy_table[] = {
|
static const char* const name_policy_table[] = {
|
||||||
|
[NAMEPOLICY_DATABASE] = "database",
|
||||||
[NAMEPOLICY_ONBOARD] = "onboard",
|
[NAMEPOLICY_ONBOARD] = "onboard",
|
||||||
[NAMEPOLICY_SLOT] = "slot",
|
[NAMEPOLICY_SLOT] = "slot",
|
||||||
[NAMEPOLICY_PATH] = "path",
|
[NAMEPOLICY_PATH] = "path",
|
||||||
|
|
|
@ -38,6 +38,7 @@ typedef enum MACPolicy {
|
||||||
} MACPolicy;
|
} MACPolicy;
|
||||||
|
|
||||||
typedef enum NamePolicy {
|
typedef enum NamePolicy {
|
||||||
|
NAMEPOLICY_DATABASE,
|
||||||
NAMEPOLICY_ONBOARD,
|
NAMEPOLICY_ONBOARD,
|
||||||
NAMEPOLICY_SLOT,
|
NAMEPOLICY_SLOT,
|
||||||
NAMEPOLICY_PATH,
|
NAMEPOLICY_PATH,
|
||||||
|
|
Loading…
Reference in a new issue