diff --git a/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java b/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java index e999598ac6204fa829c90d9c66f13e9745f2382a..3b4bd2758e890b412eabcdcabf03205b6e07132e 100644 --- a/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java +++ b/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java @@ -596,11 +596,15 @@ public class Forwarding extends ForwardingBase implements IFloodlightModule, IOF if (FLOWMOD_DEFAULT_MATCH_TRANSPORT_DST) { mb.setExact(MatchField.TCP_DST, tcp.getDestinationPort()); } - if(sw.getOFFactory().getVersion().compareTo(OFVersion.OF_15) >= 0 || - (sw.getSwitchDescription().getHardwareDescription().toLowerCase().contains("open vswitch") && ( + if (sw.getOFFactory().getVersion().compareTo(OFVersion.OF_15) >= 0){ + if(FLOWMOD_DEFAULT_MATCH_TCP_FLAG){ + mb.setExact(MatchField.TCP_FLAGS, U16.of(tcp.getFlags())); + } + } + else if(sw.getSwitchDescription().getHardwareDescription().toLowerCase().contains("open vswitch") && ( Integer.parseInt(sw.getSwitchDescription().getSoftwareDescription().toLowerCase().split("\\.")[0]) > 2 || ( Integer.parseInt(sw.getSwitchDescription().getSoftwareDescription().toLowerCase().split("\\.")[0]) == 2 && - Integer.parseInt(sw.getSwitchDescription().getSoftwareDescription().toLowerCase().split("\\.")[1]) >= 1 ))) + Integer.parseInt(sw.getSwitchDescription().getSoftwareDescription().toLowerCase().split("\\.")[1]) >= 1 )) ){ if(FLOWMOD_DEFAULT_MATCH_TCP_FLAG){ mb.setExact(MatchField.OVS_TCP_FLAGS, U16.of(tcp.getFlags()));