mirror of
https://github.com/opennetworkinglab/onos.git
synced 2026-05-04 11:51:43 +02:00
sr-mcast NPE fix on vlan change
Change-Id: I9523e750fdb5fd76cf120ee2e64f3c63471c8132 (cherry picked from commit f053484c4a3310d93bbddfb4c8872cacebeb33c6)
This commit is contained in:
parent
504510da4f
commit
fbcd55e7d8
@ -56,6 +56,7 @@ import org.onosproject.segmentrouting.SegmentRoutingManager;
|
||||
import org.onosproject.store.serializers.KryoNamespaces;
|
||||
import org.onosproject.store.service.ConsistentMap;
|
||||
import org.onosproject.store.service.Serializer;
|
||||
import org.onosproject.store.service.Versioned;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -1107,7 +1108,12 @@ public class McastHandler {
|
||||
source, mcastIp);
|
||||
return;
|
||||
}
|
||||
ingressTransitPorts.put(source, ingressTransitPort(mcastIp, ingressDevice, source));
|
||||
Set<PortNumber> ingressTransitPort = ingressTransitPort(mcastIp, ingressDevice, source);
|
||||
if (ingressTransitPort.isEmpty()) {
|
||||
log.warn("No transit ports to remove on device {}", ingressDevice);
|
||||
return;
|
||||
}
|
||||
ingressTransitPorts.put(source, ingressTransitPort);
|
||||
});
|
||||
ingressTransitPorts.forEach((source, ports) -> ports.forEach(ingressTransitPort -> {
|
||||
DeviceId ingressDevice = ingressDevices.stream()
|
||||
@ -1593,8 +1599,14 @@ public class McastHandler {
|
||||
ConnectPoint source) {
|
||||
ImmutableSet.Builder<PortNumber> portBuilder = ImmutableSet.builder();
|
||||
if (ingressDevice != null) {
|
||||
NextObjective nextObj = mcastNextObjStore.get(new McastStoreKey(mcastIp, ingressDevice,
|
||||
mcastUtils.assignedVlan(source))).value();
|
||||
Versioned<NextObjective> nextObjVers = mcastNextObjStore.get(new McastStoreKey(mcastIp, ingressDevice,
|
||||
mcastUtils.assignedVlan(source)));
|
||||
if (nextObjVers == null) {
|
||||
log.warn("Absent next objective for {}", new McastStoreKey(mcastIp, ingressDevice,
|
||||
mcastUtils.assignedVlan(source)));
|
||||
return portBuilder.build();
|
||||
}
|
||||
NextObjective nextObj = nextObjVers.value();
|
||||
Set<PortNumber> ports = mcastUtils.getPorts(nextObj.next());
|
||||
// Let's find out all the ingress-transit ports
|
||||
for (PortNumber port : ports) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user