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-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
Secretary: Guillaume Mantelet ";
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-02-14
{
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";
}
// Temporary
typedef percent
{
type decimal64 {fraction-digits 16;}
}
// Temporary
grouping probability-density {
list density-function {
key "probability-sample";
leaf probability-sample {
type ieee1906-dot1-math:probability;
units "probability";
description "A sample probability in the probability density.";
}
description "A list of probabilities forming a probability density function.";
}
}
// Temporary
typedef derivative {
type decimal64 {
fraction-digits 10;
}
units "d/dx";
description "The slope of a line at a point on the line.";
}
// Temporary
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.";
}
}
}
// Temporary
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.";
}
}
}
// Temporary
grouping langevin-equation {
leaf m {
type ieee1906-dot1-si-units:mass;
units "kilogram";
description "The mass of the message carrier.";
}
leaf x {
type decimal64 {
fraction-digits 10;
}
units "meter";
description "The position of a message carrier.";
}
leaf t {
type decimal64 {
fraction-digits 10;
}
units "second";
description "The current time.";
}
leaf lambda {
type decimal64 {
fraction-digits 10;
}
units "kilogram second^-1";
description "The systematic part of the molecular force (field component). The unit is momentum.";
}
leaf eta {
type decimal64 {
fraction-digits 10;
}
units "kilogram meter second^-2";
description "The random component of force (motion component). The unit is a Newton.";
}
}
// Temporary
typedef diffusion-coefficient {
type decimal64 {
fraction-digits 10;
}
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).";
}
// Temporary
grouping ficks-1-law {
leaf J {
type decimal64 {
fraction-digits 10;
}
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 decimal64{
fraction-digits 10;
}
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 decimal64{
fraction-digits 10;
}
units "meter";
description "The position (length), for example, in meters.";
}
}
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 "../type-of-component = 'ieee1906-dot1-types:message-carrier'";
description "The parent component must have a leaf of type 'message-
carrier' 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
{
leaf channel-bandwidth {
type decimal64 { fraction-digits 10; }
description "The bits per second transported by the nanoscale communication channel.";
}
leaf channel-delay {
type decimal64 { fraction-digits 10; }
description "The time for a message to propagate from one end of a channel to the other.";
}
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";
}
container information-and-communication-energy {
leaf energy-message-delivery {
type decimal64 { fraction-digits 10; }
description "The energy used to transport a message across a channel.";
}
leaf information-message-delivery {
type decimal64 { fraction-digits 10; }
description "The amount of information in a message.";
}
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";
}
}
}
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 collision-behavior {
leaf coefficient-of-restitution {
type decimal64 {
fraction-digits 10;
range "0..1";
}
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.";
}
reference "IEEE 1906.1-2015 Clause 6.6";
description "Collision Behavior measures the physical result of collision between
Message Carriers.";
}
container mass-displacement-metric {
leaf mass-displacement {
type decimal64 {
fraction-digits 10;
}
description "Value of the mass displacement.";
}
leaf x {
type ieee1906-dot1-si-units:mass;
units "kilogram";
description "Mass at time t.";
}
leaf T {
type decimal64 {
fraction-digits 10;
}
units "second";
description "Sample period (the time between each sample).";
}
leaf tau {
type decimal64 {
fraction-digits 10;
}
units "second";
description "Sample time";
}
leaf M {
type decimal64 {
fraction-digits 10;
}
units "unitless";
description "Number of samples";
}
reference "IEEE 1906.1-2015 Clause 6.7";
description "Molecular communication can assume Message Carriers are
composed of mass and move from one location to another.";
}
//
// Within this metrics container, the following container must be a case
// 1906.1-2015 states that the two previous containers OR this one are
// mandatory.
container positioning-accuracy-of-message-carriers {
leaf radius {
type decimal64 {
fraction-digits 10;
}
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 percent;
description "Then number of message carriers located within the given area or volume.";
}
reference "IEEE 1906.1-2015 Clause 6.8";
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).";
}
}
//
// 1906.1 states that either one of them SHALL be implemented, thus, a choice is required.
//
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 persistence-length {
list unit-tangent-vectors {
key "segment-index";
leaf segment-index {
type uint32;
description "A segment index.";
}
leaf s {
type ieee1906-dot1-si-units:length; // Vector?
description "The position of a unit tangent sample.";
}
container u-s {
uses ieee1906-dot1-math:nabla;
description "The unit tangent vector at point s in set of connected segments.";
}
}
container u-0 {
uses ieee1906-dot1-math:nabla;
description "Unit tangent vector at the origin or beginning of the chain of connected segments";
}
leaf zeta-p {
type decimal64 {
fraction-digits 10;
range "0..max";
}
units "nanometer";
description "The persistence length.";
}
reference "IEEE 1906.1-2015 Clause 6.9";
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).";
}
container diffusive-flux {
uses ficks-1-law {
description "This metric is derived from Fick's First Law.";
}
reference "IEEE 1906.1-2015 Clause 6.10";
description "Fick’s First Law is one of the standard laws of diffusion.";
}
container langevin-noise {
uses langevin-equation {
description "Langevin noise is a term in the general Langevin equation.";
}
reference "IEEE 1906.1-2015 Clause 6.11";
description
"Random motion has a significant impact upon the performance of Message Carriers,
in particle form, to reach their target receivers.";
}
}
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.";
leaf specificity-metric {
type percent; //specificity;
reference "IEEE 1906.1-2015 Clause 6.12";
description "A measure of precision in matching between components. See also: sensitivity.";
}
container affinity-metric {
leaf affinity {
type decimal64 {
fraction-digits 10;
range "0..max";
}
units "d/dG";
description
"The negative partial derivative of Gibb's free energy G with respect to extent of
reaction zeta at constant pressure and temperature.";
}
reference "IEEE 1906.1-2015 Clause 6.13";
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.";
}
leaf sensitivity-metric {
type percent; //sensitivity;
reference "IEEE 1906.1-2015 Clause 6.14";
description
"A measure of the proportion of true positives, which are events that actually occurred
and have been correctly detected. See also: specificity.";
}
container angular-spectrum {
uses probability-density;
reference "IEEE 1906.1-2015 Clause 6.15";
description "Angular Spectrum quantifies the distribution of the intensity of nanoscale
communication signals received at the receiver as a function of angle-of-arrival.";
}
container delay-spectrum {
uses probability-density;
reference "IEEE 1906.1-2015 Clause 6.16";
description "Delay Spectrum quantifies the distribution of the intensity of nanoscale
communication signals received at the receiver as a function of time-of-arrival.";
}
}
grouping system-metrics {
description
"System metrics relate to and impact all components.
All of the metrics in this category shall be implemented.";
container active-network-programmability {
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.";
}
}
leaf f {
type decimal64 {
fraction-digits 10;
range "0..max";
}
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 decimal64 {
fraction-digits 10;
range "0..max";
}
units "second^-1 meter^-2";
description "The change in f(t) intentionally caused by a
programmed Message Carrier through a surface.";
}
reference "IEEE 1906.1-2015 Clause 6.17";
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).";
}
container perturbation-rate {
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";
}
reference "IEEE 1906.1-2015 Clause 6.18";
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.";
}
container supersystem-degradation {
leaf performance-attribute {
type string;
description
"A descriptive name of the performance attribute.";
}
leaf ds {
type percent;
units "percent";
description
"The supersystem degradation of the performance-attribute.";
}
leaf spn {
type percent;
units "percent";
description
"The supersystem performance of the performance-attribute with
the embedded nanoscale communication network.";
}
leaf sp {
type percent;
units "percent";
description
"The native supersystem performance (without the embedded nanoscale
communication network).";
}
reference "IEEE 1906.1-2015 Clause 6.19";
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.";
}
container bandwidth-volume-ratio {
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.";
}
reference "IEEE 1906.1-2015 Clause 6.20";
description
"The Bandwidth-Volume Ratio takes into account and combines two
fundamental essences of molecular and nanoscale communication,
namely its size and bandwidth.";
}
}
}