[ONOS-4228]Parase and set priority for sfc classification
Change-Id: I0e25465d47ad1bd6c6035ff309ef631b8ef7c75e
diff --git a/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FlowClassifierCodec.java b/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FlowClassifierCodec.java
index 412cefe..94e02db 100644
--- a/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FlowClassifierCodec.java
+++ b/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FlowClassifierCodec.java
@@ -40,6 +40,7 @@
private static final String DESCRIPTION = "description";
private static final String ETHER_TYPE = "ethertype";
private static final String PROTOCOL = "protocol";
+ private static final String PRIORITY = "priority";
private static final String MIN_SRC_PORT_RANGE = "source_port_range_min";
private static final String MAX_SRC_PORT_RANGE = "source_port_range_max";
private static final String MIN_DST_PORT_RANGE = "destination_port_range_min";
@@ -79,6 +80,9 @@
resultBuilder.setProtocol(protocol);
}
+ int priority = (json.get(PRIORITY)).asInt();
+ resultBuilder.setPriority(priority);
+
int minSrcPortRange = (json.get(MIN_SRC_PORT_RANGE)).asInt();
resultBuilder.setMinSrcPortRange(minSrcPortRange);
@@ -123,6 +127,7 @@
.put(DESCRIPTION, flowClassifier.description())
.put(ETHER_TYPE, flowClassifier.etherType())
.put(PROTOCOL, flowClassifier.protocol())
+ .put(PRIORITY, flowClassifier.priority())
.put(MIN_SRC_PORT_RANGE, flowClassifier.minSrcPortRange())
.put(MAX_SRC_PORT_RANGE, flowClassifier.maxSrcPortRange())
.put(MIN_DST_PORT_RANGE, flowClassifier.minDstPortRange())
diff --git a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/FlowClassifierResourceTest.java b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/FlowClassifierResourceTest.java
index 673e088..b21a80f 100644
--- a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/FlowClassifierResourceTest.java
+++ b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/FlowClassifierResourceTest.java
@@ -65,8 +65,9 @@
VirtualPortId dstPortId1 = VirtualPortId.portId("aef3478a-4a56-2a6e-cd3a-9dee4e2ec345");
final MockFlowClassifier flowClassifier1 = new MockFlowClassifier(flowClassifierId1, tenantId1, "flowClassifier1",
- "Mock flow classifier", "IPv4", "IP", 1001, 1500,
- 5001, 6000, IpPrefix.valueOf("1.1.1.1/16"),
+ "Mock flow classifier", "IPv4", "IP", 10000,
+ 1001, 1500, 5001, 6000,
+ IpPrefix.valueOf("1.1.1.1/16"),
IpPrefix.valueOf("22.12.34.45/16"),
srcPortId1, dstPortId1);
@@ -81,6 +82,7 @@
private final String description;
private final String etherType;
private final String protocol;
+ private final int priority;
private final int minSrcPortRange;
private final int maxSrcPortRange;
private final int minDstPortRange;
@@ -91,15 +93,17 @@
private final VirtualPortId dstPort;
public MockFlowClassifier(FlowClassifierId flowClassifierId, TenantId tenantId, String name,
- String description, String etherType, String protocol, int minSrcPortRange,
- int maxSrcPortRange, int minDstPortRange, int maxDstPortRange, IpPrefix srcIpPrefix,
- IpPrefix dstIpPrefix, VirtualPortId srcPort, VirtualPortId dstPort) {
+ String description, String etherType, String protocol, int priority,
+ int minSrcPortRange, int maxSrcPortRange, int minDstPortRange, int maxDstPortRange,
+ IpPrefix srcIpPrefix, IpPrefix dstIpPrefix, VirtualPortId srcPort,
+ VirtualPortId dstPort) {
this.flowClassifierId = flowClassifierId;
this.tenantId = tenantId;
this.name = name;
this.description = description;
this.etherType = etherType;
this.protocol = protocol;
+ this.priority = priority;
this.minSrcPortRange = minSrcPortRange;
this.maxSrcPortRange = maxSrcPortRange;
this.minDstPortRange = minDstPortRange;
@@ -142,6 +146,11 @@
}
@Override
+ public int priority() {
+ return priority;
+ }
+
+ @Override
public int minSrcPortRange() {
return minSrcPortRange;
}
diff --git a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/web/FlowClassifierCodecTest.java b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/web/FlowClassifierCodecTest.java
index 6daec8a..ea28613 100644
--- a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/web/FlowClassifierCodecTest.java
+++ b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/web/FlowClassifierCodecTest.java
@@ -89,6 +89,7 @@
assertThat(flowClassifier.tenantId().toString(), is(tenantId.toString()));
assertThat(flowClassifier.description(), is("flow classifier"));
assertThat(flowClassifier.protocol(), is("tcp"));
+ assertThat(flowClassifier.priority(), is(65535));
assertThat(flowClassifier.minSrcPortRange(), is(22));
assertThat(flowClassifier.maxSrcPortRange(), is(4000));
assertThat(flowClassifier.minDstPortRange(), is(80));
diff --git a/apps/vtn/vtnweb/src/test/resources/org/onosproject/vtnweb/resources/post-FlowClassifier.json b/apps/vtn/vtnweb/src/test/resources/org/onosproject/vtnweb/resources/post-FlowClassifier.json
index 6e72e8f..5ed095d 100644
--- a/apps/vtn/vtnweb/src/test/resources/org/onosproject/vtnweb/resources/post-FlowClassifier.json
+++ b/apps/vtn/vtnweb/src/test/resources/org/onosproject/vtnweb/resources/post-FlowClassifier.json
@@ -5,6 +5,7 @@
"description": "flow classifier",
"ethertype": "IPv4",
"protocol": "tcp",
+ "priority": 10000,
"source_port_range_min": 22, "source_port_range_max": 4000,
"destination_port_range_min": 80, "destination_port_range_max": 80,
"source_ip_prefix": "1.1.1.1/16" , "destination_ip_prefix": "22.12.34.45/16",
diff --git a/apps/vtn/vtnweb/src/test/resources/org/onosproject/vtnweb/web/flowClassifier.json b/apps/vtn/vtnweb/src/test/resources/org/onosproject/vtnweb/web/flowClassifier.json
index 0fc0b74..3fd5ac9 100644
--- a/apps/vtn/vtnweb/src/test/resources/org/onosproject/vtnweb/web/flowClassifier.json
+++ b/apps/vtn/vtnweb/src/test/resources/org/onosproject/vtnweb/web/flowClassifier.json
@@ -5,6 +5,7 @@
"description": "flow classifier",
"ethertype": "IPv4",
"protocol": "tcp",
+ "priority": 65535,
"source_port_range_min": 22, "source_port_range_max": 4000,
"destination_port_range_min": 80, "destination_port_range_max": 80,
"source_ip_prefix": "1.1.1.1/16" , "destination_ip_prefix": "22.12.34.45/16"