Fixing reactive forwarding not to forward LLDP & BDDP.
Change-Id: Iea03aaeeb0679f2732246329e72306cc47bec5c1
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 f1d33ed..18f5d0a 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,6 +132,11 @@
InboundPacket pkt = context.inPacket();
Ethernet ethPkt = pkt.parsed();
+ // Bail if this is deemed to be a control packet.
+ if (isControlPacket(ethPkt)) {
+ return;
+ }
+
HostId id = HostId.hostId(ethPkt.getDestinationMAC());
// Do not process link-local addresses in any way.
@@ -180,6 +185,13 @@
// Otherwise forward and be done with it.
installRule(context, path.src().port());
}
+
+ }
+
+ // Indicates whether this is a control packet, e.g. LLDP, BDDP
+ private boolean isControlPacket(Ethernet eth) {
+ short type = eth.getEtherType();
+ return type == Ethernet.TYPE_LLDP || type == Ethernet.TYPE_BSN;
}
// Selects a path from the given set that does not lead back to the