netconfcentral logo

ieee1906-dot1-metrics@2020-07-07



  module ieee1906-dot1-metrics {

    yang-version 1.1;

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

    prefix ieee1906-dot1-metrics;

    import ieee1906-dot1-types {
      prefix ieee1906-dot1-types;
    }
    import ieee1906-dot1-si-units {
      prefix ieee1906-dot1-si-units;
    }
    import ieee1906-dot1-function {
      prefix ieee1906-dot1-function;
    }
    import ieee1906-dot1-math {
      prefix ieee1906-dot1-math;
    }
    import ieee1906-dot1-information {
      prefix ieee1906-dot1-information;
    }

    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 6 - Metrics";

    revision "2020-07-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 probability-density {
      list density-function {
        key "probability-sample";
        description
          "A list of probabilities forming a probability density function.";
        leaf probability-sample {
          type ieee1906-dot1-math:probability;
          units "probability";
          description
            "A sample probability in the probability density.";
        }
      }  // list density-function
    }  // grouping probability-density

    typedef derivative {
      type ieee1906-dot1-function:variable;
      units "d/dx";
      description
        "The slope of a line at a point on the line.";
    }

    typedef math-package {
      type enumeration {
        enum "MATLAB" {
          value 0;
          description
            "The equation is written in native MATLAB format.";
        }
        enum "Mathematica" {
          value 1;
          description
            "The equation is written in native Mathematica format.";
        }
        enum "Maple" {
          value 2;
          description
            "The equation is written in native Maple format.";
        }
        enum "Octave" {
          value 3;
          description
            "The equation is written in native Octave format.";
        }
      }
    }

    grouping math-expression {
      container math-formula {
        leaf expression {
          type string;
          description
            "A mathematical expression.";
        }

        leaf package {
          type math-package;
          description
            "The math package that reads the expression in its native format.";
        }

        leaf version {
          type string;
          description
            "The version of the math package assumed.";
        }
      }  // container math-formula
    }  // grouping math-expression

    grouping langevin-equation {
      leaf m {
        type ieee1906-dot1-si-units:mass;
        units "kilogram";
        description
          "The mass of the message carrier.";
      }

      leaf x {
        type ieee1906-dot1-function:variable;
        units "meter";
        description
          "The position of a message carrier.";
      }

      leaf t {
        type ieee1906-dot1-function:variable;
        units "second";
        description "The current time.";
      }

      leaf lambda {
        type ieee1906-dot1-function:variable;
        units "kilogram second^-1";
        description
          "The systematic part of the molecular force (field component). The unit is momentum.";
      }

      leaf eta {
        type ieee1906-dot1-function:variable;
        units "kilogram meter second^-2";
        description
          "The random component of force (motion component). The unit is a Newton.";
      }
    }  // grouping langevin-equation

    typedef diffusion-coefficient {
      type ieee1906-dot1-function:variable;
      units "nanometer^2 second^-1";
      description
        "Diffusivity or diffusion coefficient is a proportionality constant between the molar flux due to molecular diffusion and the gradient in the concentration of the species (or the driving force for diffusion).";
    }

    grouping ficks-1-law {
      leaf J {
        type ieee1906-dot1-function:variable;
        units "mole meter^-2 second^-1";
        description
          "The diffusion flux, which is the amount of substance per unit area per unit time, for example (mol/m^2 × s); it measures the amount of substance that will flow through a small area during a small time interval.";
      }

      leaf D {
        type diffusion-coefficient;
        description
          "The diffusion coefficient or mass diffusivity in dimensions of length^2 time^−1, for example (m^2/s).";
      }

      leaf phi {
        type ieee1906-dot1-function:variable;
        units "mole meter^-3";
        description
          "For ideal mixtures, this is the concentration in dimensions of amount of substance per unit volume, for example (mol m^-3).";
      }

      leaf x {
        type ieee1906-dot1-function:variable;
        units "meter";
        description
          "The position (length), for example, in meters.";
      }
    }  // grouping ficks-1-law

    grouping message-metrics {
      description
        "These metrics deal with the information encoded within a
Message and how the Message is impacted by the channel and
intended target. Metrics a) through d) shall be implemented.
Metric e) may be implemented.";
      reference
        "IEEE 1906.1-2015 Clause 6";

      container message-metrics {
        when
          "derived-from-or-self(../type-of-definition, 'ieee1906-dot1-types:message')";
        description
          "The parent definition must have a leaf of type 'message' 
in order to be eligible to use this container.";
        leaf message-deliverability {
          type ieee1906-dot1-math:probability;
          description
            "Message Deliverability measures whether a Message Carrier
survives long enough to deliver its information to the
intended receiver.

Message Deliverability (MD) assumes messages have a finite
time-to-live (TTL). Thus, MD = P(tr < TTL) where tr is the
age of the message at the time of reception by the
destination to which the message was addressed. TTL is
defined in 6.2.

This leaf can be named.";
          reference
            "IEEE 1906.1-2015 Clause 6.1";

        }

        leaf message-lifetime {
          type ieee1906-dot1-si-units:time;
          description
            "Message Lifetime measures the lifetime of a Message
Carrier. TTL is used in 6.1.";
          reference
            "IEEE 1906.1-2015 Clause 6.2";

        }

        uses ieee1906-dot1-information:information-density;

        container bandwidth-delay-product {
          description
            "Bandwidth-Delay Product is proportional to the maximum number of Message Carriers capable of fitting within the physical channel.";
          reference
            "IEEE 1906.1-2015 Clause 6.4";

          leaf channel-bandwidth {
            type ieee1906-dot1-function:variable;
            description
              "The bits per second transported by the nanoscale communication channel.";
          }

          leaf channel-delay {
            type ieee1906-dot1-function:variable;
            description
              "The time for a message to propagate from one end of a channel to the other.";
          }
        }  // container bandwidth-delay-product

        container information-and-communication-energy {
          description
            "This is the metric that quantifies energy used in nanoscale communication.
This is energy per bit of information conveyed by the Motion Component.";
          reference
            "IEEE 1906.1-2015 Clause 6.5";

          leaf energy-message-delivery {
            type ieee1906-dot1-function:variable;
            description
              "The energy used to transport a message across a channel.";
          }

          leaf information-message-delivery {
            type ieee1906-dot1-function:variable;
            description
              "The amount of information in a message.";
          }
        }  // container information-and-communication-energy
      }  // container message-metrics
    }  // grouping message-metrics

    grouping motion-metrics {
      description
        "Motion component: These metrics are strongly related to the Motion
Component, which describes Message Carrier motion. Either both a) and
b) shall be implemented or c) shall be implemented.";
      container motion-metrics {
        when
          "derived-from-or-self(../type-of-component, 'ieee1906-dot1-types:motion')";
        description
          "The parent component must have a leaf of type 'motion'
in order to be eligible to use this container.";
        container collision-behavior {
          description
            "Collision Behavior measures the physical result of collision between
	   Message Carriers.";
          reference
            "IEEE 1906.1-2015 Clause 6.6";

          leaf coefficient-of-restitution {
            type ieee1906-dot1-math:proper-fraction;
            units "unitless";
            description
              "A measure of the 'restitution' of a collision between two objects: how much
of the kinetic energy remains for the objects to rebound from one another vs.
how much is lost as heat, or work done deforming the objects. The coefficient
is defined as the ratio of relative speeds after and before an impact, taken
along the line of the impact.";
          }

          leaf speed-before-collision {
            type ieee1906-dot1-si-units:velocity;
            description
              "The speed of a message carrier loaded with message before collision.";
          }

          leaf speed-after-collision {
            type ieee1906-dot1-si-units:velocity;
            description
              "The speed of a message carrier loaded with message after collision.";
          }
        }  // container collision-behavior

        container mass-displacement {
          description
            "Molecular communication can assume Message Carriers are
	   composed of mass and move from one location to another.";
          reference
            "IEEE 1906.1-2015 Clause 6.7";

          leaf mass-displacement {
            type ieee1906-dot1-function:variable;
            description
              "Value of the mass displacement.";
          }

          leaf x {
            type ieee1906-dot1-si-units:mass;
            units "kilogram";
            description "Mass at time t.";
          }

          leaf T {
            type ieee1906-dot1-si-units:time;
            units "second";
            description
              "Sample period (the time between each sample).";
          }

          leaf tau {
            type ieee1906-dot1-si-units:time;
            units "second";
            description "Sample time";
          }

          leaf M {
            type ieee1906-dot1-function:variable;
            units "unitless";
            description "Number of samples";
          }
        }  // container mass-displacement

        container positioning-accuracy-of-message-carriers {
          description
            "Multiple swarms of message carriers can be controlled like unified organisms
to swim along predetermined paths toward the receiver by an external macro-unit
(e.g., an agglomeration of flagellated magnetotactic bacteria can be utilized as
efficient carriers of nanoloads and guided toward an aggregation zone by a magnetic
field generated in custom-made magnetic resonance imaging systems). It is defined
as the radius of the circle hat has its center at the mean and contains a given
percentage of half the realizations of the location estimates (i.e., the performance
measure of circular error probable in the classical geolocation context).";
          reference
            "IEEE 1906.1-2015 Clause 6.8";

          leaf radius {
            type ieee1906-dot1-si-units:length;
            units "nanometer";
          }

          leaf position {
            type ieee1906-dot1-si-units:length;
            description
              "The location of the center of mass of the message carriers.";
          }

          leaf accuracy-percent {
            type ieee1906-dot1-math:percent;
            description
              "Then number of message carriers located within the given area or volume.";
          }
        }  // container positioning-accuracy-of-message-carriers
      }  // container motion-metrics
    }  // grouping motion-metrics

    grouping field-metrics {
      description
        "Field component: These metrics relate to the degree to which Message Carrier motion
can be controlled such that it follows an intended gradient. Diffusive Flux is used
in Brownian motion and can be modeled by Levy or Weiner processes and can also be
described by the Langevin Noise. At least one of a), b), or c) shall be implemented
in order to describe Message Carrier motion.";
      container field-metrics {
        when
          "derived-from-or-self(../type-of-component, 'ieee1906-dot1-types:field')";
        description
          "The parent component must have a leaf of type 'field'
in order to be eligible to use this container.";
        container persistence-length {
          description
            "Persistence Length is a measure of the degree to which a chain-like structure
is either soft (like strings of cooked spaghetti) or rigid (like metal rods).";
          reference
            "IEEE 1906.1-2015 Clause 6.9";

          list unit-tangent-vectors {
            key "segment-index";
            leaf segment-index {
              type uint32;
              description "A segment index.";
            }

            leaf s {
              type ieee1906-dot1-si-units:length;
              description
                "The position of a unit tangent sample.";
            }

            container u-s {
              description
                "The unit tangent vector at point s in set of connected segments.";
              uses ieee1906-dot1-math:nabla;
            }  // container u-s
          }  // list unit-tangent-vectors

          container u-0 {
            description
              "Unit tangent vector at the origin or beginning of the chain of connected segments";
            uses ieee1906-dot1-math:nabla;
          }  // container u-0

          leaf zeta-p {
            type ieee1906-dot1-si-units:length;
            units "nanometer";
            description
              "The persistence length.";
          }
        }  // container persistence-length

        container diffusive-flux {
          description
            "Fick’s First Law is one of the standard laws of diffusion.";
          reference
            "IEEE 1906.1-2015 Clause 6.10";

          uses ficks-1-law {
            description
              "This metric is derived from Fick's First Law.";
          }
        }  // container diffusive-flux

        container langevin-noise {
          description
            "Random motion has a significant impact upon the performance of Message Carriers,
in particle form, to reach their target receivers.";
          reference
            "IEEE 1906.1-2015 Clause 6.11";

          uses langevin-equation {
            description
              "Langevin noise is a term in the general Langevin equation.";
          }
        }  // container langevin-noise
      }  // container field-metrics
    }  // grouping field-metrics

    grouping specificity-metrics {
      description
        "Specificity component: These metrics are related to the ability of a Message Carrier
to deliver a Message to its intended target. Metrics a), c), and e) shall be implemented;
metrics b) or d) may be implemented.";
      container specificity-metrics {
        when
          "derived-from-or-self(../type-of-component, 'ieee1906-dot1-types:specificity')";
        description
          "The parent component must have a leaf of type 'specificity'
in order to be eligible to use this container.";
        leaf specificity {
          type ieee1906-dot1-math:percent;
          description
            "A measure of precision in matching between components. See also: sensitivity.";
          reference
            "IEEE 1906.1-2015 Clause 6.12";

        }

        leaf affinity {
          type ieee1906-dot1-function:variable;
          units "d/dG";
          description
            "Affinity is a standard measure of chemical affinity; however it is applied to the broader
IEEE 1906 framework and the affinity of Message Carriers to their intended targets, Media,
and other Message Carriers.";
          reference
            "IEEE 1906.1-2015 Clause 6.13";

        }

        leaf sensitivity {
          type ieee1906-dot1-math:percent;
          description
            "A measure of the proportion of true positives, which are events that actually occurred
and have been correctly detected. See also: specificity.";
          reference
            "IEEE 1906.1-2015 Clause 6.14";

        }

        container angular-spectrum {
          description
            "Angular Spectrum quantifies the distribution of the intensity of nanoscale
	   communication signals received at the receiver as a function of angle-of-arrival.";
          reference
            "IEEE 1906.1-2015 Clause 6.15";

          uses probability-density;
        }  // container angular-spectrum

        container delay-spectrum {
          description
            "Delay Spectrum quantifies the distribution of the intensity of nanoscale
	   communication signals received at the receiver as a function of time-of-arrival.";
          reference
            "IEEE 1906.1-2015 Clause 6.16";

          uses probability-density;
        }  // container delay-spectrum
      }  // container specificity-metrics
    }  // grouping specificity-metrics

    grouping system-metrics {
      description
        "System metrics relate to and impact all components.
All of the metrics in this category shall be implemented.";
      container system-metrics {
        description
          "Metrics that can be used by nanoscale systems only.";
        container active-network-programmability {
          description
            "Message Carriers can be programmed or coded such they change the
underlying Media (e.g., microtubules, nanotubes, etc.) as they
transport information (see 5.3.4).";
          reference
            "IEEE 1906.1-2015 Clause 6.17";

          leaf t {
            type ieee1906-dot1-si-units:time;
            units "second";
            description "The current time.";
          }

          container S {
            uses math-expression {
              description
                "A virtual surface that defines the volume through which the change
in flux of Message Carriers should be clearly specified.";
            }
          }  // container S

          leaf f {
            type ieee1906-dot1-function:variable;
            units "second^-1 meter^-2";
            description
              "The flux of Message Carriers as a function of time where flux
	   is the rate of flow through a unit area.";
          }

          leaf delta-f {
            type ieee1906-dot1-function:variable;
            units "second^-1 meter^-2";
            description
              "The change in f(t) intentionally caused by a
	   programmed Message Carrier through a surface.";
          }
        }  // container active-network-programmability

        container perturbation-rate {
          description
            "Perturbation Rate is a measure of both the rate and control of any
type of perturbation used to send a signal in the system.";
          reference
            "IEEE 1906.1-2015 Clause 6.18";

          leaf rate-of-perturbation {
            type derivative;
            units "second^-1";
            description
              "Rate of change of the componet representing bits of information
in the channel. There is typically a tradeoff with error-of-perturbation.";
          }

          leaf error-of-perturbation {
            type derivative;
            units "second^-1";
            description
              "Rate of error in the componet representing bits of information
in the channel. There is typically a tradeoff with rate-of-perturbation";
          }
        }  // container perturbation-rate

        container supersystem-degradation {
          description
            "The supersystem is the system in which the IEEE 1906.1 network resides.
This can be a biological organism. This metric quantifies the impact of
the network upon the supersystem with regard to its normal operation.";
          reference
            "IEEE 1906.1-2015 Clause 6.19";

          leaf performance-attribute {
            type string;
            description
              "A descriptive name of the performance attribute.";
          }

          leaf ds {
            type ieee1906-dot1-math:percent;
            units "percent";
            description
              "The supersystem degradation of the performance-attribute.";
          }

          leaf spn {
            type ieee1906-dot1-math:percent;
            units "percent";
            description
              "The supersystem performance of the performance-attribute with
the embedded nanoscale communication network.";
          }

          leaf sp {
            type ieee1906-dot1-math:percent;
            units "percent";
            description
              "The native supersystem performance (without the embedded nanoscale
communication network).";
          }
        }  // container supersystem-degradation

        container bandwidth-volume-ratio {
          description
            "The Bandwidth-Volume Ratio takes into account and combines two
fundamental essences of molecular and nanoscale communication,
namely its size and bandwidth.";
          reference
            "IEEE 1906.1-2015 Clause 6.20";

          leaf bandwidth {
            type ieee1906-dot1-information:bandwidth;
            units "bit second^-1";
            description
              "The bandwidth of the nanoscale communication channel.";
          }

          leaf volume {
            type ieee1906-dot1-si-units:volume;
            units "nanometer^3";
            description
              "The sum of the volume of the transmitter and receiver
	   pair for a communication system.";
          }
        }  // container bandwidth-volume-ratio
      }  // container system-metrics
    }  // grouping system-metrics
  }  // module ieee1906-dot1-metrics