ieee1906-dot1-components

This is the YANG model for the IEEE 1906.1-2015 - Recommended Practice for Nanoscale and Molecular Communication Framework. Cl...

  • Version: 2020-12-07

    ieee1906-dot1-components@2020-12-07


    
      module ieee1906-dot1-components {
    
        yang-version 1.1;
    
        namespace
          "urn:ieee:std:1906.1:yang:ieee1906-dot1-components";
    
        prefix ieee1906-components;
    
        import ietf-interfaces {
          prefix if;
        }
        import ieee1906-dot1-types {
          prefix ieee1906-dot1-types;
        }
        import ieee1906-dot1-metrics {
          prefix ieee1906-dot1-metrics;
        }
        import ieee1906-dot1-definitions {
          prefix ieee1906-dot1-definitions;
        }
        import ieee1906-dot1-properties {
          prefix properties;
        }
    
        organization
          "IEEE Std 1906.1-2015 - Recommended Practice for Nanoscale and
    Molecular Communication Framework Working Group";
    
        contact
          "IEEE 1906.1.1 Working Group
    Chair: Stephen F. Bush <bushsf@research.ge.com>
    Secretary: Guillaume Mantelet <gmantelet@voltigeurnetworks.com>";
    
        description
          "This is the YANG model for the IEEE 1906.1-2015 - Recommended
    Practice for Nanoscale and Molecular Communication Framework.
    Clause 5 - Framework of a molecular and nanoscale communication
    network.";
    
        revision "2020-12-07" {
          description "Initial version.";
          reference
            "[1] 'IEEE Recommended Practice for Nanoscale and Molecular
                 Communication Framework,' in IEEE Std 1906.1-2015, pp.1-64,
                 Jan. 11 2016 doi: 10.1109/IEEESTD.2016.7378262
            
            	[2] S. F. Bush, 'Active network architecture' in Nanoscale
            	    Communication Networks, pp. 209-217, 2010, Artech House.
            
            	[3] S. F. Bush, J. L. Paluh, G. Piro, V. Rao, R. V. Prasad and
            	    A. Eckford, 'Defining Communication at the Bottom,' in IEEE
            	    Transactions on Molecular, Biological and Multi-Scale
            	    Communications, vol. 1, no. 1, pp. 90-96, March 2015.
            	    doi: 10.1109/TMBMC.2015.2465513";
    
        }
    
    
        grouping component {
          description
            "This is the main grouping for the IEEE 1906.1-2015 framework. This relates any
    conceptual object to a 'component' and provides access to the corresponding metrics
    and configuration data.";
          list component {
            key "identifier";
            description
              "A list of 1906.1 compatible objects in any nanoscale model.";
            leaf name {
              type string;
              description
                "An optional name to describe what is this component in the
    non 1906.1 model.
    
    For example, a neuron model reusing 1906.1 framework could
    use 'axon' as a name for one of its components.";
            }
    
            leaf description {
              type string;
              description
                "An optional string to describe what does this component in
    the non 1906.1 model.
    
    For example, a neuron model reusing 1906.1 framework could
    specify what this 'axon' is supposed to do in its
    corresponding model.";
            }
    
            leaf identifier {
              type string;
              description
                "A unique identifier for this component to be associated to
    the non 1906.1 model.
    
    For example, a neuron axon can be comprised of multiple
    sections. Each of the section should be uniquely identified
    by the underlying model to store statistics or retrieve
    configuration, simulate a fault etc.";
            }
    
            leaf human-designed {
              type boolean;
              default "false";
              description
                "'Human-designed' means a system that occurs as a result of 
    conscious human intervention. For clarity, human-designed 
    systems may include naturally occurring components in an 
    arrangement or for a purpose that is not otherwise 
    naturally occurring.";
            }
    
            container properties {
              description
                "This container stores the list of optional properties that 
    provide extra definition of the component, or make this 
    component attribute supersedes corresponding system (or 
    parent component) corresponding attribute.";
              uses properties:property;
            }  // container properties
    
            leaf type-of-component {
              type identityref {
                base ieee1906-dot1-types:component;
              }
              mandatory true;
              description
                "Identifies this component from the non 1906.1 model to a
    1906.1 compatible component.
    
    For example, a neurotransmitter can be considered a 'message-carrier'.
    This leaf automatically selects the correct type of metric to display.
    
    See the following list of 'uses'. The underlying Metrics define a 'when'
    statement making them valid and usable if the type-of-components matches
    them.";
            }
    
            leaf-list sub-definition {
              type instance-identifier;
              description
                "Identifies the list of child definitions that are part of
    this definition. There shall be 0 or more child definition
    and child definition shall be of any type.";
            }
    
            leaf-list next-definition {
              type instance-identifier;
              description
                "Identifies the list of sibling definitions attached to this
    definition in a unidirectional way. There shall be 0 or more
    next definitions and next definition shall be of any type.
    
    This leaf-list helps identify the components along the
    data path of a message, and shall help build a tree or a
    bus.";
            }
    
            leaf-list sub-component {
              type instance-identifier;
              description
                "Identifies the list of child components that are part of
    this component. There shall be 0 or more child components
    and child components shall be of any type.
    
    For example, a nanoscale interface shall be comprised of a
    transmitter and a receiver sub-components, and a
    transmitter shall be comprised of a perturbation and a
    field sub-components while the receiver is made of a
    specificity sub-component.";
            }
    
            leaf-list next-component {
              type instance-identifier;
              description
                "Identifies the list of sibling components attached to this
    component in a unidirectional way. There shall be 0 or more
    next components and next components shall be of any type.
    
    This leaf-list helps identify the components along the
    data path of a message, and shall help build a tree or a
    bus.
    
    For example, an axon is a set of microtubules. In its
    simple form, this model shall help identify that
    microtubule identified MT_00 is connected to the soma
    (a perturbation component) and MT_01 is connected to MT_00
    helping the simulation or a remote tool to build the
    hierarchy of the biological model from that YANG module.";
            }
    
            uses ieee1906-dot1-metrics:motion-metrics;
    
            uses ieee1906-dot1-metrics:field-metrics;
    
            uses ieee1906-dot1-metrics:specificity-metrics;
          }  // list component
        }  // grouping component
    
        augment /if:interfaces/if:interface {
          description
            "Augment IETF interface when the nanoscale system can
    coexist within a classical network. Otherwise, the 
    system can be a pure scientific 'self-contained' 1906.1 
    nanoscale system which cannot augment ietf-interface.";
          container nanoscale-interface {
            when
              "derived-from-or-self(/if:interfaces/if:interface/if:type,
    'ieee1906-dot1-types:nanoscale-communication-interface')";
            if-feature ieee1906-dot1-types:nanoscale-interface;
            description
              "Addition of data nodes for the nanoscale communication
    interface to the standard Interface data model, for
    interfaces of the type 'nanoscale-communication-
    interface'.";
            container definitions {
              description
                "This container stores the list of definitions that
    are part of the system.";
              uses ieee1906-dot1-definitions:definition;
            }  // container definitions
    
            container components {
              description
                "This container stores the list of components that
    are part of the system.";
              uses component;
            }  // container components
    
            container properties {
              description
                "This container stores the list of optional
    properties that provide extra definition of the
    system.";
              uses properties:property;
            }  // container properties
    
            uses ieee1906-dot1-metrics:system-metrics;
          }  // container nanoscale-interface
        }
      }  // module ieee1906-dot1-components
    

© 2023 YumaWorks, Inc. All rights reserved.