mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-11-04 04:27:59 +00:00 
			
		
		
		
	WIFI-792: RF Implementation (#11)
* Removing RF parameters from ApElementConfig, refactoring to RF profile
This commit is contained in:
		@@ -7,7 +7,6 @@ import java.util.HashMap;
 | 
				
			|||||||
import java.util.HashSet;
 | 
					import java.util.HashSet;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.Optional;
 | 
					 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -78,6 +77,7 @@ import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
				
			|||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.network.models.RadioProfileConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.network.models.RadioProfileConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.rf.models.RfElementConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode;
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode;
 | 
				
			||||||
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
 | 
					import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
 | 
				
			||||||
@@ -251,11 +251,9 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (!radioType.equals(RadioType.UNSUPPORTED)) {
 | 
					                    if (!radioType.equals(RadioType.UNSUPPORTED)) {
 | 
				
			||||||
                        advancedRadioConfiguration = RadioConfiguration.createWithDefaults(radioType);
 | 
					                        advancedRadioConfiguration = RadioConfiguration.createWithDefaults(radioType);
 | 
				
			||||||
                        advancedRadioConfiguration.setAutoChannelSelection(StateSetting.disabled);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        advancedRadioMap.put(radioType, advancedRadioConfiguration);
 | 
					                        advancedRadioMap.put(radioType, advancedRadioConfiguration);
 | 
				
			||||||
                        radioConfiguration = ElementRadioConfiguration.createWithDefaults(radioType);
 | 
					                        radioConfiguration = ElementRadioConfiguration.createWithDefaults(radioType);
 | 
				
			||||||
                        radioConfiguration.setAutoChannelSelection(false);
 | 
					 | 
				
			||||||
                        radioMap.put(radioType, radioConfiguration);
 | 
					                        radioMap.put(radioType, radioConfiguration);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@@ -287,6 +285,36 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                    // one:
 | 
					                    // one:
 | 
				
			||||||
                    Profile apProfile = createDefaultApProfile(ce, connectNodeInfo);
 | 
					                    Profile apProfile = createDefaultApProfile(ce, connectNodeInfo);
 | 
				
			||||||
                    profileId = apProfile.getId();
 | 
					                    profileId = apProfile.getId();
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                    // Initialize equipment from RF Profile
 | 
				
			||||||
 | 
					                    ProfileContainer profileContainer = new ProfileContainer(
 | 
				
			||||||
 | 
					                    		profileServiceInterface.getProfileWithChildren(profileId));
 | 
				
			||||||
 | 
					                    RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf)
 | 
				
			||||||
 | 
					                    		.getDetails();
 | 
				
			||||||
 | 
					                    ApElementConfiguration config = (ApElementConfiguration) ce.getDetails();
 | 
				
			||||||
 | 
					                    Map<RadioType, ElementRadioConfiguration> baseRadioMap = config.getRadioMap();
 | 
				
			||||||
 | 
					                    Map<RadioType, RadioConfiguration> advRadioMap = config.getAdvancedRadioMap();
 | 
				
			||||||
 | 
					                    for (RadioType rType : config.getRadioMap().keySet()) {
 | 
				
			||||||
 | 
					                    	ElementRadioConfiguration elementRadioConfig = baseRadioMap.get(rType);
 | 
				
			||||||
 | 
					                    	RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(rType);
 | 
				
			||||||
 | 
					                    	
 | 
				
			||||||
 | 
					                    	elementRadioConfig.setClientDisconnectThresholdDb(rfElementConfig.getClientDisconnectThresholdDb());
 | 
				
			||||||
 | 
					                    	elementRadioConfig.setEirpTxPower(rfElementConfig.getEirpTxPower());
 | 
				
			||||||
 | 
					                    	elementRadioConfig.setPerimeterDetectionEnabled(rfElementConfig.getPerimeterDetectionEnabled());
 | 
				
			||||||
 | 
					                    	elementRadioConfig.setProbeResponseThresholdDb(rfElementConfig.getProbeResponseThresholdDb());
 | 
				
			||||||
 | 
					                    	elementRadioConfig.setRxCellSizeDb(rfElementConfig.getRxCellSizeDb());
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    for (RadioType rType : config.getAdvancedRadioMap().keySet()) {
 | 
				
			||||||
 | 
					                    	RadioConfiguration radioConfig = advRadioMap.get(rType);
 | 
				
			||||||
 | 
					                    	RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(rType);
 | 
				
			||||||
 | 
					                    	
 | 
				
			||||||
 | 
					                    	radioConfig.setBestApSettings(rfElementConfig.getBestApSettings());
 | 
				
			||||||
 | 
					                    	radioConfig.setManagementRate(rfElementConfig.getManagementRate());
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    config.setAdvancedRadioMap(advRadioMap);
 | 
				
			||||||
 | 
					                    config.setRadioMap(baseRadioMap);
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                    ce.setDetails(config);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                ce.setProfileId(profileId);
 | 
					                ce.setProfileId(profileId);
 | 
				
			||||||
@@ -903,7 +931,12 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            return; // we don't have the required info to get the
 | 
					            return; // we don't have the required info to get the
 | 
				
			||||||
                    // radio type yet
 | 
					                    // radio type yet
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        ApElementConfiguration apElementConfig = (ApElementConfiguration) apNode.getDetails();
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					        ProfileContainer profileContainer = new ProfileContainer(
 | 
				
			||||||
 | 
					        		profileServiceInterface.getProfileWithChildren(apNode.getProfileId()));
 | 
				
			||||||
 | 
					        RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(apNode.getProfileId(), ProfileType.rf)
 | 
				
			||||||
 | 
					        		.getDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (OpensyncAPVIFState vifState : vifStateTables) {
 | 
					        for (OpensyncAPVIFState vifState : vifStateTables) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -935,11 +968,14 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                    vifState.getAssociatedClients());
 | 
					                    vifState.getAssociatedClients());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            RadioType radioType = null;
 | 
					            RadioType radioType = null;
 | 
				
			||||||
            Optional<ElementRadioConfiguration> radioConfiguration = ((ApElementConfiguration) apNode.getDetails())
 | 
					            Map<RadioType, RfElementConfiguration> rfElementMap = rfConfig.getRfConfigMap();
 | 
				
			||||||
                    .getRadioMap().values().stream().filter(t -> (t.getActiveChannel() == channel)).findFirst();
 | 
					            Map<RadioType, ElementRadioConfiguration> elementRadioMap = apElementConfig.getRadioMap();
 | 
				
			||||||
 | 
					            for (RadioType rType : elementRadioMap.keySet()) {
 | 
				
			||||||
            if (radioConfiguration.isPresent()) {
 | 
					            	boolean autoChannelSelection = rfElementMap.get(rType).getAutoChannelSelection();
 | 
				
			||||||
                radioType = radioConfiguration.get().getRadioType();
 | 
					            	if (elementRadioMap.get(rType).getActiveChannel(autoChannelSelection) == channel) {
 | 
				
			||||||
 | 
					            		radioType = rType;
 | 
				
			||||||
 | 
					            		break;
 | 
				
			||||||
 | 
					            	}
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            updateActiveBssids(customerId, equipmentId, apId, ssid, radioType, bssid, numClients);
 | 
					            updateActiveBssids(customerId, equipmentId, apId, ssid, radioType, bssid, numClients);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,6 +46,7 @@ import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
				
			|||||||
import com.telecominfraproject.wlan.profile.models.Profile;
 | 
					import com.telecominfraproject.wlan.profile.models.Profile;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.ProfileContainer;
 | 
					import com.telecominfraproject.wlan.profile.models.ProfileContainer;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
					import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ssid.models.RadioBasedSsidConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.RadioBasedSsidConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode;
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode;
 | 
				
			||||||
@@ -2256,7 +2257,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        ProfileContainer profileContainer = new ProfileContainer(
 | 
					        ProfileContainer profileContainer = new ProfileContainer(
 | 
				
			||||||
                profileServiceInterface.getProfileWithChildren(profileId));
 | 
					                profileServiceInterface.getProfileWithChildren(profileId));
 | 
				
			||||||
        profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf).getDetails();
 | 
					        RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf)
 | 
				
			||||||
 | 
					        		.getDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (Survey survey : report.getSurveyList()) {
 | 
					        for (Survey survey : report.getSurveyList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2278,8 +2280,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            ChannelBandwidth channelBandwidth = ((ApElementConfiguration) equipmentServiceInterface.get(equipmentId)
 | 
					            ChannelBandwidth channelBandwidth = rfConfig.getRfConfig(radioType).getChannelBandwidth();
 | 
				
			||||||
                    .getDetails()).getRadioMap().get(radioType).getChannelBandwidth();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Map<Integer, List<SurveySample>> sampleByChannelMap = new HashMap<>();
 | 
					            Map<Integer, List<SurveySample>> sampleByChannelMap = new HashMap<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,8 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.HashSet;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.junit.After;
 | 
					import org.junit.After;
 | 
				
			||||||
@@ -66,7 +68,9 @@ import com.telecominfraproject.wlan.opensync.external.integration.models.Opensyn
 | 
				
			|||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
					import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.Profile;
 | 
					import com.telecominfraproject.wlan.profile.models.Profile;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
 | 
					import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.StatusServiceInterface;
 | 
					import com.telecominfraproject.wlan.status.StatusServiceInterface;
 | 
				
			||||||
@@ -273,18 +277,37 @@ public class OpensyncExternalIntegrationCloudTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
 | 
					        Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					        Profile rfProfile = new Profile();
 | 
				
			||||||
 | 
					        rfProfile.setId(1);
 | 
				
			||||||
 | 
					        rfProfile.setName("testRfProfile");
 | 
				
			||||||
 | 
					        rfProfile.setDetails(RfConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					        rfProfile.setProfileType(ProfileType.rf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Profile apProfile = new Profile();
 | 
					        Profile apProfile = new Profile();
 | 
				
			||||||
        apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
					        apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					        apProfile.setName("testApProfile");
 | 
				
			||||||
 | 
					        apProfile.setProfileType(ProfileType.equipment_ap);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Profile ssidProfile = new Profile();
 | 
					        Profile ssidProfile = new Profile();
 | 
				
			||||||
 | 
					        ssidProfile.setId(2);
 | 
				
			||||||
        ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
 | 
					        ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
 | 
					        Set<Long> childProfileIds = new HashSet<>();
 | 
				
			||||||
 | 
					        childProfileIds.add(rfProfile.getId()); 
 | 
				
			||||||
 | 
					        childProfileIds.add(ssidProfile.getId());   
 | 
				
			||||||
 | 
					        apProfile.setChildProfileIds(childProfileIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile)
 | 
					        Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile)
 | 
				
			||||||
                .thenReturn(ssidProfile);
 | 
					                .thenReturn(ssidProfile).thenReturn(rfProfile);
 | 
				
			||||||
        Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile);
 | 
					        Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					        List<Profile> profileList = new ArrayList<>();
 | 
				
			||||||
 | 
					        profileList.add(apProfile);
 | 
				
			||||||
 | 
					        profileList.add(rfProfile);
 | 
				
			||||||
 | 
					        profileList.add(ssidProfile);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong())).thenReturn(profileList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Equipment equipment = new Equipment();
 | 
					        Equipment equipment = new Equipment();
 | 
				
			||||||
        equipment.setCustomerId(2);
 | 
					        equipment.setCustomerId(2);
 | 
				
			||||||
        equipment.setEquipmentType(EquipmentType.AP);
 | 
					        equipment.setEquipmentType(EquipmentType.AP);
 | 
				
			||||||
@@ -586,12 +609,33 @@ public class OpensyncExternalIntegrationCloudTest {
 | 
				
			|||||||
        equipment.setCustomerId(1);
 | 
					        equipment.setCustomerId(1);
 | 
				
			||||||
        equipment.setEquipmentType(EquipmentType.AP);
 | 
					        equipment.setEquipmentType(EquipmentType.AP);
 | 
				
			||||||
        equipment.setInventoryId(apId);
 | 
					        equipment.setInventoryId(apId);
 | 
				
			||||||
 | 
					        equipment.setProfileId(1);
 | 
				
			||||||
        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
					        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).thenReturn(equipment);
 | 
					        Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).thenReturn(equipment);
 | 
				
			||||||
        Mockito.when(equipmentServiceInterface.get(equipment.getId())).thenReturn(equipment);
 | 
					        Mockito.when(equipmentServiceInterface.get(equipment.getId())).thenReturn(equipment);
 | 
				
			||||||
        Mockito.when(equipmentServiceInterface.update(equipment)).thenReturn(equipment);
 | 
					        Mockito.when(equipmentServiceInterface.update(equipment)).thenReturn(equipment);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					        Profile rfProfile = new Profile();
 | 
				
			||||||
 | 
					        rfProfile.setName("testRfProfile");
 | 
				
			||||||
 | 
					        rfProfile.setId(2);
 | 
				
			||||||
 | 
					        rfProfile.setDetails(RfConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					        rfProfile.setProfileType(ProfileType.rf);
 | 
				
			||||||
 | 
					        Set<Long> childProfileIds = new HashSet<>();
 | 
				
			||||||
 | 
					        childProfileIds.add(rfProfile.getId());
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Profile apProfile = new Profile();
 | 
				
			||||||
 | 
					        apProfile.setName("testApProfile");
 | 
				
			||||||
 | 
					        apProfile.setId(1);
 | 
				
			||||||
 | 
					        apProfile.setProfileType(ProfileType.equipment_ap);
 | 
				
			||||||
 | 
					        apProfile.setChildProfileIds(childProfileIds);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        List<Profile> profileList = new ArrayList<>();
 | 
				
			||||||
 | 
					        profileList.add(apProfile);
 | 
				
			||||||
 | 
					        profileList.add(rfProfile);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong())).thenReturn(profileList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
 | 
					        Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        opensyncExternalIntegrationCloud.wifiVIFStateDbTableUpdate(ImmutableList.of(vifState1, vifState2, vifState3),
 | 
					        opensyncExternalIntegrationCloud.wifiVIFStateDbTableUpdate(ImmutableList.of(vifState1, vifState2, vifState3),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,8 +38,6 @@
 | 
				
			|||||||
        "channelNumber": 6,
 | 
					        "channelNumber": 6,
 | 
				
			||||||
        "manualChannelNumber": 6,
 | 
					        "manualChannelNumber": 6,
 | 
				
			||||||
        "backupChannelNumber": 11,
 | 
					        "backupChannelNumber": 11,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is20MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
@@ -62,13 +60,6 @@
 | 
				
			|||||||
          "auto": false,
 | 
					          "auto": false,
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -81,8 +72,6 @@
 | 
				
			|||||||
        "channelNumber": 149,
 | 
					        "channelNumber": 149,
 | 
				
			||||||
        "manualChannelNumber": 149,
 | 
					        "manualChannelNumber": 149,
 | 
				
			||||||
        "backupChannelNumber": 154,
 | 
					        "backupChannelNumber": 154,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
@@ -105,13 +94,6 @@
 | 
				
			|||||||
          "auto": false,
 | 
					          "auto": false,
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -124,8 +106,6 @@
 | 
				
			|||||||
        "channelNumber": 36,
 | 
					        "channelNumber": 36,
 | 
				
			||||||
        "manualChannelNumber": 36,
 | 
					        "manualChannelNumber": 36,
 | 
				
			||||||
        "backupChannelNumber": 44,
 | 
					        "backupChannelNumber": 44,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
@@ -148,13 +128,6 @@
 | 
				
			|||||||
          "auto": false,
 | 
					          "auto": false,
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -168,39 +141,18 @@
 | 
				
			|||||||
        "radioType": "is2dot4GHz",
 | 
					        "radioType": "is2dot4GHz",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeN",
 | 
					        "radioMode": "modeN",
 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					        "wmmState": "enabled",
 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					 | 
				
			||||||
        "managementRate": "auto",
 | 
					        "managementRate": "auto",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					          "model_type": "RadioBestApSettings",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "mlComputed": true,
 | 
				
			||||||
          "dropInSnrPercentage": 20,
 | 
					          "dropInSnrPercentage": 20,
 | 
				
			||||||
          "minLoadFactor": 50
 | 
					          "minLoadFactor": 50
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzU": {
 | 
					      "is5GHzU": {
 | 
				
			||||||
@@ -208,39 +160,18 @@
 | 
				
			|||||||
        "radioType": "is5GHzU",
 | 
					        "radioType": "is5GHzU",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					        "radioMode": "modeAC",
 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					        "wmmState": "enabled",
 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					 | 
				
			||||||
        "managementRate": "auto",
 | 
					        "managementRate": "auto",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					          "model_type": "RadioBestApSettings",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "mlComputed": true,
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "dropInSnrPercentage": 30,
 | 
				
			||||||
          "minLoadFactor": 40
 | 
					          "minLoadFactor": 40
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzL": {
 | 
					      "is5GHzL": {
 | 
				
			||||||
@@ -248,39 +179,18 @@
 | 
				
			|||||||
        "radioType": "is5GHzL",
 | 
					        "radioType": "is5GHzL",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					        "radioMode": "modeAC",
 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					        "wmmState": "enabled",
 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					 | 
				
			||||||
        "managementRate": "auto",
 | 
					        "managementRate": "auto",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					          "model_type": "RadioBestApSettings",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "mlComputed": true,
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "dropInSnrPercentage": 30,
 | 
				
			||||||
          "minLoadFactor": 40
 | 
					          "minLoadFactor": 40
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,7 +65,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "is2dot4GHz": {
 | 
					            "is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
@@ -125,7 +126,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 20,
 | 
					                    "dropInSnrPercentage": 20,
 | 
				
			||||||
                    "minLoadFactor": 50
 | 
					                    "minLoadFactor": 50
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "is5GHzU": {
 | 
					            "is5GHzU": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
@@ -185,7 +187,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "is5GHzL": {
 | 
					            "is5GHzL": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
@@ -245,7 +248,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "profileType": "rf"
 | 
					        "profileType": "rf"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,8 +38,6 @@
 | 
				
			|||||||
        "channelNumber": 6,
 | 
					        "channelNumber": 6,
 | 
				
			||||||
        "manualChannelNumber": 6,
 | 
					        "manualChannelNumber": 6,
 | 
				
			||||||
        "backupChannelNumber": 11,
 | 
					        "backupChannelNumber": 11,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is20MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
@@ -62,13 +60,6 @@
 | 
				
			|||||||
          "auto": false,
 | 
					          "auto": false,
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -81,8 +72,6 @@
 | 
				
			|||||||
        "channelNumber": 149,
 | 
					        "channelNumber": 149,
 | 
				
			||||||
        "manualChannelNumber": 149,
 | 
					        "manualChannelNumber": 149,
 | 
				
			||||||
        "backupChannelNumber": 154,
 | 
					        "backupChannelNumber": 154,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
@@ -105,13 +94,6 @@
 | 
				
			|||||||
          "auto": false,
 | 
					          "auto": false,
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -124,8 +106,6 @@
 | 
				
			|||||||
        "channelNumber": 36,
 | 
					        "channelNumber": 36,
 | 
				
			||||||
        "manualChannelNumber": 36,
 | 
					        "manualChannelNumber": 36,
 | 
				
			||||||
        "backupChannelNumber": 44,
 | 
					        "backupChannelNumber": 44,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
@@ -148,13 +128,6 @@
 | 
				
			|||||||
          "auto": false,
 | 
					          "auto": false,
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -168,39 +141,18 @@
 | 
				
			|||||||
        "radioType": "is2dot4GHz",
 | 
					        "radioType": "is2dot4GHz",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeN",
 | 
					        "radioMode": "modeN",
 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					        "wmmState": "enabled",
 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					 | 
				
			||||||
        "managementRate": "auto",
 | 
					        "managementRate": "auto",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					          "model_type": "RadioBestApSettings",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "mlComputed": true,
 | 
				
			||||||
          "dropInSnrPercentage": 20,
 | 
					          "dropInSnrPercentage": 20,
 | 
				
			||||||
          "minLoadFactor": 50
 | 
					          "minLoadFactor": 50
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzU": {
 | 
					      "is5GHzU": {
 | 
				
			||||||
@@ -208,39 +160,18 @@
 | 
				
			|||||||
        "radioType": "is5GHzU",
 | 
					        "radioType": "is5GHzU",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					        "radioMode": "modeAC",
 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					        "wmmState": "enabled",
 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					 | 
				
			||||||
        "managementRate": "auto",
 | 
					        "managementRate": "auto",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					          "model_type": "RadioBestApSettings",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "mlComputed": true,
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "dropInSnrPercentage": 30,
 | 
				
			||||||
          "minLoadFactor": 40
 | 
					          "minLoadFactor": 40
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzL": {
 | 
					      "is5GHzL": {
 | 
				
			||||||
@@ -248,39 +179,18 @@
 | 
				
			|||||||
        "radioType": "is5GHzL",
 | 
					        "radioType": "is5GHzL",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					        "radioMode": "modeAC",
 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					        "wmmState": "enabled",
 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					 | 
				
			||||||
        "managementRate": "auto",
 | 
					        "managementRate": "auto",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					          "model_type": "RadioBestApSettings",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "mlComputed": true,
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "dropInSnrPercentage": 30,
 | 
				
			||||||
          "minLoadFactor": 40
 | 
					          "minLoadFactor": 40
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,7 +65,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "is2dot4GHz": {
 | 
					            "is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
@@ -125,7 +126,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 20,
 | 
					                    "dropInSnrPercentage": 20,
 | 
				
			||||||
                    "minLoadFactor": 50
 | 
					                    "minLoadFactor": 50
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "is5GHzU": {
 | 
					            "is5GHzU": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
@@ -185,7 +187,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "is5GHzL": {
 | 
					            "is5GHzL": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
@@ -245,7 +248,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "profileType": "rf"
 | 
					        "profileType": "rf"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,8 +38,6 @@
 | 
				
			|||||||
        "channelNumber": 6,
 | 
					        "channelNumber": 6,
 | 
				
			||||||
        "manualChannelNumber": 6,
 | 
					        "manualChannelNumber": 6,
 | 
				
			||||||
        "backupChannelNumber": 11,
 | 
					        "backupChannelNumber": 11,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is20MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
@@ -62,13 +60,6 @@
 | 
				
			|||||||
          "auto": false,
 | 
					          "auto": false,
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -81,8 +72,6 @@
 | 
				
			|||||||
        "channelNumber": 149,
 | 
					        "channelNumber": 149,
 | 
				
			||||||
        "manualChannelNumber": 149,
 | 
					        "manualChannelNumber": 149,
 | 
				
			||||||
        "backupChannelNumber": 154,
 | 
					        "backupChannelNumber": 154,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
@@ -105,13 +94,6 @@
 | 
				
			|||||||
          "auto": false,
 | 
					          "auto": false,
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -124,8 +106,6 @@
 | 
				
			|||||||
        "channelNumber": 36,
 | 
					        "channelNumber": 36,
 | 
				
			||||||
        "manualChannelNumber": 36,
 | 
					        "manualChannelNumber": 36,
 | 
				
			||||||
        "backupChannelNumber": 44,
 | 
					        "backupChannelNumber": 44,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
@@ -148,13 +128,6 @@
 | 
				
			|||||||
          "auto": false,
 | 
					          "auto": false,
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -168,39 +141,18 @@
 | 
				
			|||||||
        "radioType": "is2dot4GHz",
 | 
					        "radioType": "is2dot4GHz",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeN",
 | 
					        "radioMode": "modeN",
 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					        "wmmState": "enabled",
 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					 | 
				
			||||||
        "managementRate": "auto",
 | 
					        "managementRate": "auto",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					          "model_type": "RadioBestApSettings",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "mlComputed": true,
 | 
				
			||||||
          "dropInSnrPercentage": 20,
 | 
					          "dropInSnrPercentage": 20,
 | 
				
			||||||
          "minLoadFactor": 50
 | 
					          "minLoadFactor": 50
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzU": {
 | 
					      "is5GHzU": {
 | 
				
			||||||
@@ -208,39 +160,18 @@
 | 
				
			|||||||
        "radioType": "is5GHzU",
 | 
					        "radioType": "is5GHzU",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					        "radioMode": "modeAC",
 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					        "wmmState": "enabled",
 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					 | 
				
			||||||
        "managementRate": "auto",
 | 
					        "managementRate": "auto",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					          "model_type": "RadioBestApSettings",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "mlComputed": true,
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "dropInSnrPercentage": 30,
 | 
				
			||||||
          "minLoadFactor": 40
 | 
					          "minLoadFactor": 40
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzL": {
 | 
					      "is5GHzL": {
 | 
				
			||||||
@@ -248,39 +179,18 @@
 | 
				
			|||||||
        "radioType": "is5GHzL",
 | 
					        "radioType": "is5GHzL",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					        "radioMode": "modeAC",
 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					        "wmmState": "enabled",
 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					 | 
				
			||||||
        "managementRate": "auto",
 | 
					        "managementRate": "auto",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					          "model_type": "RadioBestApSettings",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "mlComputed": true,
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "dropInSnrPercentage": 30,
 | 
				
			||||||
          "minLoadFactor": 40
 | 
					          "minLoadFactor": 40
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,7 +65,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "is2dot4GHz": {
 | 
					            "is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
@@ -125,7 +126,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 20,
 | 
					                    "dropInSnrPercentage": 20,
 | 
				
			||||||
                    "minLoadFactor": 50
 | 
					                    "minLoadFactor": 50
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "is5GHzU": {
 | 
					            "is5GHzU": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
@@ -185,7 +187,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "is5GHzL": {
 | 
					            "is5GHzL": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
@@ -245,7 +248,8 @@
 | 
				
			|||||||
                    "mlComputed": true,
 | 
					                    "mlComputed": true,
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
                }
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -80
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "profileType": "rf"
 | 
					        "profileType": "rf"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1903,9 +1903,7 @@ public class OvsdbDao {
 | 
				
			|||||||
            ElementRadioConfiguration elementRadioConfig = apElementConfiguration.getRadioMap().get(radioType);
 | 
					            ElementRadioConfiguration elementRadioConfig = apElementConfiguration.getRadioMap().get(radioType);
 | 
				
			||||||
            RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType);
 | 
					            RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType);
 | 
				
			||||||
            int channel = elementRadioConfig.getChannelNumber();
 | 
					            int channel = elementRadioConfig.getChannelNumber();
 | 
				
			||||||
            ChannelBandwidth bandwidth = elementRadioConfig.getChannelBandwidth();
 | 
					            ChannelBandwidth bandwidth = rfElementConfig.getChannelBandwidth();
 | 
				
			||||||
            // ChannelBandwidth bandwidth =
 | 
					 | 
				
			||||||
            // rfElementConfig.getChannelBandwidth();
 | 
					 | 
				
			||||||
            String ht_mode = null;
 | 
					            String ht_mode = null;
 | 
				
			||||||
            switch (bandwidth) {
 | 
					            switch (bandwidth) {
 | 
				
			||||||
                case is20MHz:
 | 
					                case is20MHz:
 | 
				
			||||||
@@ -1926,11 +1924,10 @@ public class OvsdbDao {
 | 
				
			|||||||
                default:
 | 
					                default:
 | 
				
			||||||
                    ht_mode = null;
 | 
					                    ht_mode = null;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            elementRadioConfig.getAutoChannelSelection();
 | 
					            rfElementConfig.getAutoChannelSelection();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            RadioConfiguration radioConfig = apElementConfiguration.getAdvancedRadioMap().get(radioType);
 | 
					            RadioConfiguration radioConfig = apElementConfiguration.getAdvancedRadioMap().get(radioType);
 | 
				
			||||||
            int beaconInterval = radioConfig.getBeaconInterval();
 | 
					            int beaconInterval = rfElementConfig.getBeaconInterval();
 | 
				
			||||||
            // int beaconInterval = rfElementConfig.getBeaconInterval();
 | 
					 | 
				
			||||||
            boolean enabled = radioConfig.getRadioAdminState().equals(StateSetting.enabled);
 | 
					            boolean enabled = radioConfig.getRadioAdminState().equals(StateSetting.enabled);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            int txPower = 0;
 | 
					            int txPower = 0;
 | 
				
			||||||
@@ -2966,8 +2963,7 @@ public class OvsdbDao {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
                RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType);
 | 
					                RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType);
 | 
				
			||||||
                int dtimPeriod = radioConfiguration.getDtimPeriod();
 | 
					                int dtimPeriod = radioConfiguration.getDtimPeriod();
 | 
				
			||||||
                int rtsCtsThreshold = radioConfiguration.getRtsCtsThreshold();
 | 
					                int rtsCtsThreshold = rfElementConfig.getRtsCtsThreshold();
 | 
				
			||||||
                // int rtsCtsThreshold = rfElementConfig.getRtsCtsThreshold();
 | 
					 | 
				
			||||||
                int fragThresholdBytes = radioConfiguration.getFragmentationThresholdBytes();
 | 
					                int fragThresholdBytes = radioConfiguration.getFragmentationThresholdBytes();
 | 
				
			||||||
                RadioMode radioMode = radioConfiguration.getRadioMode();
 | 
					                RadioMode radioMode = radioConfiguration.getRadioMode();
 | 
				
			||||||
                String minHwMode = "11n"; // min_hw_mode is 11ac, wifi 5, we can
 | 
					                String minHwMode = "11n"; // min_hw_mode is 11ac, wifi 5, we can
 | 
				
			||||||
@@ -4840,7 +4836,6 @@ public class OvsdbDao {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void processNewChannelsRequest(OvsdbClient ovsdbClient, Map<RadioType, Integer> channelMap) {
 | 
					    public void processNewChannelsRequest(OvsdbClient ovsdbClient, Map<RadioType, Integer> channelMap) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.info("OvsdbDao::processNewChannelsRequest {}", channelMap);
 | 
					        LOG.info("OvsdbDao::processNewChannelsRequest {}", channelMap);
 | 
				
			||||||
@@ -4882,5 +4877,4 @@ public class OvsdbDao {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user