X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fforwardingrulesmanager%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fforwardingrulesmanager%2FFlowConfig.java;h=0304af493d9fe64abab2df516bc5b3c2e63c098c;hb=c8e2c38b1cdcb36b5db26f732532e43f1d9e2d6d;hp=2b9696ddb9cdf058640caa671735757556fb1a5a;hpb=7aac9c5fcb0f617c6b15e527f3c0f3d87032b83a;p=controller.git diff --git a/opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowConfig.java b/opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowConfig.java index 2b9696ddb9..0304af493d 100644 --- a/opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowConfig.java +++ b/opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowConfig.java @@ -71,9 +71,11 @@ import org.slf4j.LoggerFactory; public class FlowConfig implements Serializable { private static final long serialVersionUID = 1L; private static final Logger log = LoggerFactory.getLogger(FlowConfig.class); - public static final String staticFlowsGroup = "**StaticFlows"; - public static final String internalStaticFlowsGroup = "**InternalStaticFlows"; - public static final String internalStaticFlowBegin = "**"; + private static final String NAMEREGEX = "^[a-zA-Z0-9]+$"; + public static final String STATICFLOWGROUP = "__StaticFlows__"; + public static final String INTERNALSTATICFLOWGROUP = "__InternalStaticFlows__"; + public static final String INTERNALSTATICFLOWBEGIN = "__"; + public static final String INTERNALSTATICFLOWEND = "__"; private boolean dynamic; private String status; @@ -200,8 +202,9 @@ public class FlowConfig implements Serializable { } public boolean isInternalFlow() { - // Controller generated static flows have name starting with "**" - return (this.name != null && this.name.startsWith(FlowConfig.internalStaticFlowBegin)); + return (this.name != null && + this.name.startsWith(FlowConfig.INTERNALSTATICFLOWBEGIN) && + this.name.endsWith(FlowConfig.INTERNALSTATICFLOWEND)); } public String getName() { @@ -644,7 +647,7 @@ public class FlowConfig implements Serializable { public boolean isTpPortValid(String tpPort) { int port = Integer.decode(tpPort); - return ((port > 0) && (port <= 0xffff)); + return ((port >= 0) && (port <= 0xffff)); } public boolean isTimeoutValid(String timeout) { @@ -692,7 +695,7 @@ public class FlowConfig implements Serializable { Switch sw = null; try { - if (name == null || name.trim().isEmpty()) { + if (name == null || name.trim().isEmpty() || !name.matches(FlowConfig.NAMEREGEX)) { return new Status(StatusCode.BADREQUEST, "Invalid name"); } @@ -965,7 +968,8 @@ public class FlowConfig implements Serializable { } public FlowEntry getFlowEntry() { - return new FlowEntry(FlowConfig.staticFlowsGroup, this.name, this.getFlow(), this.getNode()); + String group = this.isInternalFlow() ? FlowConfig.INTERNALSTATICFLOWGROUP : FlowConfig.STATICFLOWGROUP; + return new FlowEntry(group, this.name, this.getFlow(), this.getNode()); } public Flow getFlow() {