From 4d7ba3ae52d79329d67e82e5019ffcebf0a7a860 Mon Sep 17 00:00:00 2001
From: Jakob Olsson <jakob.olsson@iopsys.eu>
Date: Tue, 24 Aug 2021 17:23:49 +0200
Subject: [PATCH] map-controller: introduce enabled vendor extension to
ap-autoconfig
---
src/core/cntlr_tlv_generator.c | 2 ++
src/core/config.c | 7 ++++++-
src/core/config.h | 1 +
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/core/cntlr_tlv_generator.c b/src/core/cntlr_tlv_generator.c
index e2b6117c..6dde5cc5 100644
--- a/src/core/cntlr_tlv_generator.c
+++ b/src/core/cntlr_tlv_generator.c
@@ -230,6 +230,7 @@ int cntlr_gen_wsc(struct controller *c, struct cmdu_buff *frm,
uint8_t oui[3] = {IOP_VENDOR_ID_1, IOP_VENDOR_ID_2, IOP_VENDOR_ID_3};
uint8_t out[256] = {0};
size_t olen = 256;
+#define ATTR_ENABLED (0x4C) /* IOPSYS m2 vendor extension */
t = cmdu_reserve_tlv(frm, 1000);
if (!t)
@@ -259,6 +260,7 @@ int cntlr_gen_wsc(struct controller *c, struct cmdu_buff *frm,
ATTR_PROTO, strlen(iface_cred->br->proto), iface_cred->br->proto,
ATTR_BR_IP, 4, &iface_cred->br->ipaddr.addr.ip4.s_addr,
ATTR_VID, 2, &(iface_cred->br->id),
+ ATTR_ENABLED, 1, &(iface_cred->enabled),
-1);
ret = wsc_build_m2(msg, msglen, &cred, out, olen, &m2, &m2_size);
diff --git a/src/core/config.c b/src/core/config.c
index 0eb9012f..6666db33 100644
--- a/src/core/config.c
+++ b/src/core/config.c
@@ -431,6 +431,7 @@ static int cntlr_config_get_credentials(struct controller_config *c,
CRED_VLAN,
CRED_MAP,
CRED_D_BSTA,
+ CRED_ENABLED,
NUM_CREDS,
};
const struct uci_parse_option opts[] = {
@@ -440,7 +441,8 @@ static int cntlr_config_get_credentials(struct controller_config *c,
[CRED_KEY] = { .name = "key", .type = UCI_TYPE_STRING },
[CRED_VLAN] = { .name = "vlan", .type = UCI_TYPE_STRING },
[CRED_MAP] = { .name = "multi_ap", .type = UCI_TYPE_STRING },
- [CRED_D_BSTA] = { .name = "disallow_bsta", .type = UCI_TYPE_STRING }
+ [CRED_D_BSTA] = { .name = "disallow_bsta", .type = UCI_TYPE_STRING },
+ [CRED_ENABLED] = { .name = "enabled", .type = UCI_TYPE_STRING }
};
struct uci_option *tb[NUM_CREDS];
struct iface_credential *cred;
@@ -532,6 +534,9 @@ static int cntlr_config_get_credentials(struct controller_config *c,
if (tb[CRED_D_BSTA])
cred->disallow_bsta = atoi(tb[CRED_D_BSTA]->v.string);
+ if (tb[CRED_ENABLED])
+ cred->enabled = atoi(tb[CRED_ENABLED]->v.string);
+
(*num)++;
list_add_tail(&cred->list, iface_list);
return 0;
diff --git a/src/core/config.h b/src/core/config.h
index 7c1672e4..ac07c538 100644
--- a/src/core/config.h
+++ b/src/core/config.h
@@ -47,6 +47,7 @@ struct iface_credential {
uint8_t multi_ap;
enum aptype mode;
uint8_t disallow_bsta;
+ bool enabled;
struct netif_vlan *br;
struct list_head list;
};
--
GitLab