diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2016-01-20 12:45:21 +0100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2016-01-21 15:28:44 +0100 |
commit | b95c88284dd58d871c88850cb4570119684f4f06 (patch) | |
tree | 0539b3d476875afa907d8b768ff3ee13b270a12a | |
parent | bd27102277e5d7e52d87bd26711ae6c431e08192 (diff) | |
download | NetworkManager-b95c88284dd58d871c88850cb4570119684f4f06.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.
(cherry picked from commit c1cf3c25c836f5beeecc4589b0aea52da7379587)
-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 ee6ba421d2..6b9b3573d3 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -989,13 +989,19 @@ link_extract_type (NMPlatform *platform, struct rtnl_link *rtnllink, gboolean *c 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 && !rtnl_type && !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 (!rtnl_type && !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; |