netconfcentral logo

ietf-pot-profile@2016-06-15



  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.";
        }
      }  // list pot-profile-list
    }  // grouping pot-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";
        }

        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 pot-profile-set
    }  // container pot-profiles
  }  // module ietf-pot-profile