Avoid provisioning meters for the multicast service as they're not defined
Change-Id: I07a6bd3ef442aba1b8a99353cd4a57e702a7333d
diff --git a/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java b/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
index ee184a5..28a0f53 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
@@ -533,7 +533,7 @@
// NOTE createMeters will return if the meters are not installed
if (!oltMeterService.createMeters(sub.device.id(),
- sub.subscriberAndDeviceInformation)) {
+ sub.subscriberAndDeviceInformation, multicastServiceName)) {
return false;
}
diff --git a/impl/src/main/java/org/opencord/olt/impl/OltMeterService.java b/impl/src/main/java/org/opencord/olt/impl/OltMeterService.java
index be04449..f1f5605 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OltMeterService.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OltMeterService.java
@@ -241,7 +241,7 @@
}
@Override
- public boolean createMeters(DeviceId deviceId, SubscriberAndDeviceInformation si) {
+ public boolean createMeters(DeviceId deviceId, SubscriberAndDeviceInformation si, String multicastServiceName) {
// Each UniTagInformation has up to 4 meters,
// check and/or create all of them
AtomicBoolean waitingOnMeter = new AtomicBoolean();
@@ -249,6 +249,14 @@
Map<String, List<String>> pendingMeters = new HashMap<>();
si.uniTagList().forEach(uniTagInfo -> {
String serviceName = uniTagInfo.getServiceName();
+
+ if (multicastServiceName.equals(uniTagInfo.getServiceName())) {
+ log.debug("This is the multicast service ({}) for subscriber {} on {}, " +
+ "meters are not needed",
+ uniTagInfo.getServiceName(), si.id(), deviceId);
+ return;
+ }
+
pendingMeters.put(serviceName, new LinkedList<>());
String usBp = uniTagInfo.getUpstreamBandwidthProfile();
String dsBp = uniTagInfo.getDownstreamBandwidthProfile();
diff --git a/impl/src/main/java/org/opencord/olt/impl/OltMeterServiceInterface.java b/impl/src/main/java/org/opencord/olt/impl/OltMeterServiceInterface.java
index a10455b..16d78ef 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OltMeterServiceInterface.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OltMeterServiceInterface.java
@@ -40,9 +40,10 @@
* if not present it will create them and return false.
* @param deviceId DeviceId
* @param si SubscriberAndDeviceInformation
+ * @param multicastServiceName The multicast service name
* @return boolean
*/
- boolean createMeters(DeviceId deviceId, SubscriberAndDeviceInformation si);
+ boolean createMeters(DeviceId deviceId, SubscriberAndDeviceInformation si, String multicastServiceName);
/**
* Checks if a meter for the specified bandwidthProfile exists