This is the fix for a reactive forwarding bug, which does not work well between devices on the same switch.
Change-Id: I83a19cb559ddcdfac244dc95649572df12404a71
diff --git a/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java b/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
index 08a68b6..d8c01ce 100644
--- a/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
+++ b/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
@@ -496,8 +496,14 @@
List<PacketToPush> packets = null;
net.onrc.onos.core.topology.Path graphPath = installedPath.getPath();
- log.debug("path{}", graphPath);
- Short outPort = graphPath.get(0).getSrc().getNumber().shortValue();
+ short outPort;
+ if (graphPath.isEmpty()) {
+ outPort = (short) spfIntent.getDstPortNumber();
+ log.debug("Path is empty. Maybe devices on the same switch. outPort {}", outPort);
+ } else {
+ outPort = graphPath.get(0).getSrc().getNumber().shortValue();
+ log.debug("path{}, outPort {}", graphPath, outPort);
+ }
PushedFlow existingFlow = null;