package org.opendaylight.controller.forwardingrulesmanager;
-import java.io.Serializable;
-import java.net.Inet6Address;
-import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
import org.opendaylight.controller.sal.action.Action;
import org.opendaylight.controller.sal.action.ActionType;
import org.opendaylight.controller.sal.action.Controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
+import java.net.Inet6Address;
+import java.net.InetAddress;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
/**
* Configuration Java Object which represents a flow configuration information
* for Forwarding Rules Manager.
sstr = Pattern.compile("OUTPUT=(.*)").matcher(actiongrp);
if (sstr.matches()) {
for (String t : sstr.group(1).split(",")) {
- Matcher n = Pattern.compile("(?:(\\d+))").matcher(t);
- if (n.matches()) {
- String port = n.group(1);
- if (port != null) {
- if (!isPortValid(sw, port)) {
- String msg = String.format("Output port %s is not valid for this switch", port);
- if (!containerName.equals(GlobalConstants.DEFAULT.toString())) {
- msg += " in Container " + containerName;
- }
- return new Status(StatusCode.BADREQUEST, msg);
+ if (t != null) {
+ if (!isPortValid(sw, t)) {
+ String msg = String.format("Output port %s is not valid for this switch", t);
+ if (!containerName.equals(GlobalConstants.DEFAULT.toString())) {
+ msg += " in Container " + containerName;
}
+ return new Status(StatusCode.BADREQUEST, msg);
}
- } else {
- String msg = String.format("Output port %s is not valid", t);
- return new Status(StatusCode.BADREQUEST, msg);
}
}
continue;
sstr = Pattern.compile("ENQUEUE=(.*)").matcher(actiongrp);
if (sstr.matches()) {
for (String t : sstr.group(1).split(",")) {
- Matcher n = Pattern.compile("(?:(\\d+:\\d+))").matcher(t);
- if (n.matches()) {
- if (n.group(1) != null) {
- String port = n.group(1).split(":")[0];
- if (!isPortValid(sw, port)) {
- String msg = String.format("Output port %d is not valid for this switch", port);
- if (!containerName.equals(GlobalConstants.DEFAULT.toString())) {
- msg += " in Container " + containerName;
- }
- return new Status(StatusCode.BADREQUEST, msg);
+ if (t != null) {
+ String port = t.split(":")[0];
+ if (!isPortValid(sw, port)) {
+ String msg = String.format("Output port %d is not valid for this switch", port);
+ if (!containerName.equals(GlobalConstants.DEFAULT.toString())) {
+ msg += " in Container " + containerName;
}
+ return new Status(StatusCode.BADREQUEST, msg);
}
- } else {
- String msg = String.format("Enqueue port %s is not valid", t);
- return new Status(StatusCode.BADREQUEST, msg);
}
}
continue;
}
Flow flow = new Flow(match, getActionList());
+
if (this.cookie != null) {
flow.setId(Long.parseLong(cookie));
}
if (this.priority != null) {
flow.setPriority(Integer.decode(this.priority).shortValue());
}
+
+
return flow;
}
sstr = Pattern.compile(ActionType.OUTPUT + "=(.*)").matcher(actiongrp);
if (sstr.matches()) {
for (String t : sstr.group(1).split(",")) {
- Matcher n = Pattern.compile("(?:(\\d+))").matcher(t);
- if (n.matches()) {
- if (n.group(1) != null) {
- String nc = String.format("%s|%s@%s", node.getType(), n.group(1), node.toString());
- actionList.add(new Output(NodeConnector.fromString(nc)));
- }
+ if (t != null) {
+ String nc = String.format("%s|%s@%s", node.getType(), t, node.toString());
+ actionList.add(new Output(NodeConnector.fromString(nc)));
}
}
continue;
sstr = Pattern.compile(ActionType.ENQUEUE + "=(.*)").matcher(actiongrp);
if (sstr.matches()) {
for (String t : sstr.group(1).split(",")) {
- Matcher n = Pattern.compile("(?:(\\d+:\\d+))").matcher(t);
- if (n.matches()) {
- if (n.group(1) != null) {
- String parts[] = n.group(1).split(":");
- String nc = String.format("%s|%s@%s", node.getType(), parts[0], node.toString());
- if (parts.length == 1) {
- actionList.add(new Enqueue(NodeConnector.fromString(nc)));
- } else {
- actionList
- .add(new Enqueue(NodeConnector.fromString(nc), Integer.parseInt(parts[1])));
- }
+ if (t != null) {
+ String parts[] = t.split(":");
+ String nc = String.format("%s|%s@%s", node.getType(), parts[0], node.toString());
+ if (parts.length == 1) {
+ actionList.add(new Enqueue(NodeConnector.fromString(nc)));
+ } else {
+ actionList
+ .add(new Enqueue(NodeConnector.fromString(nc), Integer.parseInt(parts[1])));
}
}
}