diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2016-01-20 12:45:21 +0100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2016-01-21 11:33:59 +0100 |
commit | c1cf3c25c836f5beeecc4589b0aea52da7379587 (patch) | |
tree | d9730378097b498b565745266f6e39fb4b44f9a0 | |
parent | bf54a5bfbaf05021fe738a7da254760a5bcf1e97 (diff) | |
download | NetworkManager-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.rules | 5 | ||||
-rw-r--r-- | src/platform/nm-linux-platform.c | 20 |
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; |