chiark / gitweb /
udev: net-config - allow interface names to be set from the hwdb
authorTom Gundersen <teg@jklm.no>
Wed, 19 Feb 2014 21:37:13 +0000 (22:37 +0100)
committerTom Gundersen <teg@jklm.no>
Wed, 19 Feb 2014 22:29:51 +0000 (23:29 +0100)
Makefile.am
hwdb/20-net-ifname.hwdb [new file with mode: 0644]
man/udev.xml
network/99-default.link
src/udev/net/link-config.c
src/udev/net/link-config.h

index d8b5b71614aa504e50593d86d3c4c13b3a63af9f..02a1aaef08ae8b8ad66595a2758eeda96293e85e 100644 (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
diff --git a/hwdb/20-net-ifname.hwdb b/hwdb/20-net-ifname.hwdb
new file mode 100644 (file)
index 0000000..29d2633
--- /dev/null
@@ -0,0 +1,5 @@
+# This file is part of systemd.
+
+# Dell iDRAC Virtual USB NIC
+usb:v413CpA102*
+ ID_NET_NAME_FROM_DATABASE=irdac
index eab5d25f0a556a21c8c69e9f59e4d80b3ecb33a0..c053a86d3e291fdc778c4dfc8d1a22df368918c9 100644 (file)
               <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>
index 05be03bd376c952159d96c13190b26efa0935e8d..53215f633bb9fdca81d72aabadc07c769926dc25 100644 (file)
@@ -1,3 +1,3 @@
 [Link]
-NamePolicy=onboard slot path
+NamePolicy=database onboard slot path
 MACAddressPolicy=persistent
index 3afaff10c8cf73626e30ca2aa495f04d6170ee95..d05b9099132b637dc212c6f645e5c7a1f570b352 100644 (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",
index a55c6f5f05d66ab37d73acf60ef47ab664f57cec..4fc8963114c2e3ca277c237c8ff56628d2efe2ab 100644 (file)
@@ -38,6 +38,7 @@ typedef enum MACPolicy {
 } MACPolicy;
 
 typedef enum NamePolicy {
+        NAMEPOLICY_DATABASE,
         NAMEPOLICY_ONBOARD,
         NAMEPOLICY_SLOT,
         NAMEPOLICY_PATH,