Enhancing the GUI traffic-related code.
Fixed a defect in reactive forwarding.
Change-Id: I1a91f6e5f57b39425ef06092c82b06d04c9b59a0
diff --git a/apps/fwd/src/main/java/org/onlab/onos/fwd/ReactiveForwarding.java b/apps/fwd/src/main/java/org/onlab/onos/fwd/ReactiveForwarding.java
index 18f5d0a..b452eea 100644
--- a/apps/fwd/src/main/java/org/onlab/onos/fwd/ReactiveForwarding.java
+++ b/apps/fwd/src/main/java/org/onlab/onos/fwd/ReactiveForwarding.java
@@ -132,8 +132,8 @@
InboundPacket pkt = context.inPacket();
Ethernet ethPkt = pkt.parsed();
- // Bail if this is deemed to be a control packet.
- if (isControlPacket(ethPkt)) {
+ // Bail if this is deemed to be a control or IPv6 multicast packet.
+ if (isControlPacket(ethPkt) || isIpv6Multicast(ethPkt)) {
return;
}
@@ -194,6 +194,11 @@
return type == Ethernet.TYPE_LLDP || type == Ethernet.TYPE_BSN;
}
+ // Indicated whether this is an IPv6 multicast packet.
+ private boolean isIpv6Multicast(Ethernet eth) {
+ return eth.getEtherType() == Ethernet.TYPE_IPV6 && eth.isMulticast();
+ }
+
// Selects a path from the given set that does not lead back to the
// specified port.
private Path pickForwardPath(Set<Path> paths, PortNumber notToPort) {