summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
diff options
context:
space:
mode:
authorVasily Ulyanov <vulyanov@quantenna.com>2017-12-19 14:28:56 +0300
committerKalle Valo <kvalo@codeaurora.org>2018-01-09 14:11:23 +0200
commitf1398fd2dd8c77bc1e469062103c057a9c2c0c74 (patch)
tree4787c876986abed6f0a0c807ece8c7e055beb7b0 /drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
parent7a4d3a3bc84e9fcd6323cb7424d538ccfa0148e9 (diff)
downloadblackbird-op-linux-f1398fd2dd8c77bc1e469062103c057a9c2c0c74.tar.gz
blackbird-op-linux-f1398fd2dd8c77bc1e469062103c057a9c2c0c74.zip
qtnfmac: support MAC address based access control
This allows a running AP to blacklist STAs by their MAC addresses respecting the configured policy (either accept or deny unless listed). It can be setup on .start_ap or with .set_mac_acl commands. Signed-off-by: Vasily Ulyanov <vulyanov@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/quantenna/qtnfmac/qlink_util.c')
-rw-r--r--drivers/net/wireless/quantenna/qtnfmac/qlink_util.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/quantenna/qtnfmac/qlink_util.c b/drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
index 19981d6440b6..aeeda81b09ea 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
@@ -176,3 +176,21 @@ bool qtnf_utils_is_bit_set(const u8 *arr, unsigned int bit,
return arr[idx] & mask;
}
+
+void qlink_acl_data_cfg2q(const struct cfg80211_acl_data *acl,
+ struct qlink_acl_data *qacl)
+{
+ switch (acl->acl_policy) {
+ case NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED:
+ qacl->policy =
+ cpu_to_le32(QLINK_ACL_POLICY_ACCEPT_UNLESS_LISTED);
+ break;
+ case NL80211_ACL_POLICY_DENY_UNLESS_LISTED:
+ qacl->policy = cpu_to_le32(QLINK_ACL_POLICY_DENY_UNLESS_LISTED);
+ break;
+ }
+
+ qacl->num_entries = cpu_to_le32(acl->n_acl_entries);
+ memcpy(qacl->mac_addrs, acl->mac_addrs,
+ acl->n_acl_entries * sizeof(*qacl->mac_addrs));
+}
OpenPOWER on IntegriCloud