summaryrefslogtreecommitdiffstats
path: root/ioam/api
diff options
context:
space:
mode:
Diffstat (limited to 'ioam/api')
-rw-r--r--ioam/api/src/main/yang/sfc-ioam-sb-pot.yang168
1 files changed, 168 insertions, 0 deletions
diff --git a/ioam/api/src/main/yang/sfc-ioam-sb-pot.yang b/ioam/api/src/main/yang/sfc-ioam-sb-pot.yang
new file mode 100644
index 000000000..ff39b2511
--- /dev/null
+++ b/ioam/api/src/main/yang/sfc-ioam-sb-pot.yang
@@ -0,0 +1,168 @@
+module sfc-ioam-sb-pot {
+
+ yang-version 1;
+
+ namespace "urn:cisco:params:xml:ns:yang:sfc-ioam-sb-pot";
+
+ prefix sfc-ioam-sb-pot;
+
+ organization "Cisco Systems, Inc.";
+ contact
+ "Shwetha Bhandari <shwethab@cisco.com>
+ Srihari Raghavan <srihari@cisco.com>";
+
+ description
+ "This module contains a collection of YANG definitions for
+ managing in-band OAM based proof of transit configuration
+ parameters. (https://github.com/ciscodevnet/ioam).
+ The model is meant for proof of transit
+ and is targetted for south-bound deployment nodes.";
+
+ revision 2016-06-15 {
+ description
+ "Initial revision.";
+ reference
+ "";
+ }
+
+ typedef profile-index-range {
+ type int32 {
+ range "0 .. 1";
+ }
+ description
+ "Range used for the profile index. Currently restricted to
+ 0 or 1 to identify the two profiles.";
+ }
+
+ identity path-identifier-identity {
+ description
+ "Base identity for path identifier type.";
+ }
+
+ identity path-identifier-type-acl {
+ base "path-identifier-identity";
+ description
+ "ACL path identifier type.";
+ }
+
+ typedef path-identifier-type {
+ type identityref {
+ base path-identifier-identity;
+ }
+ description
+ "Path Identifier Identity type.";
+ }
+
+ grouping pot-profile {
+ description "A grouping for proof of transit profiles.";
+ list pot-profile-list {
+ key "index";
+ ordered-by user;
+ description "A set of pot profiles.";
+
+ leaf index {
+ type profile-index-range;
+ mandatory true;
+ description
+ "Proof of transit profile index.";
+ }
+
+ leaf prime-number {
+ type uint64;
+ mandatory true;
+ description
+ "Prime number used for module math computation";
+ }
+
+ leaf secret-share {
+ type uint64;
+ mandatory true;
+ description
+ "Share of the secret of polynomial 1 used in computation";
+ }
+
+ leaf public-polynomial {
+ type uint64;
+ mandatory true;
+ description
+ "Public polynomial";
+ }
+
+ leaf lpc {
+ type uint64;
+ mandatory true;
+ description
+ "Lagrange Polynomial Coefficient";
+ }
+
+ leaf validator {
+ type boolean;
+ default "false";
+ description
+ "True if the node is a verifier node";
+ }
+
+ leaf validator-key {
+ type uint64;
+ description
+ "Secret key for validating the path, constant of poly 1";
+ }
+
+ leaf bitmask {
+ type uint64;
+ default 4294967295;
+ description
+ "Number of bits as mask used in random value generation.
+ 32-bits of mask is default.";
+ }
+ }
+ }
+
+ container pot-profiles {
+ description "A group of proof of transit profiles.";
+
+ list pot-profile-set {
+ key "name";
+ ordered-by user;
+ description
+ "Set of proof of transit profiles that group parameters
+ required to classify and compute proof of transit
+ metadata at a node";
+
+ leaf name {
+ type string;
+ mandatory true;
+ description
+ "Unique identifier for each proof of transit profile";
+ }
+
+ leaf path-identifier {
+ type string;
+ description
+ "The path identifier could be an ACL or others associated
+ to classify and apply this profile";
+ }
+
+ leaf path-identifier-type-value {
+ type path-identifier-type;
+ default path-identifier-type-acl;
+ description
+ "Defines how to interpret the path-identifier.";
+ }
+
+ leaf active-profile-index {
+ type profile-index-range;
+ description
+ "Proof of transit profile index that is currently active.
+ Will be set in the first hop of the path or chain.
+ Other nodes will not use this field.";
+ }
+
+ uses pot-profile;
+
+ /*** list: end ***/
+ }
+ /*** Container: end ***/
+ }
+/*** module: end ***/
+} \ No newline at end of file