This module contains a collection of YANG definitions for proof of transit configuration parameters. The model is meant for proo...
Version: 2020-09-08
module ietf-pot-profile { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-pot-profile"; prefix pot; import ietf-netconf-acm { prefix nacm; reference "RFC 8341: Network Configuration Access Control Model"; } organization "IETF SFC Working Group"; contact "WG Web: <https://tools.ietf.org/wg/sfc/> WG List: <mailto:sfc@ietf.org> Author : Frank Brockners <fbrockne@cisco.com> Author : Shwetha Bhandari <shwethab@cisco.com> Author : Tal Mizrahi <tal.mizrahi.phd@gmail.com>"; 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. Copyright (c) 2020 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; revision "2020-09-08" { description "Initial revision."; reference "RFC XXXX: Proof of Transit"; } 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 status { type boolean; default "false"; description "True if this profile is currently active. Will be used by the first hop of the path or chain. Other nodes will not use this field."; } leaf prime-number { nacm:default-deny-all; type uint64; mandatory true; description "Prime number used for module math computation"; } leaf secret-share { nacm:default-deny-all; type uint64; mandatory true; description "Share of the secret of polynomial-1 used in computation for the node. If POLY-1 is defined by points (x1_i, y1_i) with i=0,..k, then for node i, the secret-share will be y1_i."; } leaf public-polynomial { type uint64; mandatory true; description "Public polynomial value for the node. If POLY-2 is defined by points (x2_i, y2_i) with i=0,..k, then for node i, the secret-share will be y2_i."; } 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 { nacm:default-deny-all; type uint64; description "The validator-key represents the secret. The secret is the constant coefficient of POLY-1(z). If POLY-1(z) = a_0 + a_1*z + a_2*z^2+..+a_k*z^k, then the SECRET would be a_0."; } 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."; } uses opot-profile; } // list pot-profile-list } // grouping pot-profile grouping opot-profile { description "Grouping containing OPoT related data."; container opot-masks { must "count(downstream-mask) = count(upstream-mask)"; description "Masking information for OPoT support."; leaf-list downstream-mask { type uint64; max-elements 2; description "Secret stream used to demask the PoT metadata. The mask is used between nodes adjacent in the path and MUST have a length equal to the sum of the ones of RND and CML."; } leaf-list upstream-mask { type uint64; max-elements 2; description "Secret stream used to mask the PoT metadata. The mask is used between nodes adjacent in the path and MUST have a length equal to the sum of the ones of RND and CML."; } } // container opot-masks } // grouping opot-profile 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"; } uses pot-profile; } // list pot-profile-set } // container pot-profiles } // module ietf-pot-profile
© 2023 YumaWorks, Inc. All rights reserved.