netconfcentral logo

ieee1906-dot1-nanivid@2020-07-07



  module ieee1906-dot1-nanivid {

    yang-version 1.1;

    namespace
      "urn:ieee:std:1906.1:yang:ieee1906-dot1-nanivid";

    prefix ieee1906-nanivid;

    import ieee1906-dot1-system {
      prefix system;
    }
    import ieee1906-dot1-types {
      prefix types;
    }

    organization
      "P1906.1.1/D1.0 Draft Standard Data Model for Nanoscale Communication Systems Working Group";

    contact
      "IEEE P1906.1.1 Working Group
		 Chair: Stephen F. Bush <bushsf@research.ge.com>
		 Secretary: Guillaume Mantelet <gmantelet@voltigeurnetworks.com>";

    description
      "This is an example illustrating how to refine the 1906.1 framework
                 to include specific details regarding NANIVID experiment.";

    revision "2020-07-07" {
      description "Initial version.";
    }


    feature nanivid {
      description
        "This nanoscale system is part of nanivid experiment.";
    }

    identity brownian-motion {
      base types:diffusion;types:non-standard-physics;
      description
        "A diffusion-based motion ruled by the laws of Brownian 
                 movement. Because it inherits from diffusion which 
                 itself inherits from motion, a component pointing to 
                 this type shall have access to motion metrics.";
    }

    identity diffusion-from-concentrated-source {
      base types:message-carrier;
      description
        "A transmitter emits a time-sensitive amount of solute that 
                 defines the intensity of a signal. Above a certain 
                 concentration, the transmitter signals a 'one', 'on' or 'true'
                 message, otherwise it can be considered 'zero', 'off', or 
                 'false'. The signal moves through the medium by diffusion and
                 the receiver measures the corresponding 'concentration' as a 
                 function of time.";
    }

    grouping brownian-motion-metrics {
      description
        "This is a placeholder for Brownian motion metrics being used 
                 as non-standard physics in this model.";
      container brownian-motion-metrics {
        when
          "derived-from-or-self(../type-of-component, 'brownian-motion')";
        description
          "The parent component must have a leaf of type 'brownian-
                   motion' in order to be eligible to use this container.";
      }  // container brownian-motion-metrics
    }  // grouping brownian-motion-metrics

    container nanivid {
      description
        "Redefined nanoscale-system for our nanivid experiment, in 
                 which we provide an extra subtree.";
      uses system:system {
        augment components/component {
          if-feature nanivid;
          description
            "Augment nanoscale system with the brownian motion defined
                     in NANIVID example.";
          uses brownian-motion-metrics;
        }
      }
    }  // container nanivid
  }  // module ieee1906-dot1-nanivid