summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2016-01-20 12:45:21 +0100
committerLubomir Rintel <lkundrak@v3.sk>2016-01-21 11:33:59 +0100
commitc1cf3c25c836f5beeecc4589b0aea52da7379587 (patch)
treed9730378097b498b565745266f6e39fb4b44f9a0
parentbf54a5bfbaf05021fe738a7da254760a5bcf1e97 (diff)
downloadNetworkManager-c1cf3c25c836f5beeecc4589b0aea52da7379587.tar.gz
linux-platform: treat gadget devices as ethernet devices
Also, don't manage them by default. Whatver created it should take care of management.
-rw-r--r--data/85-nm-unmanaged.rules5
-rw-r--r--src/platform/nm-linux-platform.c20
2 files changed, 18 insertions, 7 deletions
diff --git a/data/85-nm-unmanaged.rules b/data/85-nm-unmanaged.rules
index 887ab84599..edc4ddbe79 100644
--- a/data/85-nm-unmanaged.rules
+++ b/data/85-nm-unmanaged.rules
@@ -26,4 +26,9 @@ ATTR{address}=="00:1c:42:*", ENV{INTERFACE}=="vnic[0-9]*", ENV{NM_UNMANAGED}="1"
# in another net namespace and managed by libvirt, Docker or the like.
ENV{ID_NET_DRIVER}=="veth", ENV{NM_UNMANAGED}="1"
+# USB gadget device. Unmanage by default, since whatever created it
+# might want to set it up itself (e.g. activate an ipv4.method=shared
+# connection).
+ENV{DEVTYPE}=="gadget", ENV{NM_UNMANAGED}="1"
+
LABEL="nm_unmanaged_end"
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
index f73c228b83..f5166803c8 100644
--- a/src/platform/nm-linux-platform.c
+++ b/src/platform/nm-linux-platform.c
@@ -732,13 +732,19 @@ _linktype_get_type (NMPlatform *platform,
if (wifi_utils_is_wifi (ifname, sysfs_path))
return NM_LINK_TYPE_WIFI;
- /* Standard wired ethernet interfaces don't report an rtnl_link_type, so
- * only allow fallback to Ethernet if no type is given. This should
- * prevent future virtual network drivers from being treated as Ethernet
- * when they should be Generic instead.
- */
- if (arptype == ARPHRD_ETHER && !kind && !devtype)
- return NM_LINK_TYPE_ETHERNET;
+ if (arptype == ARPHRD_ETHER) {
+ /* Standard wired ethernet interfaces don't report an rtnl_link_type, so
+ * only allow fallback to Ethernet if no type is given. This should
+ * prevent future virtual network drivers from being treated as Ethernet
+ * when they should be Generic instead.
+ */
+ if (!kind && !devtype)
+ return NM_LINK_TYPE_ETHERNET;
+ /* The USB gadget interfaces behave and look like ordinary ethernet devices
+ * aside from the DEVTYPE. */
+ if (!g_strcmp0 (devtype, "gadget"))
+ return NM_LINK_TYPE_ETHERNET;
+ }
}
return NM_LINK_TYPE_UNKNOWN;