summaryrefslogtreecommitdiffstats
path: root/ioam/api
diff options
context:
space:
mode:
authorSrihari Raghavan <srihari@cisco.com>2016-10-27 15:23:36 +0530
committerSrihari Raghavan <srihari@cisco.com>2016-11-03 18:26:00 +0530
commite83f0e1d6451c96ef9850b4a8b058c4b5c307617 (patch)
treea13b6175ba62b510ea7a3b4de6ea7447dbe8931d /ioam/api
parent096e3e9a8b66970ed0b4a0e7f45dbd349902b20d (diff)
HONEYCOMB-257 - Honeycomb support for in-band OAM (iOAM) path tracing
- Add iOAM module to handle configuration for the iOAM trace VPP plugin - Add iOAM module test to verify add/delete configurations - Reader/Initializers for future, dependent on https://gerrit.fd.io/r/3387 Change-Id: I557604a955771c139165aed7cd9e5716abbac3d1 Signed-off-by: Srihari Raghavan <srihari@cisco.com>
Diffstat (limited to 'ioam/api')
-rw-r--r--ioam/api/asciidoc/Readme.adoc3
-rw-r--r--ioam/api/pom.xml38
-rw-r--r--ioam/api/src/main/yang/ioam-sb-trace.yang184
3 files changed, 225 insertions, 0 deletions
diff --git a/ioam/api/asciidoc/Readme.adoc b/ioam/api/asciidoc/Readme.adoc
new file mode 100644
index 000000000..fe70e0a4a
--- /dev/null
+++ b/ioam/api/asciidoc/Readme.adoc
@@ -0,0 +1,3 @@
+= vppioam-api
+
+Overview of vppioam-api
diff --git a/ioam/api/pom.xml b/ioam/api/pom.xml
new file mode 100644
index 000000000..ebdadea05
--- /dev/null
+++ b/ioam/api/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2016 Cisco and/or its affiliates.
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>io.fd.honeycomb.common</groupId>
+ <artifactId>api-parent</artifactId>
+ <version>1.16.12-SNAPSHOT</version>
+ <relativePath>../../common/api-parent</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>io.fd.honeycomb.vppioam</groupId>
+ <artifactId>vppioam-api</artifactId>
+ <name>${project.artifactId}</name>
+ <version>1.16.12-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-interfaces</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/ioam/api/src/main/yang/ioam-sb-trace.yang b/ioam/api/src/main/yang/ioam-sb-trace.yang
new file mode 100644
index 000000000..731fda96d
--- /dev/null
+++ b/ioam/api/src/main/yang/ioam-sb-trace.yang
@@ -0,0 +1,184 @@
+module ioam-sb-trace {
+ yang-version 1;
+ namespace "urn:cisco:params:xml:ns:yang:ioam-sb-trace";
+ prefix ioam-sb-trace;
+
+ import ietf-interfaces { prefix ietf-if; }
+
+ organization "Cisco Systems, Inc.";
+
+ contact
+ "Author: Srihari Raghavan
+ srihari@cisco.com";
+
+ description
+ "This YANG module defines a component that describing the
+ configuration of in-band OAM device configuration for
+ trace elements.
+ ";
+
+ revision 2016-05-12 {
+ description
+ "Base model for in-band OAM trace device configuration.";
+ reference
+ "";
+ }
+
+ container ioam-trace-config {
+ description
+ "Device specific configuration for in-band OAM trace.";
+
+ list trace-config {
+ key "trace-config-name";
+ ordered-by system;
+ description
+ "Set of ioam trace configurations that group parameters
+ required to enable iOAM6 tracing at a service node";
+
+ leaf trace-config-name {
+ type string {
+ length "0..255";
+ }
+ mandatory true;
+ description
+ "Unique identifier for each node tracing configuration";
+ }
+
+ leaf acl-name {
+ type string;
+ description
+ "The ACL name associated to classify and apply this
+ trace config";
+ }
+
+ leaf trace-type {
+ type uint8 {
+ range "3|7|9|17|25|31";
+ }
+
+ mandatory true;
+ description
+ "Trace type that defines the trace element variant. Moving
+ from LSB to MSB, each bit represents node_id, ingress_if_id,
+ egress_if_id, timestamp, app_data and others are undefined.
+ Currently, the supported values are 0x03, 0x07, 0x09,
+ 0x11, 0x19 and 0x1f.";
+ }
+
+ leaf trace-num-elt {
+ type uint8;
+
+ mandatory true;
+ description
+ "Number of trace elements to be inserted in the tracing
+ options.";
+ }
+
+ leaf trace-tsp {
+ type enumeration {
+ enum seconds {
+ value 0;
+ description "Timestamp in seconds.";
+ }
+ enum milliseconds {
+ value 1;
+ description "Timestamp in milli seconds.";
+ }
+ enum microseconds {
+ value 2;
+ description "Timestamp in micro seconds.";
+ }
+ enum nanoseconds {
+ value 3;
+ description "Timestamp in nano seconds.";
+ }
+ }
+
+ mandatory true;
+ description
+ "This field depicts the delay domain of the trace path,
+ whether it is in seconds, milliseconds, microseconds
+ or nanoseconds.";
+ }
+
+ leaf trace-op {
+ type enumeration {
+ enum add {
+ value 0;
+ description "Add new and fill trace information.";
+ }
+ enum update {
+ value 1;
+ description "Update existing trace information.";
+ }
+ enum remove {
+ value 2;
+ description "Decap or remove existing trace information.";
+ }
+ }
+
+ mandatory true;
+ description
+ "The type of trace element operation that the service node
+ handling this profile should do. The options are to add the
+ trace elements, update the trace elements or to remove the
+ trace elements.";
+ }
+
+ leaf trace-app-data {
+ type uint32;
+ description
+ "Application specific data to be added by the node";
+ }
+
+ leaf node-id {
+ type uint32;
+ mandatory true;
+ description
+ "iOAM Service Node id assigned to this node";
+ }
+
+ list node-interfaces {
+ key "index";
+ ordered-by system;
+ description
+ "List of node's interfaces on which the trace configuration
+ need to be applied. Typically this is to all interfaces
+ but can be filtered.";
+
+ leaf index {
+ type uint32;
+ mandatory true;
+ description
+ "Index for the interfaces list";
+ }
+
+ leaf intf-name {
+ type ietf-if:interface-ref;
+ mandatory true;
+ description
+ "Instance of ietf-interfaces:interface-ref";
+ }
+ }
+
+ /*** links to ioam-sb-data-export ***/
+ leaf data-export-profile-name {
+ type string;
+ description
+ "The data export profile name with server information to
+ send data to.";
+ }
+
+ /*** Transport encap profiles. Not used currently ***/
+ leaf transport-encap-profile-name {
+ type string;
+ description
+ "The transport encap profile name with sub configurations for
+ handling transport encap.";
+ }
+/*** list: end ***/
+ }
+/*** container: end ***/
+ }
+/*** module: end ***/
+}