diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/OXMSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/OXMSerializer.java index d0271d6838aec13d8ce97ec389ad5aeb6991f228..c0b13916edfe037ab43e298f68be93fe18279967 100644 --- a/src/main/java/net/floodlightcontroller/core/web/serializers/OXMSerializer.java +++ b/src/main/java/net/floodlightcontroller/core/web/serializers/OXMSerializer.java @@ -390,6 +390,10 @@ public class OXMSerializer { map.put(U32.ofRaw(NXM_1 | (36 << SHIFT_FIELD) | 4), STR_NXM + "internal_recirc_id"); map.put(U32.ofRaw(NXM_1 | (36 << SHIFT_FIELD) | 4 * 2 | MASKED), STR_NXM + "internal_recirc_id" + STR_MASKED); + + map.put(U32.ofRaw(NXM_1 | (37 << SHIFT_FIELD) | 4), STR_NXM + MatchUtils.STR_PBB_ISID); + map.put(U32.ofRaw(NXM_1 | (37 << SHIFT_FIELD) | 4 * 2 | MASKED), STR_NXM + MatchUtils.STR_PBB_ISID + STR_MASKED); + } /** diff --git a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java index 87367e0075bcb18e9d481a78f77f868de72e4437..e0f33f14be22fa12358503e06007abd561068f85 100644 --- a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java +++ b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java @@ -741,11 +741,11 @@ implements IOFSwitchListener, IFloodlightModule, IStaticFlowEntryPusherService, Map<String, OFFlowMod> flowsByName = getFlows(sw.getId()); for (Map.Entry<String, OFFlowMod> entry : flowsByName.entrySet()) { if (msg.getCookie().equals(entry.getValue().getCookie()) && - msg.getHardTimeout() == entry.getValue().getHardTimeout() && + (msg.getVersion().compareTo(OFVersion.OF_12) < 0 ? true : msg.getHardTimeout() == entry.getValue().getHardTimeout()) && msg.getIdleTimeout() == entry.getValue().getIdleTimeout() && msg.getMatch().equals(entry.getValue().getMatch()) && msg.getPriority() == entry.getValue().getPriority() && - msg.getTableId().equals(entry.getValue().getTableId()) + (msg.getVersion().compareTo(OFVersion.OF_10) == 0 ? true : msg.getTableId().equals(entry.getValue().getTableId())) ) { flowToRemove = entry.getKey(); break;