summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2019-01-24 15:32:46 +0100
committerLubomir Rintel <lkundrak@v3.sk>2019-07-15 15:15:50 +0000
commit0691e993c946611a0e89623d76be8566b11e92c0 (patch)
treea5c5f92d940c2c4779e302a2d2d5e869f3164897
parentc6be7163035461aa76104b7bd1b4ca70c916cdf1 (diff)
downloadNetworkManager-0691e993c946611a0e89623d76be8566b11e92c0.tar.gz
wifi-utils: recognize Mesh interfaces
-rw-r--r--src/platform/wifi/nm-wifi-utils-nl80211.c9
-rw-r--r--src/platform/wifi/nm-wifi-utils.c3
2 files changed, 11 insertions, 1 deletions
diff --git a/src/platform/wifi/nm-wifi-utils-nl80211.c b/src/platform/wifi/nm-wifi-utils-nl80211.c
index cf71e243bc..fe7ce94fc0 100644
--- a/src/platform/wifi/nm-wifi-utils-nl80211.c
+++ b/src/platform/wifi/nm-wifi-utils-nl80211.c
@@ -199,6 +199,9 @@ nl80211_iface_info_handler (struct nl_msg *msg, void *arg)
case NL80211_IFTYPE_STATION:
info->mode = NM_802_11_MODE_INFRA;
break;
+ case NL80211_IFTYPE_MESH_POINT:
+ info->mode = NM_802_11_MODE_MESH;
+ break;
}
return NL_SKIP;
@@ -241,6 +244,9 @@ wifi_nl80211_set_mode (NMWifiUtils *data, const NM80211Mode mode)
case NM_802_11_MODE_AP:
NLA_PUT_U32 (msg, NL80211_ATTR_IFTYPE, NL80211_IFTYPE_AP);
break;
+ case NM_802_11_MODE_MESH:
+ NLA_PUT_U32 (msg, NL80211_ATTR_IFTYPE, NL80211_IFTYPE_MESH_POINT);
+ break;
default:
g_assert_not_reached ();
}
@@ -896,6 +902,9 @@ static int nl80211_wiphy_info_handler (struct nl_msg *msg, void *arg)
info->caps |= NM_WIFI_DEVICE_CAP_AP;
else if (nla_type (nl_mode) == NL80211_IFTYPE_ADHOC)
info->caps |= NM_WIFI_DEVICE_CAP_ADHOC;
+
+ if (nla_type (nl_mode) == NL80211_IFTYPE_MESH_POINT)
+ info->caps |= NM_WIFI_DEVICE_CAP_MESH;
}
}
diff --git a/src/platform/wifi/nm-wifi-utils.c b/src/platform/wifi/nm-wifi-utils.c
index 1682bb1ea5..1e42db6af0 100644
--- a/src/platform/wifi/nm-wifi-utils.c
+++ b/src/platform/wifi/nm-wifi-utils.c
@@ -89,7 +89,8 @@ nm_wifi_utils_set_mode (NMWifiUtils *data, const NM80211Mode mode)
g_return_val_if_fail (data != NULL, FALSE);
g_return_val_if_fail ( (mode == NM_802_11_MODE_INFRA)
|| (mode == NM_802_11_MODE_AP)
- || (mode == NM_802_11_MODE_ADHOC), FALSE);
+ || (mode == NM_802_11_MODE_ADHOC)
+ || (mode == NM_802_11_MODE_MESH), FALSE);
klass = NM_WIFI_UTILS_GET_CLASS (data);