From 179623414d44d6d85ced60b0e99a2c47a7e0bbf6 Mon Sep 17 00:00:00 2001 From: Sagar Srivastav Date: Thu, 24 Nov 2016 22:17:48 -0800 Subject: HC-256: support for iOAM - Proof Of Transit Change-Id: Ib4260b9b11dbca7016b7b85763d9186d7add0f53 Signed-off-by: Sagar Srivastav --- ioam/api/src/main/yang/sfc-ioam-sb-pot.yang | 168 ++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 ioam/api/src/main/yang/sfc-ioam-sb-pot.yang (limited to 'ioam/api/src/main/yang') 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 + Srihari Raghavan "; + + 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 -- cgit 1.2.3-korg