Fixing a race condition which prevented barrier-replies from being recognized.
Uncommenting MPLS actions in driver, and creating new action of BoS, even though we do not push actions in flow-mods.
Change-Id: I333023b4ef88c9328d6c63c7f988b5e2225a19f3
diff --git a/src/main/java/net/floodlightcontroller/core/IOF13Switch.java b/src/main/java/net/floodlightcontroller/core/IOF13Switch.java
index 71a14e7..846197c 100644
--- a/src/main/java/net/floodlightcontroller/core/IOF13Switch.java
+++ b/src/main/java/net/floodlightcontroller/core/IOF13Switch.java
@@ -134,12 +134,12 @@
public void removePortFromGroups(PortNumber port);
public void addPortToGroups(PortNumber port);
+
/**
* give string tableType (ip, mpls, acl)
* @param tableType String equal to only one of (ip, mpls, acl)
* @return TableId
*/
-
public TableId getTableId(String tableType);
public int createTunnel(int tunnelId, List<String> route, NeighborSet ns);
diff --git a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImplBase.java b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImplBase.java
index 236ed06..a610c0d 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImplBase.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImplBase.java
@@ -1332,10 +1332,10 @@
.buildBarrierRequest()
.setXid(xid)
.build();
- write(Collections.singletonList(br));
OFBarrierReplyFuture future = new OFBarrierReplyFuture(threadPool, this,
(int) xid);
barrierFutureMap.put(xid, future);
+ write(Collections.singletonList(br));
return future;
}
@@ -1344,6 +1344,10 @@
if (f != null) {
f.deliverFuture(this, br);
barrierFutureMap.remove(br.getXid());
+ } else {
+ log.warn("Rcvd unknown barrier reply xid: {} from sw: {}",
+ br.getXid(), getStringId());
+
}
}
}