Support for Metrics Profile

Added to OpensyncAPConfig
Added Profiles for Static.
Added handler in OvsdbClient to process.
Currently not applying the values, uses the defaults still, but
remaining functionality will come in subsequent updates.
This commit is contained in:
Mike Hansen
2020-09-25 17:13:51 -04:00
parent 3d9b01c147
commit bb3a49addb
12 changed files with 236 additions and 9 deletions

View File

@@ -208,7 +208,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
}
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
ovsdbDao.configureStats(ovsdbClient);
ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
// Check if device stats is configured in Wifi_Stats_Config table,
// provision it
@@ -273,7 +273,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
ovsdbDao.configureInterfaces(ovsdbClient);
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureStats(ovsdbClient);
ovsdbDao.configureStatsFromProfile(ovsdbClient,opensyncAPConfig);
// Check if device stats is configured in Wifi_Stats_Config table,
// provision it

View File

@@ -60,6 +60,8 @@ import com.telecominfraproject.wlan.profile.bonjour.models.BonjourServiceSet;
import com.telecominfraproject.wlan.profile.captiveportal.models.CaptivePortalAuthenticationType;
import com.telecominfraproject.wlan.profile.captiveportal.models.CaptivePortalConfiguration;
import com.telecominfraproject.wlan.profile.captiveportal.models.ManagedFileInfo;
import com.telecominfraproject.wlan.profile.metrics.ServiceMetricConfigParameters;
import com.telecominfraproject.wlan.profile.metrics.ServiceMetricsCollectionConfigProfile;
import com.telecominfraproject.wlan.profile.models.Profile;
import com.telecominfraproject.wlan.profile.radius.models.RadiusProfile;
import com.telecominfraproject.wlan.profile.radius.models.RadiusServer;
@@ -2383,8 +2385,8 @@ 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,
int rtsCtsThreshold, int fragThresholdBytes, int dtimPeriod, Map<String, String> captiveMap, List<String> walledGardenAllowlist,
Map<Short, Set<String>> bonjourServiceMap) {
int rtsCtsThreshold, int fragThresholdBytes, int dtimPeriod, Map<String, String> captiveMap,
List<String> walledGardenAllowlist, Map<Short, Set<String>> bonjourServiceMap) {
List<Operation> operations = new ArrayList<>();
Map<String, Value> updateColumns = new HashMap<>();
@@ -2484,10 +2486,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));
customOptions.put("rts_threshold", String.valueOf(rtsCtsThreshold));
customOptions.put("rts_threshold", String.valueOf(rtsCtsThreshold));
customOptions.put("frag_threshold", String.valueOf(fragThresholdBytes));
customOptions.put("dtim_period", String.valueOf(dtimPeriod));
if (enable80211k) {
customOptions.put("ieee80211k", String.valueOf(1));
@@ -2903,8 +2905,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, rtsCtsThreshold,fragThresholdBytes,dtimPeriod,
captiveMap, walledGardenAllowlist, bonjourServiceMap);
rateLimitEnable, ssidDlLimit, ssidUlLimit, clientDlLimit, clientUlLimit, rtsCtsThreshold,
fragThresholdBytes, dtimPeriod, captiveMap, walledGardenAllowlist, bonjourServiceMap);
} catch (IllegalStateException e) {
// could not provision this SSID, but still can go on
@@ -3228,6 +3230,38 @@ public class OvsdbDao {
}
public void configureStatsFromProfile(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
if (opensyncApConfig.getMetricsProfiles().isEmpty()) {
configureStats(ovsdbClient);
} else {
for (Profile metricsProfile : opensyncApConfig.getMetricsProfiles()) {
ServiceMetricsCollectionConfigProfile details = ((ServiceMetricsCollectionConfigProfile) metricsProfile
.getDetails());
for (Entry<String, ServiceMetricConfigParameters> entry : details.getMetricConfigParameterMap()
.entrySet()) {
//TODO: implement me
LOG.debug("Metrics Config Map Entry {}", entry);
configureStats(ovsdbClient); // replace with profile values
}
}
}
}
public void configureStats(OvsdbClient ovsdbClient) {
try {

View File

@@ -130,7 +130,7 @@ public class OpensyncGatewayTipWlanOvsdbClientTest {
Mockito.verify(ovsdbDao).removeAllStatsConfigs(ovsdbClient);
Mockito.verify(ovsdbDao).configureWifiRadios(ovsdbClient, apConfig);
Mockito.verify(ovsdbDao).configureSsids(ovsdbClient, apConfig);
Mockito.verify(ovsdbDao).configureStats(ovsdbClient);
Mockito.verify(ovsdbDao).configureStatsFromProfile(ovsdbClient, apConfig);
}