module ietf-pot-profile { yang-version 1; namespace "urn:ietf:params:xml:ns:yang:ietf-pot-profile"; prefix ietf-pot-profile; organization "IETF xxx Working Group"; contact ""; description "This module contains a collection of YANG definitions for proof of transit configuration parameters. The model is meant for proof of transit and is targeted for communicating the POT-profile between a controller and nodes participating in proof of transit."; 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 odd or even profiles."; } grouping pot-profile { description "A grouping for proof of transit profiles."; list pot-profile-list { key "pot-profile-index"; ordered-by user; description "A set of pot profiles."; leaf pot-profile-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 "Pre evaluated 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 controlling the size of the 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 "pot-profile-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 pot-profile-name { type string; mandatory true; description "Unique identifier for each proof of transit profile"; } 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; } /*** Container: end ***/ } /*** module: end ***/ }