chiark / gitweb /
udev: net-config - allow interface names to be set from the hwdb
[elogind.git] / src / udev / net / link-config.c
index bd97cd8cf87d2672db439141aea1a440b22d2e00..d05b9099132b637dc212c6f645e5c7a1f570b352 100644 (file)
@@ -244,7 +244,7 @@ int link_config_get(link_config_ctx *ctx, struct udev_device *device, link_confi
                                      link->match_driver, link->match_type, NULL,
                                      udev_device_get_sysattr_value(device, "address"),
                                      udev_device_get_property_value(device, "ID_PATH"),
-                                     udev_device_get_driver(device),
+                                     udev_device_get_driver(udev_device_get_parent(device)),
                                      udev_device_get_devtype(device),
                                      NULL)) {
                         log_debug("Config file %s applies to device %s",
@@ -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",