diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java index dfca5cb..1098760 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java @@ -2383,7 +2383,7 @@ public class OvsdbDao { int keyRefresh, boolean uapsdEnabled, boolean apBridge, NetworkForwardMode networkForwardMode, String gateway, String inet, Map dns, String ipAssignScheme, List macBlockList, boolean rateLimitEnable, int ssidDlLimit, int ssidUlLimit, int clientDlLimit, int clientUlLimit, - Map captiveMap, List walledGardenAllowlist, + int rtsCtsThreshold, Map captiveMap, List walledGardenAllowlist, Map> bonjourServiceMap) { List operations = new ArrayList<>(); @@ -2484,6 +2484,10 @@ public class OvsdbDao { customOptions.put("ssid_dl_limit", String.valueOf(ssidDlLimit * 1000)); customOptions.put("client_dl_limit", String.valueOf(clientDlLimit * 1000)); customOptions.put("client_ul_limit", String.valueOf(clientUlLimit * 1000)); + if (rtsCtsThreshold > 0) { + customOptions.put("rts_threshold", String.valueOf(rtsCtsThreshold)); + } + if (enable80211k) { customOptions.put("ieee80211k", String.valueOf(1)); } else { @@ -2669,6 +2673,7 @@ public class OvsdbDao { SsidConfiguration ssidConfig = (SsidConfiguration) ssidProfile.getDetails(); ApElementConfiguration apElementConfig = (ApElementConfiguration) opensyncApConfig.getCustomerEquipment() .getDetails(); + for (RadioType radioType : ssidConfig.getAppliedRadios()) { // Still put profiles on disabled radios for now. // @@ -2764,11 +2769,14 @@ public class OvsdbDao { ipAssignScheme = "dhcp"; } + ElementRadioConfiguration elementRadioConfiguration = apElementConfig.getRadioMap().get(radioType); + + RadioConfiguration radioConfiguration = apElementConfig.getAdvancedRadioMap().get(radioType); if (radioConfiguration == null) { continue; // don't have a radio of this kind in the map } - + int rtsCtsThreshold = radioConfiguration.getRtsCtsThreshold(); RadioMode radioMode = radioConfiguration.getRadioMode(); String minHwMode = "11n"; // min_hw_mode is 11ac, wifi 5, we can // also take ++ (11ax) but 2.4GHz only @@ -2895,8 +2903,8 @@ public class OvsdbDao { ssidConfig.getVlanId(), rrmEnabled, enable80211r, mobilityDomain, enable80211v, enable80211k, minHwMode, enabled, keyRefresh, uapsdEnabled, apBridge, ssidConfig.getForwardMode(), gateway, inet, dns, ipAssignScheme, macBlockList, - rateLimitEnable, ssidDlLimit, ssidUlLimit, clientDlLimit, clientUlLimit, captiveMap, - walledGardenAllowlist, bonjourServiceMap); + rateLimitEnable, ssidDlLimit, ssidUlLimit, clientDlLimit, clientUlLimit, rtsCtsThreshold, + captiveMap, walledGardenAllowlist, bonjourServiceMap); } catch (IllegalStateException e) { // could not provision this SSID, but still can go on