# 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