This is the YANG model for the IEEE 1906.1-2015 - Recommended Practice for Nanoscale and Molecular Communication Framework. Cl...
Version: 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.