diff options
author | Srihari Raghavan <srihari@cisco.com> | 2016-10-27 15:23:36 +0530 |
---|---|---|
committer | Srihari Raghavan <srihari@cisco.com> | 2016-11-03 18:26:00 +0530 |
commit | e83f0e1d6451c96ef9850b4a8b058c4b5c307617 (patch) | |
tree | a13b6175ba62b510ea7a3b4de6ea7447dbe8931d /ioam/api | |
parent | 096e3e9a8b66970ed0b4a0e7f45dbd349902b20d (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.adoc | 3 | ||||
-rw-r--r-- | ioam/api/pom.xml | 38 | ||||
-rw-r--r-- | ioam/api/src/main/yang/ioam-sb-trace.yang | 184 |
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 ***/ +} |