WIFI-830: Cloud BE: support configuration of fragmentation threshold

For each RadioType of the AP the value of rtsCtsThreshold is applied to
the rts_threshold in Wifi_VIF_Config custom_options map.
This commit is contained in:
Mike Hansen
2020-09-23 18:28:12 -04:00
parent ca023ea554
commit 2b60dd8b57

View File

@@ -2383,7 +2383,7 @@ public class OvsdbDao {
int keyRefresh, boolean uapsdEnabled, boolean apBridge, NetworkForwardMode networkForwardMode,
String gateway, String inet, Map<String, String> dns, String ipAssignScheme, List<MacAddress> macBlockList,
boolean rateLimitEnable, int ssidDlLimit, int ssidUlLimit, int clientDlLimit, int clientUlLimit,
Map<String, String> captiveMap, List<String> walledGardenAllowlist,
int rtsCtsThreshold, Map<String, String> captiveMap, List<String> walledGardenAllowlist,
Map<Short, Set<String>> bonjourServiceMap) {
List<Operation> 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