[VOL-4050] Logging ONU Serial Number on ONOS Olt App
Change-Id: Icaf2a1c368c62420880b753ebd395a88962e725d
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 fed9546..83919a4 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
@@ -27,10 +27,8 @@
import org.onosproject.core.ApplicationId;
import org.onosproject.core.CoreService;
import org.onosproject.mastership.MastershipService;
-import org.onosproject.net.AnnotationKeys;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
-import org.onosproject.net.Port;
import org.onosproject.net.PortNumber;
import org.onosproject.net.device.DeviceService;
import org.onosproject.net.flow.DefaultTrafficSelector;
@@ -50,6 +48,7 @@
import org.onosproject.store.serializers.KryoNamespaces;
import org.onosproject.store.service.Serializer;
import org.onosproject.store.service.StorageService;
+import org.opencord.olt.AccessDevicePort;
import org.opencord.olt.internalapi.AccessDeviceFlowService;
import org.opencord.olt.internalapi.AccessDeviceMeterService;
import org.opencord.sadis.BandwidthProfileInformation;
@@ -189,6 +188,8 @@
.register(KryoNamespaces.API)
.register(UniTagInformation.class)
.register(SubscriberFlowInfo.class)
+ .register(AccessDevicePort.class)
+ .register(AccessDevicePort.Type.class)
.register(LinkedBlockingQueue.class)
.build();
pendingEapolForDevice = storageService.<DeviceId, BlockingQueue<SubscriberFlowInfo>>consistentMapBuilder()
@@ -268,7 +269,7 @@
}
@Override
- public void processDhcpFilteringObjectives(DeviceId devId, PortNumber port,
+ public void processDhcpFilteringObjectives(AccessDevicePort port,
MeterId upstreamMeterId,
UniTagInformation tagInformation,
boolean install,
@@ -277,17 +278,15 @@
if (upstream) {
// for UNI ports
if (tagInformation != null && !tagInformation.getIsDhcpRequired()) {
- log.debug("Dhcp provisioning is disabled for UNI port {} on "
- + "device {} for service {}", port, devId,
- tagInformation.getServiceName());
+ log.debug("Dhcp provisioning is disabled for UNI port {} for service {}",
+ port, tagInformation.getServiceName());
dhcpFuture.ifPresent(f -> f.complete(null));
return;
}
} else {
// for NNI ports
if (!enableDhcpOnNni) {
- log.debug("Dhcp provisioning is disabled for NNI port {} on "
- + "device {}", port, devId);
+ log.debug("Dhcp provisioning is disabled for NNI port {}", port);
dhcpFuture.ifPresent(f -> f.complete(null));
return;
}
@@ -306,7 +305,7 @@
EthType ethType = EthType.EtherType.IPV4.ethType();
byte protocol = IPv4.PROTOCOL_UDP;
- addDhcpFilteringObjectives(devId, port, udpSrc, udpDst, ethType,
+ addDhcpFilteringObjectives(port, udpSrc, udpDst, ethType,
upstreamMeterId, techProfileId, protocol, cTag, unitagMatch,
vlanPcp, upstream, install, dhcpFuture);
}
@@ -318,13 +317,13 @@
EthType ethType = EthType.EtherType.IPV6.ethType();
byte protocol = IPv6.PROTOCOL_UDP;
- addDhcpFilteringObjectives(devId, port, udpSrc, udpDst, ethType,
+ addDhcpFilteringObjectives(port, udpSrc, udpDst, ethType,
upstreamMeterId, techProfileId, protocol, cTag, unitagMatch,
vlanPcp, upstream, install, dhcpFuture);
}
}
- private void addDhcpFilteringObjectives(DeviceId devId, PortNumber port, int udpSrc, int udpDst,
+ private void addDhcpFilteringObjectives(AccessDevicePort port, int udpSrc, int udpDst,
EthType ethType, MeterId upstreamMeterId, int techProfileId, byte protocol,
VlanId cTag, VlanId unitagMatch,
Byte vlanPcp, boolean upstream,
@@ -342,7 +341,7 @@
}
FilteringObjective.Builder dhcpUpstreamBuilder = (install ? builder.permit() : builder.deny())
- .withKey(Criteria.matchInPort(port))
+ .withKey(Criteria.matchInPort(port.number()))
.addCondition(Criteria.matchEthType(ethType))
.addCondition(Criteria.matchIPProtocol(protocol))
.addCondition(Criteria.matchUdpSrc(TpPort.tpPort(udpSrc)))
@@ -368,27 +367,27 @@
FilteringObjective dhcpUpstream = dhcpUpstreamBuilder.add(new ObjectiveContext() {
@Override
public void onSuccess(Objective objective) {
- log.info("DHCP {} filter for dev/port {}/{} {}.",
- (ethType.equals(EthType.EtherType.IPV4.ethType())) ? V4 : V6,
- devId, port, (install) ? INSTALLED : REMOVED);
+ log.info("DHCP {} filter for {} {}.",
+ (ethType.equals(EthType.EtherType.IPV4.ethType())) ? V4 : V6, port,
+ (install) ? INSTALLED : REMOVED);
dhcpFuture.ifPresent(f -> f.complete(null));
}
@Override
public void onError(Objective objective, ObjectiveError error) {
- log.error("DHCP {} filter for dev/port {}/{} failed {} because {}",
- (ethType.equals(EthType.EtherType.IPV4.ethType())) ? V4 : V6,
- devId, port, (install) ? INSTALLATION : REMOVAL,
+ log.error("DHCP {} filter for {} failed {} because {}",
+ (ethType.equals(EthType.EtherType.IPV4.ethType())) ? V4 : V6, port,
+ (install) ? INSTALLATION : REMOVAL,
error);
dhcpFuture.ifPresent(f -> f.complete(error));
}
});
- flowObjectiveService.filter(devId, dhcpUpstream);
+ flowObjectiveService.filter(port.deviceId(), dhcpUpstream);
}
@Override
- public void processPPPoEDFilteringObjectives(DeviceId devId, PortNumber portNumber,
+ public void processPPPoEDFilteringObjectives(AccessDevicePort port,
MeterId upstreamMeterId,
UniTagInformation tagInformation,
boolean install,
@@ -425,7 +424,7 @@
}
DefaultFilteringObjective.Builder pppoedBuilder = (install ? builder.permit() : builder.deny())
- .withKey(Criteria.matchInPort(portNumber))
+ .withKey(Criteria.matchInPort(port.number()))
.addCondition(Criteria.matchEthType(EthType.EtherType.PPPoED.ethType()))
.fromApp(appId)
.withPriority(10000);
@@ -445,21 +444,20 @@
.add(new ObjectiveContext() {
@Override
public void onSuccess(Objective objective) {
- log.info("PPPoED filter for {} on {} {}.",
- devId, portNumber, (install) ? INSTALLED : REMOVED);
+ log.info("PPPoED filter for {} {}.", port, (install) ? INSTALLED : REMOVED);
}
@Override
public void onError(Objective objective, ObjectiveError error) {
- log.info("PPPoED filter for {} on {} failed {} because {}",
- devId, portNumber, (install) ? INSTALLATION : REMOVAL, error);
+ log.info("PPPoED filter for {} failed {} because {}", port,
+ (install) ? INSTALLATION : REMOVAL, error);
}
});
- flowObjectiveService.filter(devId, pppoed);
+ flowObjectiveService.filter(port.deviceId(), pppoed);
}
@Override
- public void processIgmpFilteringObjectives(DeviceId devId, PortNumber port,
+ public void processIgmpFilteringObjectives(AccessDevicePort port,
MeterId upstreamMeterId,
UniTagInformation tagInformation,
boolean install,
@@ -467,22 +465,19 @@
if (upstream) {
// for UNI ports
if (tagInformation != null && !tagInformation.getIsIgmpRequired()) {
- log.debug("Igmp provisioning is disabled for UNI port {} on "
- + "device {} for service {}", port, devId,
- tagInformation.getServiceName());
+ log.debug("Igmp provisioning is disabled for UNI port {} for service {}",
+ port, tagInformation.getServiceName());
return;
}
} else {
// for NNI ports
if (!enableIgmpOnNni) {
- log.debug("Igmp provisioning is disabled for NNI port {} on device {}",
- port, devId);
+ log.debug("Igmp provisioning is disabled for NNI port {}", port);
return;
}
}
- log.debug("{} IGMP flows on {}:{}", (install) ?
- "Installing" : "Removing", devId, port);
+ log.debug("{} IGMP flows on {}", (install) ? "Installing" : "Removing", port);
DefaultFilteringObjective.Builder filterBuilder = DefaultFilteringObjective.builder();
TrafficTreatment.Builder treatmentBuilder = DefaultTrafficTreatment.builder();
if (upstream) {
@@ -513,7 +508,7 @@
filterBuilder = install ? filterBuilder.permit() : filterBuilder.deny();
FilteringObjective igmp = filterBuilder
- .withKey(Criteria.matchInPort(port))
+ .withKey(Criteria.matchInPort(port.number()))
.addCondition(Criteria.matchEthType(EthType.EtherType.IPV4.ethType()))
.addCondition(Criteria.matchIPProtocol(IPv4.PROTOCOL_IGMP))
.withMeta(treatmentBuilder
@@ -523,61 +518,60 @@
.add(new ObjectiveContext() {
@Override
public void onSuccess(Objective objective) {
- log.info("Igmp filter for dev/port {}/{} {}.",
- devId, port, (install) ? INSTALLED : REMOVED);
+ log.info("Igmp filter for {} {}.", port, (install) ? INSTALLED : REMOVED);
}
@Override
public void onError(Objective objective, ObjectiveError error) {
- log.error("Igmp filter for dev/port {}/{} failed {} because {}.",
- devId, port, (install) ? INSTALLATION : REMOVAL,
+ log.error("Igmp filter for {} failed {} because {}.", port, (install) ? INSTALLATION : REMOVAL,
error);
}
});
- flowObjectiveService.filter(devId, igmp);
+ flowObjectiveService.filter(port.deviceId(), igmp);
}
@Override
- public void processEapolFilteringObjectives(DeviceId devId, PortNumber portNumber, String bpId,
+ public void processEapolFilteringObjectives(AccessDevicePort port, String bpId,
CompletableFuture<ObjectiveError> filterFuture,
VlanId vlanId, boolean install) {
if (!enableEapol) {
- log.debug("Eapol filtering is disabled. Completing filteringFuture immediately for the device {}", devId);
+ log.debug("Eapol filtering is disabled. Completing filteringFuture immediately for the device {}",
+ port.deviceId());
if (filterFuture != null) {
filterFuture.complete(null);
}
return;
}
- log.info("Processing EAPOL with Bandwidth profile {} on {}/{}", bpId,
- devId, portNumber);
+ log.info("Processing EAPOL with Bandwidth profile {} on {}", bpId, port);
BandwidthProfileInformation bpInfo = getBandwidthProfileInformation(bpId);
if (bpInfo == null) {
log.warn("Bandwidth profile {} is not found. Authentication flow"
- + " will not be installed on {}/{}", bpId, devId, portNumber);
+ + " will not be installed on {}", bpId, port);
if (filterFuture != null) {
filterFuture.complete(ObjectiveError.BADPARAMS);
}
return;
}
- ConnectPoint cp = new ConnectPoint(devId, portNumber);
+ ConnectPoint cp = new ConnectPoint(port.deviceId(), port.number());
DefaultFilteringObjective.Builder filterBuilder = DefaultFilteringObjective.builder();
TrafficTreatment.Builder treatmentBuilder = DefaultTrafficTreatment.builder();
CompletableFuture<Object> meterFuture = new CompletableFuture<>();
// check if meter exists and create it only for an install
- final MeterId meterId = oltMeterService.getMeterIdFromBpMapping(devId, bpInfo.id());
- log.info("Meter id {} for Bandwidth profile {} associated to EAPOL on {}", meterId, bpInfo.id(), devId);
+ final MeterId meterId = oltMeterService.getMeterIdFromBpMapping(port.deviceId(), bpInfo.id());
+ log.info("Meter id {} for Bandwidth profile {} associated to EAPOL on {}",
+ meterId, bpInfo.id(), port.deviceId());
if (meterId == null) {
if (install) {
- log.debug("Need to install meter for EAPOL with bwp {} on dev/port {}", bpInfo.id(), cp.toString());
- SubscriberFlowInfo fi = new SubscriberFlowInfo(devId, null, cp.port(),
+ log.debug("Need to install meter for EAPOL with bwp {} on {}", bpInfo.id(), port);
+ SubscriberFlowInfo fi = new SubscriberFlowInfo(null, port,
new UniTagInformation.Builder()
.setPonCTag(vlanId).build(),
null, null,
null, bpInfo.id());
- pendingEapolForDevice.compute(devId, (id, queue) -> {
+ pendingEapolForDevice.compute(port.deviceId(), (id, queue) -> {
if (queue == null) {
queue = new LinkedBlockingQueue<>();
}
@@ -586,11 +580,10 @@
});
//If false the meter is already being installed, skipping installation
- if (!oltMeterService.checkAndAddPendingMeter(devId, bpInfo)) {
+ if (!oltMeterService.checkAndAddPendingMeter(port.deviceId(), bpInfo)) {
return;
}
- MeterId innerMeterId = oltMeterService.createMeter(devId, bpInfo,
- meterFuture);
+ MeterId innerMeterId = oltMeterService.createMeter(port.deviceId(), bpInfo, meterFuture);
fi.setUpMeterId(innerMeterId);
} else {
// this case should not happen as the request to remove an eapol
@@ -598,8 +591,8 @@
// Nevertheless we can still delete the flow as we only need the
// correct 'match' to do so.
log.warn("Unknown meter id for bp {}, still proceeding with "
- + "delete of eapol flow for {}", bpInfo.id(), cp.toString());
- SubscriberFlowInfo fi = new SubscriberFlowInfo(devId, null, cp.port(),
+ + "delete of eapol flow on {}", bpInfo.id(), port);
+ SubscriberFlowInfo fi = new SubscriberFlowInfo(null, port,
new UniTagInformation.Builder()
.setPonCTag(vlanId).build(),
null, meterId,
@@ -607,8 +600,8 @@
handleEapol(filterFuture, install, cp, filterBuilder, treatmentBuilder, fi, meterId);
}
} else {
- log.debug("Meter {} was previously created for bp {} on {}", meterId, bpInfo.id(), cp.toString());
- SubscriberFlowInfo fi = new SubscriberFlowInfo(devId, null, cp.port(),
+ log.debug("Meter {} was previously created for bp {} on {}", meterId, bpInfo.id(), port);
+ SubscriberFlowInfo fi = new SubscriberFlowInfo(null, port,
new UniTagInformation.Builder()
.setPonCTag(vlanId).build(),
null, meterId,
@@ -619,33 +612,34 @@
}
meterFuture.thenAcceptAsync(result -> {
//for each pending eapol flow we check if the meter is there.
- BlockingQueue<SubscriberFlowInfo> queue = pendingEapolForDevice.get(devId);
+ BlockingQueue<SubscriberFlowInfo> queue = pendingEapolForDevice.get(port.deviceId());
if (queue != null) {
while (true) {
SubscriberFlowInfo fi = queue.remove();
if (fi == null) {
- pendingEapolForDevice.replace(devId, queue);
+ pendingEapolForDevice.replace(port.deviceId(), queue);
break;
}
//TODO this might return the reference and not the actual object
// so it can be actually swapped underneath us.
- log.debug("handing pending eapol on {}/{} for {}", fi.getDevId(), fi.getUniPort(), fi);
+ log.debug("handing pending eapol on {} for {}", fi.getUniPort(), fi);
if (result == null) {
MeterId mId = oltMeterService
- .getMeterIdFromBpMapping(devId, fi.getUpBpInfo());
+ .getMeterIdFromBpMapping(port.deviceId(), fi.getUpBpInfo());
if (mId != null) {
- log.debug("Meter installation completed for subscriber on {}, handling EAPOL trap flow",
- cp.toString());
+ log.debug("Meter installation completed for subscriber on {}, " +
+ "handling EAPOL trap flow", port);
handleEapol(filterFuture, install, cp, filterBuilder, treatmentBuilder, fi, mId);
}
} else {
log.warn("Meter installation error while sending EAPOL trap flow to {}. " +
- "Result {} and MeterId {}", cp.toString(), result, meterId);
+ "Result {} and MeterId {}", port, result,
+ meterId);
}
- oltMeterService.removeFromPendingMeters(devId, bpInfo);
+ oltMeterService.removeFromPendingMeters(port.deviceId(), bpInfo);
}
} else {
- log.info("No pending EAPOLs on {}", devId);
+ log.info("No pending EAPOLs on {}", port.deviceId());
}
});
}
@@ -655,17 +649,17 @@
DefaultFilteringObjective.Builder filterBuilder,
TrafficTreatment.Builder treatmentBuilder,
SubscriberFlowInfo fi, MeterId mId) {
- log.info("Meter {} for {} on {}/{} exists. {} EAPOL trap flow",
- mId, fi.getUpBpInfo(), fi.getDevId(), fi.getUniPort(),
+ log.info("Meter {} for {} on {} exists. {} EAPOL trap flow",
+ mId, fi.getUpBpInfo(), fi.getUniPort(),
(install) ? "Installing" : "Removing");
- int techProfileId = getDefaultTechProfileId(fi.getDevId(), fi.getUniPort());
+ int techProfileId = getDefaultTechProfileId(fi.getUniPort());
// can happen in case of removal
if (mId != null) {
treatmentBuilder.meter(mId);
}
//Authentication trap flow uses only tech profile id as write metadata value
FilteringObjective eapol = (install ? filterBuilder.permit() : filterBuilder.deny())
- .withKey(Criteria.matchInPort(fi.getUniPort()))
+ .withKey(Criteria.matchInPort(fi.getUniPort().number()))
.addCondition(Criteria.matchEthType(EthType.EtherType.EAPOL.ethType()))
.withMeta(treatmentBuilder
.writeMetadata(createTechProfValueForWm(
@@ -680,9 +674,8 @@
.add(new ObjectiveContext() {
@Override
public void onSuccess(Objective objective) {
- log.info("Eapol filter {} for {} on {}/{} with meter {}.",
- objective.id(), (install) ? INSTALLED : REMOVED,
- fi.getDevId(), fi.getUniPort(), mId);
+ log.info("Eapol filter {} for {} on {} with meter {}.",
+ objective.id(), (install) ? INSTALLED : REMOVED, fi.getUniPort(), mId);
if (filterFuture != null) {
filterFuture.complete(null);
}
@@ -690,9 +683,8 @@
@Override
public void onError(Objective objective, ObjectiveError error) {
- log.error("Eapol filter {} for {}/{} with meter {} " +
- "failed {} because {}", objective.id(),
- fi.getDevId(), fi.getUniPort(), mId,
+ log.error("Eapol filter {} for {} with meter {} " +
+ "failed {} because {}", objective.id(), fi.getUniPort(), mId,
(install) ? INSTALLATION : REMOVAL,
error);
if (filterFuture != null) {
@@ -707,27 +699,26 @@
* Installs trap filtering objectives for particular traffic types on an
* NNI port.
*
- * @param devId device ID
- * @param port port number
+ * @param nniPort NNI port
* @param install true to install, false to remove
*/
@Override
- public void processNniFilteringObjectives(DeviceId devId, PortNumber port, boolean install) {
- log.info("{} flows for NNI port {} on device {}",
- install ? "Adding" : "Removing", port, devId);
- processLldpFilteringObjective(devId, port, install);
- processDhcpFilteringObjectives(devId, port, null, null, install, false, Optional.empty());
- processIgmpFilteringObjectives(devId, port, null, null, install, false);
- processPPPoEDFilteringObjectives(devId, port, null, null, install, false);
+ public void processNniFilteringObjectives(AccessDevicePort nniPort, boolean install) {
+ log.info("{} flows for NNI port {}",
+ install ? "Adding" : "Removing", nniPort);
+ processLldpFilteringObjective(nniPort, install);
+ processDhcpFilteringObjectives(nniPort, null, null, install, false, Optional.empty());
+ processIgmpFilteringObjectives(nniPort, null, null, install, false);
+ processPPPoEDFilteringObjectives(nniPort, null, null, install, false);
}
@Override
- public void processLldpFilteringObjective(DeviceId devId, PortNumber port, boolean install) {
+ public void processLldpFilteringObjective(AccessDevicePort port, boolean install) {
DefaultFilteringObjective.Builder builder = DefaultFilteringObjective.builder();
FilteringObjective lldp = (install ? builder.permit() : builder.deny())
- .withKey(Criteria.matchInPort(port))
+ .withKey(Criteria.matchInPort(port.number()))
.addCondition(Criteria.matchEthType(EthType.EtherType.LLDP.ethType()))
.withMeta(DefaultTrafficTreatment.builder()
.setOutput(PortNumber.CONTROLLER).build())
@@ -736,31 +727,29 @@
.add(new ObjectiveContext() {
@Override
public void onSuccess(Objective objective) {
- log.info("LLDP filter for dev/port {}/{} {}.",
- devId, port, (install) ? INSTALLED : REMOVED);
+ log.info("LLDP filter for {} {}.", port, (install) ? INSTALLED : REMOVED);
}
@Override
public void onError(Objective objective, ObjectiveError error) {
- log.error("LLDP filter for dev/port {}/{} failed {} because {}",
- devId, port, (install) ? INSTALLATION : REMOVAL,
+ log.error("LLDP filter for {} failed {} because {}", port, (install) ? INSTALLATION : REMOVAL,
error);
}
});
- flowObjectiveService.filter(devId, lldp);
+ flowObjectiveService.filter(port.deviceId(), lldp);
}
@Override
- public ForwardingObjective.Builder createTransparentBuilder(PortNumber uplinkPort,
- PortNumber subscriberPort,
+ public ForwardingObjective.Builder createTransparentBuilder(AccessDevicePort uplinkPort,
+ AccessDevicePort subscriberPort,
MeterId meterId,
UniTagInformation tagInfo,
boolean upstream) {
TrafficSelector selector = DefaultTrafficSelector.builder()
.matchVlanId(tagInfo.getPonSTag())
- .matchInPort(upstream ? subscriberPort : uplinkPort)
+ .matchInPort(upstream ? subscriberPort.number() : uplinkPort.number())
.matchInnerVlanId(tagInfo.getPonCTag())
.build();
@@ -770,22 +759,23 @@
}
TrafficTreatment treatment = tBuilder
- .setOutput(upstream ? uplinkPort : subscriberPort)
+ .setOutput(upstream ? uplinkPort.number() : subscriberPort.number())
.writeMetadata(createMetadata(upstream ? tagInfo.getPonSTag() : tagInfo.getPonCTag(),
- tagInfo.getTechnologyProfileId(), upstream ? uplinkPort : subscriberPort), 0)
+ tagInfo.getTechnologyProfileId(),
+ upstream ? uplinkPort.number() : subscriberPort.number()), 0)
.build();
return createForwardingObjectiveBuilder(selector, treatment, MIN_PRIORITY);
}
@Override
- public ForwardingObjective.Builder createUpBuilder(PortNumber uplinkPort,
- PortNumber subscriberPort,
+ public ForwardingObjective.Builder createUpBuilder(AccessDevicePort uplinkPort,
+ AccessDevicePort subscriberPort,
MeterId upstreamMeterId,
UniTagInformation uniTagInformation) {
TrafficSelector selector = DefaultTrafficSelector.builder()
- .matchInPort(subscriberPort)
+ .matchInPort(subscriberPort.number())
.matchVlanId(uniTagInformation.getUniTagMatch())
.build();
@@ -807,9 +797,9 @@
treatmentBuilder.setVlanPcp((byte) uniTagInformation.getUsPonSTagPriority());
}
- treatmentBuilder.setOutput(uplinkPort)
+ treatmentBuilder.setOutput(uplinkPort.number())
.writeMetadata(createMetadata(uniTagInformation.getPonCTag(),
- uniTagInformation.getTechnologyProfileId(), uplinkPort), 0L);
+ uniTagInformation.getTechnologyProfileId(), uplinkPort.number()), 0L);
if (upstreamMeterId != null) {
treatmentBuilder.meter(upstreamMeterId);
@@ -819,8 +809,8 @@
}
@Override
- public ForwardingObjective.Builder createDownBuilder(PortNumber uplinkPort,
- PortNumber subscriberPort,
+ public ForwardingObjective.Builder createDownBuilder(AccessDevicePort uplinkPort,
+ AccessDevicePort subscriberPort,
MeterId downstreamMeterId,
UniTagInformation tagInformation,
Optional<MacAddress> macAddress) {
@@ -828,7 +818,7 @@
//subscriberVlan can be any valid Vlan here including ANY to make sure the packet is tagged
TrafficSelector.Builder selectorBuilder = DefaultTrafficSelector.builder()
.matchVlanId(tagInformation.getPonSTag())
- .matchInPort(uplinkPort)
+ .matchInPort(uplinkPort.number())
.matchInnerVlanId(tagInformation.getPonCTag());
@@ -844,11 +834,11 @@
TrafficTreatment.Builder treatmentBuilder = DefaultTrafficTreatment.builder()
.popVlan()
- .setOutput(subscriberPort);
+ .setOutput(subscriberPort.number());
treatmentBuilder.writeMetadata(createMetadata(tagInformation.getPonCTag(),
tagInformation.getTechnologyProfileId(),
- subscriberPort), 0);
+ subscriberPort.number()), 0);
// Upstream pbit is used to remark inner vlan pbit.
// Upstream is used to avoid trusting the BNG to send the packet with correct pbit.
@@ -919,18 +909,16 @@
* If multiple services are found in uniServiceList, returns default tech profile id
* If one service is found, returns the found one
*
- * @param devId
- * @param portNumber
+ * @param port uni port
* @return the default technology profile id
*/
- private int getDefaultTechProfileId(DeviceId devId, PortNumber portNumber) {
+ private int getDefaultTechProfileId(AccessDevicePort port) {
if (subsService == null) {
log.warn(SADIS_NOT_RUNNING);
return defaultTechProfileId;
}
- Port port = deviceService.getPort(devId, portNumber);
if (port != null) {
- SubscriberAndDeviceInformation info = subsService.get(port.annotations().value(AnnotationKeys.PORT_NAME));
+ SubscriberAndDeviceInformation info = subsService.get(port.name());
if (info != null && info.uniTagList().size() == 1) {
return info.uniTagList().get(0).getTechnologyProfileId();
}