wlan-ap-Telecominfraproject/feeds/wlan-ap/opensync/patches/20-radio-custom-options.patch
Rick Sommerville a8a97efd0e WIFI-621 Allow Control of b-rate modulation
Signed-off-by: Rick Sommerville <rick.sommerville@netexperience.com>
2020-10-21 09:05:37 +02:00

79 lines
2.5 KiB
Diff

--- a/interfaces/opensync.ovsschema
+++ b/interfaces/opensync.ovsschema
@@ -1424,6 +1424,14 @@
"min": 0,
"max": 1
}
+ },
+ "custom_options": {
+ "type": {
+ "key": "string",
+ "value": "string",
+ "min": 0,
+ "max": "unlimited"
+ }
}
},
"isRoot": true,
@@ -1756,6 +1764,14 @@
"min": 0,
"max": 1
}
+ },
+ "custom_options": {
+ "type": {
+ "key": "string",
+ "value": "string",
+ "min": 0,
+ "max": "unlimited"
+ }
}
},
"isRoot": true,
--- a/src/lib/schema/inc/schema_consts.h
+++ b/src/lib/schema/inc/schema_consts.h
@@ -151,6 +151,8 @@ typedef enum {
#define SCHEMA_CONSTS_RTS_THRESHOLD "rts_threshold"
#define SCHEMA_CONSTS_FRAG_THRESHOLD "frag_threshold"
#define SCHEMA_CONSTS_DTIM_PERIOD "dtim_period"
+#define SCHEMA_CONSTS_DISABLE_B_RATES "disable_b_rates"
+#define SCHEMA_CONSTS_IEEE80211k "ieee80211k"
/* Captive Portal */
#define SCHEMA_CONSTS_SESSION_TIMEOUT "session_timeout"
--- a/src/wm2/src/wm2_radio.c
+++ b/src/wm2/src/wm2_radio.c
@@ -593,6 +593,7 @@ wm2_rconf_changed(const struct schema_Wi
CMP(CHANGED_MAP_INTSTR, temperature_control);
CMP(CHANGED_MAP_STRINT, fallback_parents);
CMP(CHANGED_STR, zero_wait_dfs);
+ CMP(CHANGED_MAP_STRSTR, custom_options);
if (changed)
LOGD("%s: changed (forced=%d)", conf->if_name, changedf->_uuid);
--- a/src/wm2/src/wm2_radio1.c
+++ b/src/wm2/src/wm2_radio1.c
@@ -493,6 +493,22 @@ wm2_radio_equal(
rconf_set->tx_power_exists = true;
}
}
+ if (ovsdb_update_changed(mon, SCHEMA_COLUMN(Wifi_Radio_Config, custom_options))) {
+ if (rconf->custom_options_len == rstate.custom_options_len) {
+ for (index = 0; index < rconf->custom_options_len; index++) {
+ RADIO_EQUAL(SCHEMA_FIELD_CMP_MAP_STR(rconf, &rstate, custom_options, index));
+ }
+ } else {
+ is_equal = false;
+ }
+ if (!is_equal) {
+ for (index = 0; index < rconf->custom_options_len; index++) {
+ strcpy(rconf_set->custom_options[index], rconf->custom_options[index]);
+ strcpy(rconf_set->custom_options_keys[index], rconf->custom_options_keys[index]);
+ }
+ rconf_set->custom_options_len = rconf->custom_options_len;
+ }
+ }
#undef RADIO_EQUAL