Modify a annotation and refactor Web UI.
Change-Id: I985733e8f4e7d0cda292ed4a240d1250db8e2316
diff --git a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/FlowInfoJsonCodec.java b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/FlowInfoJsonCodec.java
index 4244c7f..be51b15 100644
--- a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/FlowInfoJsonCodec.java
+++ b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/FlowInfoJsonCodec.java
@@ -21,24 +21,22 @@
import org.onlab.packet.IpPrefix;
import org.onlab.packet.MacAddress;
import org.onlab.packet.TpPort;
+import org.onlab.packet.VlanId;
import org.onosproject.codec.CodecContext;
import org.onosproject.codec.JsonCodec;
import org.onosproject.net.DeviceId;
import org.onosproject.openstacktelemetry.api.FlowInfo;
import org.onosproject.openstacktelemetry.api.StatsInfo;
import org.onosproject.openstacktelemetry.impl.DefaultFlowInfo;
-import org.slf4j.Logger;
import static com.google.common.base.Preconditions.checkNotNull;
-import static org.slf4j.LoggerFactory.getLogger;
+import static org.onlab.packet.VlanId.NO_VID;
/**
* Openstack telemetry codec used for serializing and de-serializing JSON string.
*/
public final class FlowInfoJsonCodec extends JsonCodec<FlowInfo> {
- private final Logger log = getLogger(getClass());
-
private static final String FLOW_TYPE = "flowType";
private static final String DEVICE_ID = "deviceId";
private static final String INPUT_INTERFACE_ID = "inputInterfaceId";
@@ -76,7 +74,6 @@
.put(SRC_MAC, info.srcMac().toString())
.put(DST_MAC, info.dstMac().toString());
-
if (info.vlanId() != null) {
result.put(VLAN_ID, info.vlanId().toString());
} else {
@@ -111,6 +108,21 @@
String srcMac = json.get(SRC_MAC).asText();
String dstMac = json.get(DST_MAC).asText();
+ VlanId vlanId;
+ short vxlanId = 0;
+ try {
+ if (json.get(VLAN_ID).isNull()) {
+ vlanId = VlanId.vlanId(NO_VID);
+ if (!(json.get(VXLAN_ID).isNull())) {
+ vxlanId = (short) json.get(VXLAN_ID).asInt();
+ }
+ } else {
+ vlanId = VlanId.vlanId((short) json.get(VLAN_ID).asInt());
+ }
+ } catch (NullPointerException ex) {
+ vlanId = VlanId.vlanId();
+ }
+
JsonNode statsInfoJson = json.get(STATS_INFO);
JsonCodec<StatsInfo> statsInfoCodec = context.codec(StatsInfo.class);
@@ -128,6 +140,8 @@
.withProtocol(Byte.valueOf(protocol))
.withSrcMac(MacAddress.valueOf(srcMac))
.withDstMac(MacAddress.valueOf(dstMac))
+ .withVlanId(vlanId)
+ .withVxlanId(vxlanId)
.withStatsInfo(statsInfo)
.build();
}
diff --git a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/StatsFlowRuleJsonCodec.java b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/StatsFlowRuleJsonCodec.java
index 8fc8143..2e84b79 100644
--- a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/StatsFlowRuleJsonCodec.java
+++ b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/StatsFlowRuleJsonCodec.java
@@ -17,7 +17,6 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.onlab.packet.IPv4;
import org.onlab.packet.TpPort;
import org.onosproject.codec.CodecContext;
import org.onosproject.codec.JsonCodec;
@@ -28,6 +27,7 @@
import org.onlab.packet.IpPrefix;
import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onosproject.openstacktelemetry.util.OpenstackTelemetryUtil.getProtocolTypeFromString;
import static org.slf4j.LoggerFactory.getLogger;
public class StatsFlowRuleJsonCodec extends JsonCodec<StatsFlowRule> {
@@ -59,41 +59,26 @@
try {
String srcIpPrefix = json.get(SRC_IP_PREFIX).asText();
String dstIpPrefix = json.get(DST_IP_PREFIX).asText();
- String tmpIpProtocol = new String("");
- int srcTpPort = 0;
- int dstTpPort = 0;
DefaultStatsFlowRule.Builder flowRuleBuilder;
- byte ipProtocol = 0;
if (json.get(IP_PROTOCOL) == null) {
log.info("ipProtocol: null");
flowRuleBuilder = DefaultStatsFlowRule.builder()
.srcIpPrefix(IpPrefix.valueOf(srcIpPrefix))
.dstIpPrefix(IpPrefix.valueOf(dstIpPrefix));
} else {
- tmpIpProtocol = json.get(IP_PROTOCOL).asText().toUpperCase();
- srcTpPort = json.get(SRC_TP_PORT).asInt();
- dstTpPort = json.get(DST_TP_PORT).asInt();
- if (tmpIpProtocol.equals("TCP")) {
- ipProtocol = IPv4.PROTOCOL_TCP;
- } else if (tmpIpProtocol.equals("UDP")) {
- ipProtocol = IPv4.PROTOCOL_UDP;
- } else {
- ipProtocol = 0;
- }
+ byte ipProtocol = getProtocolTypeFromString(json.get(IP_PROTOCOL).asText());
+ int srcTpPort = json.get(SRC_TP_PORT).asInt();
+ int dstTpPort = json.get(DST_TP_PORT).asInt();
flowRuleBuilder = DefaultStatsFlowRule.builder()
- .srcIpPrefix(IpPrefix.valueOf(srcIpPrefix))
- .dstIpPrefix(IpPrefix.valueOf(dstIpPrefix))
- .ipProtocol(ipProtocol)
- .srcTpPort(TpPort.tpPort(srcTpPort))
- .dstTpPort(TpPort.tpPort(dstTpPort));
+ .srcIpPrefix(IpPrefix.valueOf(srcIpPrefix))
+ .dstIpPrefix(IpPrefix.valueOf(dstIpPrefix))
+ .ipProtocol(ipProtocol)
+ .srcTpPort(TpPort.tpPort(srcTpPort))
+ .dstTpPort(TpPort.tpPort(dstTpPort));
}
-
- log.debug("StatsFlowRule after building from JSON:\n{}",
- flowRuleBuilder.build().toString());
-
return flowRuleBuilder.build();
} catch (Exception ex) {
log.error("Exception Stack:\n{}", ExceptionUtils.getStackTrace(ex));
diff --git a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/StatsInfoJsonCodec.java b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/StatsInfoJsonCodec.java
index 53cf924..905b2ff 100644
--- a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/StatsInfoJsonCodec.java
+++ b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/StatsInfoJsonCodec.java
@@ -20,18 +20,14 @@
import org.onosproject.codec.JsonCodec;
import org.onosproject.openstacktelemetry.api.StatsInfo;
import org.onosproject.openstacktelemetry.impl.DefaultStatsInfo;
-import org.slf4j.Logger;
import static com.google.common.base.Preconditions.checkNotNull;
-import static org.slf4j.LoggerFactory.getLogger;
/**
* Openstack telemetry codec used for serializing and de-serializing JSON string.
*/
public final class StatsInfoJsonCodec extends JsonCodec<StatsInfo> {
- private final Logger log = getLogger(getClass());
-
private static final String STARTUP_TIME = "startupTime";
private static final String FST_PKT_ARR_TIME = "fstPktArrTime";
private static final String LST_PKT_OFFSET = "lstPktOffset";
diff --git a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/TinaFlowInfoByteBufferCodec.java b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/TinaFlowInfoByteBufferCodec.java
index 73258ac..2ee625f 100644
--- a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/TinaFlowInfoByteBufferCodec.java
+++ b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/TinaFlowInfoByteBufferCodec.java
@@ -34,6 +34,7 @@
*/
public class TinaFlowInfoByteBufferCodec extends ByteBufferCodec<FlowInfo> {
+ private static final int NUM_RADIX = 16;
private static final int MESSAGE_SIZE = 88;
private static final String OF_PREFIX = "of:";
@@ -46,7 +47,7 @@
String deviceId = flowInfo.deviceId().toString();
short switchId = (short) Integer.parseInt(deviceId.substring(3,
- deviceId.length()), 16);
+ deviceId.length()), NUM_RADIX);
if (flowInfo.srcPort() != null) {
srcPort = flowInfo.srcPort().toInt();