Merge pull request #23 from Telecominfraproject/WIFI-1397

WIFI-1397 Cloud SDK: inconsistent treatment of active/manual/auto/backup channel
This commit is contained in:
Mike Hansen
2021-02-01 12:00:47 -05:00
committed by GitHub
2 changed files with 26 additions and 3 deletions

View File

@@ -24,6 +24,10 @@ import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
import com.telecominfraproject.wlan.equipment.models.Equipment;
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
import com.telecominfraproject.wlan.profile.models.ProfileContainer;
import com.telecominfraproject.wlan.profile.models.ProfileType;
import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
import com.telecominfraproject.wlan.systemevent.equipment.BaseDhcpEvent;
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeChannelHopEvent;
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType;
@@ -80,6 +84,9 @@ public class RealtimeEventPublisher {
@Autowired
private EquipmentServiceInterface equipmentServiceInterface;
@Autowired
private ProfileServiceInterface profileServiceInterface;
private static final Logger LOG = LoggerFactory.getLogger(RealtimeEventPublisher.class);
@@ -94,6 +101,16 @@ public class RealtimeEventPublisher {
if (equipment == null) {
return;
}
ProfileContainer profileContainer = new ProfileContainer(
profileServiceInterface.getProfileWithChildren(equipment.getProfileId()));
RfConfiguration rfConfig = null;
if (profileContainer != null) {
rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(equipment.getProfileId(), ProfileType.rf).getDetails();
}
if (profileContainer == null || rfConfig == null) {
LOG.warn("publishChannelHopEvents:profileContainer {} or RfConfiguration {} is null for customerId {} equipmentId {}",
profileContainer, rfConfig, customerId, equipmentId);
}
for (sts.OpensyncStats.EventReport.ChannelSwitchEvent channelSwitchEvent : e.getChannelSwitchList()) {
@@ -141,10 +158,14 @@ public class RealtimeEventPublisher {
channelSwitchEvent);
continue;
}
boolean autoChannelSelection = false;
if (rfConfig != null && rfConfig.getRfConfigMap() != null && rfConfig.getRfConfigMap().get(radioType) != null) {
autoChannelSelection = rfConfig.getRfConfigMap().get(radioType).getAutoChannelSelection();
}
RealTimeChannelHopEvent channelHopEvent = new RealTimeChannelHopEvent(RealTimeEventType.Channel_Hop,
customerId, locationId, equipmentId, radioType, channel,
((ApElementConfiguration) equipment.getDetails()).getRadioMap().get(radioType).getChannelNumber(),
((ApElementConfiguration) equipment.getDetails()).getRadioMap().get(radioType).getActiveChannel(autoChannelSelection),
reason, timestamp);
events.add(channelHopEvent);

View File

@@ -1871,7 +1871,10 @@ public class OvsdbDao {
ElementRadioConfiguration elementRadioConfig = apElementConfiguration.getRadioMap().get(radioType);
RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType);
int channel = elementRadioConfig.getChannelNumber();
boolean autoChannelSelection = rfElementConfig.getAutoChannelSelection();
int channel = elementRadioConfig.getActiveChannel(autoChannelSelection);
LOG.debug("configureWifiRadios autoChannelSelection {} activeChannel {} getChannelNumber {} ",
autoChannelSelection, channel, elementRadioConfig.getChannelNumber());
ChannelBandwidth bandwidth = rfElementConfig.getChannelBandwidth();
String ht_mode = null;
switch (bandwidth) {
@@ -1893,7 +1896,6 @@ public class OvsdbDao {
default:
ht_mode = null;
}
rfElementConfig.getAutoChannelSelection();
RadioConfiguration radioConfig = apElementConfiguration.getAdvancedRadioMap().get(radioType);
int beaconInterval = rfElementConfig.getBeaconInterval();