From 92ade3227473bd7755b0443f3d1e99a1b44c4065 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 | 9 ++++++++- src/core/config.h | 1 + 3 files changed, 11 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..d50598e9 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; @@ -471,6 +473,8 @@ static int cntlr_config_get_credentials(struct controller_config *c, iface_list = &c->bklist; } + cred->enabled = true; + uci_parse_section(s, opts, NUM_CREDS, tb); if (tb[CRED_BAND]) { @@ -532,6 +536,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