[ONOS-2233] Tunnel monitoring, measurement and observation
1. tunnel statistics interface
Change-Id: Iffac60ead5273b6a309552be7be10d1cc89bd1d6
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStatistics.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStatistics.java
new file mode 100644
index 0000000..61c77d7
--- /dev/null
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStatistics.java
@@ -0,0 +1,63 @@
+/*
+ *
+ * * Copyright 2015 Open Networking Laboratory
+ * *
+ * * Licensed under the Apache License, Version 2.0 (the "License");
+ * * you may not use this file except in compliance with the License.
+ * * You may obtain a copy of the License at
+ * *
+ * * http://www.apache.org/licenses/LICENSE-2.0
+ * *
+ * * Unless required by applicable law or agreed to in writing, software
+ * * distributed under the License is distributed on an "AS IS" BASIS,
+ * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * * See the License for the specific language governing permissions and
+ * * limitations under the License.
+ *
+ */
+
+package org.onosproject.incubator.net.tunnel;
+
+import java.time.Duration;
+import java.util.List;
+
+/**
+ * Statistics of a tunnel.
+ */
+public interface TunnelStatistics {
+
+ /**
+ * Returns the tunnel id.
+ *
+ * @return tunnelId id of tunnel
+ */
+ TunnelId id();
+
+ /**
+ * Returns the bandwidth utilization of a tunnel.
+ *
+ * @return bandwidth utilization
+ */
+ double bandwidthUtilization();
+
+ /**
+ * Returns the packet loss rate of a tunnel.
+ *
+ * @return tunnel packet loss ratio
+ */
+ double packetLossRate();
+
+ /**
+ * Returns the end-to-end traffic flow delay of a tunnel.
+ *
+ * @return tunnel flow delay
+ */
+ Duration flowDelay();
+
+ /**
+ * Returns the alarms on a tunnel.
+ *
+ * @return tunnel alarms
+ */
+ List<String> alarms();
+}