netconfcentral logo

ieee1906-dot1-properties@2020-07-07



  module ieee1906-dot1-properties {

    yang-version 1.1;

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

    prefix ieee1906-properties;

    import ieee1906-dot1-si-units {
      prefix ieee1906-dot1-si-units;
    }

    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 experimental YANG module is an individual contribution, and
	  does not represent a formally sanctioned YANG module by IEEE.
	  Therefore, this YANG module will change in incompatible ways
	  from its current revision to the formally published YANG
	  module for IEEE 1906.1.1 Standard Data Model for Nanoscale
	  Communication Systems.

	  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.

	  This module defines generic properties users are invited to augment
	  to associate their model to the framework.";

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


    grouping property {
      description
        "This is a convenience grouping for the IEEE 1906.1-2015 framework.
This relates any conceptual object to a 'property'.";
      leaf timestamp {
        type ieee1906-dot1-si-units:time;
        description
          "Gives a timestamp for a snapshot of the system, relating
metrics to a reference in simulation time.";
      }

      leaf length {
        type empty;
        description
          "Gives users options to annotate this leaf, thus declaring to
the system which SI unit is used to describe length for this
component and its child nodes (e.g. for this XML element and
its children).

All derived units will depend on this property. If for
instance, length is in nanometer, and time is in second, then
it is expected that speed will be in nanometer.second-1, unless
annotation of the specific leaf tells something different.

If omitted, defaults to 'meter'.

The implementation of the framework must ensure annotation
matches a length, otherwise it must ensure NETCONF server
sends back appropriate rpc-error, like maybe bad attribute.";
      }

      leaf scale {
        type union {
          type enumeration {
            enum "Planck" {
              value 0;
            }
            enum "quantum" {
              value 1;
            }
            enum "nanoscale" {
              value 2;
            }
            enum "microscale" {
              value 3;
            }
            enum "macroscale" {
              value 4;
            }
            enum "interplanetary" {
              value 5;
            }
            enum "relativistic" {
              value 6;
            }
          }
          type enumeration {
            enum "less-than-1um" {
              value 0;
            }
            enum "less-than-100nm" {
              value 1;
            }
            enum "less-than-10nm" {
              value 2;
            }
          }
        }
        default "nanoscale";
        description
          "Defines a generic scale for this system. If omitted, it is
understood that it is a nanoscale system (<1um).";
      }

      leaf mass {
        type empty;
        description
          "Gives users options to annotate this leaf, thus declaring to
the system which SI unit is used to describe mass for this
component and its child nodes (e.g. for this XML element and
its children).

All derived units will depend on this property.

If omitted, defaults to 'kilogram'.

The implementation of the framework must ensure annotation
matches a length, otherwise it must ensure NETCONF server
sends back appropriate rpc-error, like maybe bad attribute.";
      }

      leaf time {
        type empty;
        description
          "Gives users options to annotate this leaf, thus declaring to
the system which SI unit is used to describe time for this
component and its child nodes (e.g. for this XML element and
its children).

All derived units will depend on this property.

If omitted, defaults to 'second'.

The implementation of the framework must ensure annotation
matches a length, otherwise it must ensure NETCONF server
sends back appropriate rpc-error, like maybe bad attribute.";
      }

      leaf duration {
        type empty;
        description
          "It is simply another way of naming time. If time is
already defined as property with its si unit annotated,
then it must be treated as an error if this leaf is also
present as property.";
      }

      leaf electric-current {
        type empty;
        description
          "Gives users options to annotate this leaf, thus declaring to
the system which SI unit is used to describe electric current for this
component and its child nodes (e.g. for this XML element and
its children).

All derived units will depend on this property.

If omitted, defaults to 'ampere'.

The implementation of the framework must ensure annotation
matches a length, otherwise it must ensure NETCONF server
sends back appropriate rpc-error, like maybe bad attribute.";
      }

      leaf thermodynamic-temperature {
        type empty;
        description
          "Gives users options to annotate this leaf, thus declaring to
the system which SI unit is used to describe temperature for this
component and its child nodes (e.g. for this XML element and
its children).

All derived units will depend on this property.

If omitted, defaults to 'kelvin'.

The implementation of the framework must ensure annotation
matches a length, otherwise it must ensure NETCONF server
sends back appropriate rpc-error, like maybe bad attribute.";
      }

      leaf amount-of-substance {
        type empty;
        description
          "Gives users options to annotate this leaf, thus declaring to
the system which SI unit is used to describe amount of substance for this
component and its child nodes (e.g. for this XML element and
its children).

All derived units will depend on this property.

If omitted, defaults to 'mole'.

The implementation of the framework must ensure annotation
matches a length, otherwise it must ensure NETCONF server
sends back appropriate rpc-error, like maybe bad attribute.";
      }

      leaf luminous-intensity {
        type empty;
        description
          "Gives users options to annotate this leaf, thus declaring to
the system which SI unit is used to describe luminous intensity for this
component and its child nodes (e.g. for this XML element and
its children).

All derived units will depend on this property.

If omitted, defaults to 'candela'.

The implementation of the framework must ensure annotation
matches a length, otherwise it must ensure NETCONF server
sends back appropriate rpc-error, like maybe bad attribute.";
      }

      leaf-list derived-unit {
        type identityref {
          base ieee1906-dot1-si-units:si-derived-unit;
        }
        description
          "Gives users options to annotate this specific SI derived unit,
thus declaring to the system which SI unit is used the said
derived unit for this component and its child nodes (e.g. for
this XML element and its children).

All derived units will depend on this property.

The list does not have to be complete. Omitted derived units
default to their SI definitions, or derive from base units if
they are defined. For example, the annotation may contradict
its base unit: if system defines time in millisecond, frequency
is in kilohertz if not specified, or if this derived-unit refers
to frequency, any other units, such as TeraHertz can be used.
However, tools and plugins checking balance of units may raise
errors.

The implementation of the framework must ensure annotation
matches corresponding derived SI unit, otherwise it must ensure
NETCONF server sends back appropriate rpc-error, like maybe
bad attribute.";
      }
    }  // grouping property
  }  // module ieee1906-dot1-properties