ft_psk/ft_mobility_domain off by default, can be enabled via SSID profile RadioConfigs set 802.11r == true, HT_MODE cleanup

This commit is contained in:
Mike Hansen
2020-06-16 11:09:03 -04:00
parent 765af28c2a
commit e401e7585c
2 changed files with 33 additions and 14 deletions

View File

@@ -219,7 +219,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
Set<RadioType> appliedRadios = new HashSet<>(); Set<RadioType> appliedRadios = new HashSet<>();
appliedRadios.add(RadioType.is2dot4GHz); appliedRadios.add(RadioType.is2dot4GHz);
ssidConfig.getRadioBasedConfigs().get(RadioType.is2dot4GHz).setEnable80211r(true); // ssidConfig.getRadioBasedConfigs().get(RadioType.is2dot4GHz).setEnable80211r(true);
ssidConfig.setAppliedRadios(appliedRadios); ssidConfig.setAppliedRadios(appliedRadios);
ssidProfile.setDetails(ssidConfig); ssidProfile.setDetails(ssidConfig);
@@ -236,8 +236,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
appliedRadios5g.add(RadioType.is5GHzL); appliedRadios5g.add(RadioType.is5GHzL);
appliedRadios5g.add(RadioType.is5GHzU); appliedRadios5g.add(RadioType.is5GHzU);
ssidConfig5g.setAppliedRadios(appliedRadios5g); ssidConfig5g.setAppliedRadios(appliedRadios5g);
ssidConfig5g.getRadioBasedConfigs().get(RadioType.is5GHzL).setEnable80211r(true); // ssidConfig5g.getRadioBasedConfigs().get(RadioType.is5GHzL).setEnable80211r(true);
ssidConfig5g.getRadioBasedConfigs().get(RadioType.is5GHzU).setEnable80211r(true); // ssidConfig5g.getRadioBasedConfigs().get(RadioType.is5GHzU).setEnable80211r(true);
ssidProfile5g.setDetails(ssidConfig5g); ssidProfile5g.setDetails(ssidConfig5g);
ssidProfile5g = profileServiceInterface.create(ssidProfile5g); ssidProfile5g = profileServiceInterface.create(ssidProfile5g);
@@ -778,6 +778,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
cl); cl);
continue; continue;
} }
LOG.debug ("Processing ClientReport from AP {}", clReport);
ServiceMetric smr = new ServiceMetric(customerId, equipmentId, new MacAddress(cl.getMacAddress())); ServiceMetric smr = new ServiceMetric(customerId, equipmentId, new MacAddress(cl.getMacAddress()));
metricRecordList.add(smr); metricRecordList.add(smr);
@@ -817,6 +819,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
// we'll report each device as having a single (very long) // we'll report each device as having a single (very long)
// session // session
cMetrics.setSessionId(smr.getClientMac()); cMetrics.setSessionId(smr.getClientMac());
// populate Rx stats // populate Rx stats
if (cl.getStats().hasRxBytes()) { if (cl.getStats().hasRxBytes()) {
@@ -824,7 +827,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} }
if (cl.getStats().hasRxRate()) { if (cl.getStats().hasRxRate()) {
// cMetrics.setAverageRxRate(cl.getStats().getRxRate()); cMetrics.setAverageRxRate(cl.getStats().getRxRate());
} }
if (cl.getStats().hasRxErrors()) { if (cl.getStats().hasRxErrors()) {
@@ -832,8 +835,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} }
if (cl.getStats().hasRxFrames()) { if (cl.getStats().hasRxFrames()) {
// cMetrics.setNumRxFramesReceived(cl.getStats().getRxFrames()); cMetrics.setNumRxFramesReceived(cl.getStats().getRxFrames());
cMetrics.setNumRxPackets(cl.getStats().getRxFrames()); // cMetrics.setNumRxPackets(cl.getStats().getRxFrames());
} }
if (cl.getStats().hasRxRetries()) { if (cl.getStats().hasRxRetries()) {
@@ -846,7 +849,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} }
if (cl.getStats().hasTxRate()) { if (cl.getStats().hasTxRate()) {
// cMetrics.setAverageTxRate(cl.getStats().getTxRate()); cMetrics.setAverageTxRate(cl.getStats().getTxRate());
} }
if (cl.getStats().hasTxRate() && cl.getStats().hasRxRate()) { if (cl.getStats().hasTxRate() && cl.getStats().hasRxRate()) {
@@ -859,8 +862,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} }
if (cl.getStats().hasRxFrames()) { if (cl.getStats().hasRxFrames()) {
// cMetrics.setNumTxFramesTransmitted(cl.getStats().getTxFrames()); cMetrics.setNumTxFramesTransmitted(cl.getStats().getTxFrames());
cMetrics.setNumTxPackets(cl.getStats().getRxFrames());
} }
if (cl.getStats().hasTxRetries()) { if (cl.getStats().hasTxRetries()) {
@@ -868,6 +870,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} }
} }
LOG.debug("ApClientMetrics Report {}", cMetrics); LOG.debug("ApClientMetrics Report {}", cMetrics);

View File

@@ -1205,8 +1205,11 @@ public class OvsdbDao {
case is160MHz: case is160MHz:
ht_mode = "HT160"; ht_mode = "HT160";
break; break;
case auto:
ht_mode = "0";
break;
default: default:
ht_mode = "HT20"; ht_mode = null;
} }
elementRadioConfig.getAutoChannelSelection(); elementRadioConfig.getAutoChannelSelection();
@@ -1780,7 +1783,11 @@ public class OvsdbDao {
updateColumns.put("hw_config", hwConfigMap); updateColumns.put("hw_config", hwConfigMap);
updateColumns.put("bcn_int", new Atom<>(beaconInterval)); updateColumns.put("bcn_int", new Atom<>(beaconInterval));
updateColumns.put("enabled", new Atom<>(enabled)); updateColumns.put("enabled", new Atom<>(enabled));
// updateColumns.put("ht_mode", new Atom<>(ht_mode)); if (ht_mode != null && !ht_mode.equals("0")) {
updateColumns.put("ht_mode", new Atom<>(ht_mode));
} else {
updateColumns.put("ht_mode", new com.vmware.ovsdb.protocol.operation.notation.Set());
}
if (txPower > 0) { if (txPower > 0) {
updateColumns.put("tx_power", new Atom<>(txPower)); updateColumns.put("tx_power", new Atom<>(txPower));
} else { } else {
@@ -1819,6 +1826,7 @@ public class OvsdbDao {
updateColumns.put("ft_mobility_domain", new Atom<>(17911)); updateColumns.put("ft_mobility_domain", new Atom<>(17911));
} else { } else {
updateColumns.put("ft_psk", new Atom<>(0)); updateColumns.put("ft_psk", new Atom<>(0));
updateColumns.put("ft_mobility_domain", new com.vmware.ovsdb.protocol.operation.notation.Set());
} }
updateColumns.put("if_name", new Atom<>(ifName)); updateColumns.put("if_name", new Atom<>(ifName));
updateColumns.put("mode", new Atom<>("ap")); updateColumns.put("mode", new Atom<>("ap"));
@@ -1970,8 +1978,16 @@ public class OvsdbDao {
boolean uapsdEnabled = radioConfiguration.getUapsdState() == StateSetting.enabled; boolean uapsdEnabled = radioConfiguration.getUapsdState() == StateSetting.enabled;
boolean apBridge = radioConfiguration.getStationIsolation() == StateSetting.enabled; // stationIsolation boolean apBridge = radioConfiguration.getStationIsolation() == StateSetting.enabled; // stationIsolation
boolean enable80211r = false;
boolean enable80211r = ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r(); if (ssidConfig.getRadioBasedConfigs() != null) {
if (ssidConfig.getRadioBasedConfigs().containsKey(radioType)
&& ssidConfig.getRadioBasedConfigs().get(radioType) != null) {
if (ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r() != null) {
enable80211r = ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r();
}
}
}
String minHwMode = "11n"; // min_hw_mode is 11ac, wifi 5, we can String minHwMode = "11n"; // min_hw_mode is 11ac, wifi 5, we can
// also take ++ (11ax) but 2.4GHz only // also take ++ (11ax) but 2.4GHz only
@@ -2661,8 +2677,8 @@ public class OvsdbDao {
Map<String, Value> rowColumns = new HashMap<>(); Map<String, Value> rowColumns = new HashMap<>();
rowColumns.put("radio_type", new Atom<>(rc.freqBand)); rowColumns.put("radio_type", new Atom<>(rc.freqBand));
rowColumns.put("reporting_interval", new Atom<>(60)); rowColumns.put("reporting_interval", new Atom<>(60));
rowColumns.put("report_type", new Atom<>("raw")); rowColumns.put("report_type", new Atom<>("average"));
rowColumns.put("sampling_interval", new Atom<>(6)); // rowColumns.put("sampling_interval", new Atom<>(6));
rowColumns.put("stats_type", new Atom<>("client")); rowColumns.put("stats_type", new Atom<>("client"));
rowColumns.put("survey_interval_ms", new Atom<>(65)); rowColumns.put("survey_interval_ms", new Atom<>(65));
// rowColumns.put("survey_type", new Atom<>("on-chan")); // rowColumns.put("survey_type", new Atom<>("on-chan"));