diff --git a/lib/netty-3.10.0.Final.jar b/lib/netty-3.10.0.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..5f8aa2e2eb08d43a1a8c90c13bafcec5fdd11d63 Binary files /dev/null and b/lib/netty-3.10.0.Final.jar differ diff --git a/lib/netty-3.2.6.Final.jar b/lib/netty-3.2.6.Final.jar deleted file mode 100644 index a2e05bf6fce8dd944bfbd0a5d265649faf9eaae5..0000000000000000000000000000000000000000 Binary files a/lib/netty-3.2.6.Final.jar and /dev/null differ diff --git a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java index 3730a095f75b90a6e33c5c4102f54743730a61c6..8f3a75f320301b0d1778477eb36a911a94d92069 100644 --- a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java +++ b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java @@ -510,7 +510,8 @@ implements IOFSwitchListener, IFloodlightModule, IStaticFlowEntryPusherService, /* MODIFY_STRICT b/c the match is still the same */ if (oldFlowMod.getMatch().equals(newFlowMod.getMatch()) && oldFlowMod.getCookie().equals(newFlowMod.getCookie()) - && oldFlowMod.getPriority() == newFlowMod.getPriority()) { + && oldFlowMod.getPriority() == newFlowMod.getPriority() + && dpidOldFlowMod.equalsIgnoreCase(dpid)) { log.debug("ModifyStrict SFP Flow"); entriesFromStorage.get(dpid).put(entry, newFlowMod); entry2dpid.put(entry, dpid); diff --git a/src/main/java/net/floodlightcontroller/util/ActionUtils.java b/src/main/java/net/floodlightcontroller/util/ActionUtils.java index b09f592565825615f25954cf4ff6152710ae59c9..e4d9305ddf55cdd847faf662ed96e704556f599d 100644 --- a/src/main/java/net/floodlightcontroller/util/ActionUtils.java +++ b/src/main/java/net/floodlightcontroller/util/ActionUtils.java @@ -359,7 +359,7 @@ public class ActionUtils { recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) public static void fromString(OFFlowMod.Builder fmb, String bigString, Logger log) { List<OFAction> actions = new LinkedList<OFAction>(); - if (bigString != null) { + if (bigString != null && !bigString.trim().isEmpty()) { bigString = bigString.toLowerCase(); String[] bigStringSplit = bigString.split(","); // split into separate action=value or action=key@value pairs @@ -410,7 +410,7 @@ public class ActionUtils { if (actionData.length != 2) { throw new IllegalArgumentException("[Action, Data] " + keyPair + " does not have form 'action=data'" + actionData); } - + switch (actionData[0]) { case MatchUtils.STR_ARP_OPCODE: if (actionData[1].startsWith("0x")) { @@ -857,10 +857,11 @@ public class ActionUtils { actions.add(a); } } - } - log.debug("action {}", actions); - - fmb.setActions(actions); + log.debug("actions: {}", actions); + fmb.setActions(actions); + } else { + log.debug("actions not found --> drop"); + } return; } diff --git a/src/main/java/org/sdnplatform/sync/internal/rpc/RPCService.java b/src/main/java/org/sdnplatform/sync/internal/rpc/RPCService.java index ec6fbb86fe895bf63b0fb42b370ba88fddf44d0b..97f498a050b064e8effb85d46f69ff5463ffab23 100644 --- a/src/main/java/org/sdnplatform/sync/internal/rpc/RPCService.java +++ b/src/main/java/org/sdnplatform/sync/internal/rpc/RPCService.java @@ -14,6 +14,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import java.util.concurrent.LinkedTransferQueue; import net.floodlightcontroller.core.annotations.LogMessageCategory; import net.floodlightcontroller.core.annotations.LogMessageDoc; @@ -31,7 +32,6 @@ import org.jboss.netty.channel.group.ChannelGroup; import org.jboss.netty.channel.group.DefaultChannelGroup; import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; -import org.jboss.netty.util.internal.LinkedTransferQueue; import org.sdnplatform.sync.internal.SyncManager; import org.sdnplatform.sync.internal.config.Node; import org.sdnplatform.sync.internal.util.Pair;