<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<?rfc compact="no" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" ipr="trust200902" docName="draft-ietf-dtn-dtnma-03" submissionType="IETF" xml:lang="en" obsoletes="" updates="" tocInclude="true" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <!-- ***** FRONT MATTER ***** -->

<front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
        full title is longer than 39 characters -->
   <title abbrev="DTNMA">DTN Management Architecture</title>
   <seriesInfo name="Internet-Draft" value="draft-ietf-dtn-dtnma-03"/>
   <author fullname="Edward J. Birrane" initials="E.J." surname="Birrane">
      <organization>Johns Hopkins Applied Physics Laboratory</organization>
      <address>
        <email>Edward.Birrane@jhuapl.edu</email>
      </address>
   </author>

   <author fullname="Sarah E. Heiner" initials="S.E." surname="Heiner">
      <organization>Johns Hopkins Applied Physics Laboratory</organization>
      <address>
        <email>Sarah.Heiner@jhuapl.edu</email>
      </address>
   </author>
   
   <author fullname="Emery Annis" initials="E." surname="Annis">
      <organization>Johns Hopkins Applied Physics Laboratory</organization>
      <address>
        <email>Emery.Annis@jhuapl.edu</email>
      </address>
   </author>
   
   <date month="October" day="24" year="2022"/>
   
   <!-- Meta-data Declarations -->
   <area>General</area>
   <workgroup>Delay-Tolerant Networking</workgroup>
   <keyword>DTN</keyword>
   <keyword>Network Management</keyword>
   <abstract>
      <t>
        The Delay-Tolerant Networking (DTN) architecture describes a type of
        challenged network in which communications may be significantly
        affected by long signal propagation delays, frequent link disruptions, 
        or both. The unique characteristics of this environment require a 
        unique approach to network management that can support asynchronous
        transport, autonomous local control, and require a very small 
        footprint so as to deploy on resource constrained devices. 
      </t>

      <t>
        This document describes a DTN management architecture (DTNMA) suitable
        for managing devices in any challenged environment but, in
        particular, those communicating using the DTN Bundle Protocol (BPv7). 
        Operating using BPv7 require that the architecture not presume any
        synchronized transport behavior. This means that the DTNMA cannot
        operate as a query-response system across the network. This allows
        implementations compliant with the DTNMA to operate in extremely
        challenging conditions, such as over uni-directional links and other
        places where BPv7 is the preferred transport.
      </t>
   </abstract>
</front>
<middle>
   <section toc="default" numbered="true">
      <name>Introduction</name>
      <t>
        The Delay-Tolerant Networking (DTN) architecture (as described in 
        <xref target="RFC4838" format="default"/>) has been designed to cope 
        with data exchange in challenged networks. Just as the DTN architecture 
        requires new capabilities for transport and transport security, special 
        consideration must be given for the management of DTN devices.
      </t>
      <t>
        This document describes the DTN Management Architecture (DTNMA) designed 
        to provide configuration, monitoring, and local control of both
        application and network services on a managed device operating either
        within or across a challenged network.
      </t>
      <t>
        The structure of the DTNMA is derived from the unique properties of 
        challenged networks are defined in <xref target="RFC7228" format="default"/>. These
        properties include cases where an end-to-end transport path may not 
        exist at any moment in time and when delivery delays may prevent timely 
        communications between a network operator and a managed device. These 
        challenges may be caused by physical impairments such as long signal 
        propagations and frequent link disruptions, or by other factors such as 
        quality-of-service prioritizations, service-level 
        agreements, and other consequences of traffic management and scheduling.
      </t>
      <t>
        Device management in these environments must occur without human 
        interactivity, without system-in-the-loop synchronous function, and 
        without requiring a synchronous underlying transport layer. This means 
        that managed devices need to determine their own schedules for 
        data reporting, their own operational configuration, and perform their
        own error discovery and mitigation. Importantly, these capabilities 
        must be designed and implemented in a way that results in outcomes that
        are determinable by an outside observer, as such observers may need to
        connect with a managed device after significant periods of 
        disconnectivity. 
      </t>
      <t>
        The desire to define asynchronous and autonomous device management 
        is not new. However, challenged networks (in general) and the DTN 
        environment (in particular) represent unique deployment scenarios and 
        impose unique design constraints. To the extent that these environments
        differ from more traditional, enterprise networks, their management may
        also differ from the management of enterprise networks. Therefore,
        existing techniques may need to be adapted to operate in the DTN
        environment or new techniques may need to be created.
      </t>
      <t>
        Ultimately, the DTNMA is designed to leverage any transport, network, 
        and security solutions designed for challenged networks. However the 
        DTNMA is specifically designed to be usable in any environment in which 
        the Bundle Protocol (BPv7) <xref target="RFC9171" format="default"/> is 
        deployed.
      </t>

      <section toc="default" numbered="true">
         <name>Scope</name>
         <t>
            This document describes the desirable properties, motivation, and
            concept of operation of a delay-tolerant management architecture. 
            This document also provides a reference model, service descriptions,
            autonomy model, and use cases to better reason about ways to
            implement this architecture. 
         </t>
         <t>
            This document is not a normative standardization of a physical data 
            model or any individual protocol. Instead, it serves as informative 
            guidance to authors and users of such models and protocols. The
            DTNMA that it describes is independent of transport and network 
            layers because it does not require the use of a specific protocol
            such as BP, TCP, or UDP. Similarly, it does not pre-suppose the use 
            of IPv4 or IPv6.
         </t>
         <t>
            The DTNMA is not bound to a particular security solution and does not
            presume that transport layers can exchange messages in a timely 
            manner.  It is assumed that any network using this architecture 
            supports services such as naming, addressing, routing, and security 
            that are required to communicate DTNMA messages as would be the case
            with any other messages in the network.
         </t>
         <t>
            While possible that a challenged network may interface with an 
            unchallenged network, this document does not specifically address 
            compatibility with other management approaches.     
         </t>
      </section>
   
      <section toc="default" numbered="true">
         <name>Requirements Language</name>
         <t>
            The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
            "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
            document are to be interpreted as described in <xref target="RFC2119" format="default"/>.
         </t>
      </section>
      
      <section toc="default" numbered="true">
         <name>Organization</name>
         <t>
            The remainder of this document is organized into the following
            nine sections, described as follows.
         </t>
         <ul spacing="normal">
            <li>
              Terminology - This section identifies those terms critical to 
              understanding DTNMA concepts. Whenever possible, these terms 
              align in both word selection and meaning with their analogs 
              from other management protocols.
            </li>
            
            <li>
              Challenged Networks - This section describes important aspects of 
              challenged networks and approaches for their management. These
              observations guide some of the work of the DTNMA, as the
              architecture is meant to work in extremely challenged conditions.
            </li>

            <li> 
              Desirable Properties - This section identifies the properties
              that guide the definition of the system and logical models that
              comprise the DTNMA. 
            </li>

            <li>
              Current Approaches - This section provides a brief overview of
              existing network management approaches. Where possible, the DTNMA
              adopts concepts from these approaches. Cases where the DTN
              environment precludes existing approaches are discussed.
            </li>

            <li>
              Motivation - This section provides an overall motivation for 
              this work, to include explaining why a management architecture 
              for DTN environments is a useful and necessary contribution to
              the existing set of network management approaches.
            </li>

            <li>
              Reference Model - This section defines a reference model that can
              be used to reason about the DTNMA operational concept absent a
              given network management implementation. This model identifies the
              logical elements of the system and the high-level relationships
              amongst those elements.
            </li>

            <li>
               Desired Services - This section identifies and defines the 
               DTNMA services provided to network and mission operators. 
            </li>

           <li>
              Logical Autonomy Model - This section provides an exemplar data 
              model that can be used to reason about DTNMA control and data flows. 
              This model is intentionally abstracted from both any specific 
              implementation and any specific modeling approach.
           </li>

           <li> 
              Use Cases - This section presents multiple use cases accommodated
              by the DTNMA architecture. Each use case is presented as a 
              set of control and data flows. 
           </li>
          </ul>

      </section>
   </section>
   
   <section toc="default" numbered="true">
      <name>Terminology</name>
      <ul spacing="normal">
         <li>
            Actor - A software service running on either managed or managing 
            devices for the purpose of implementing management protocols between 
            such devices. Actors may implement the "Manager" role, "Agent" role, 
            or both.
         </li>
         <li>
            Agent Role (or Agent) - A role associated with a managed device, 
            responsible for reporting performance data, accepting/performing 
            controls, error handling and validation, and executing any 
            autonomous behaviors. DTNMA Agents exchange information with 
            DTNMA Managers operating either on the same device or on a remote 
            managing device.
         </li>
         <li>
            DTN Management - Management that does not depend on stateful 
            connections or real time delivery of management messages. Such
            management allows for asynchronous commanding to autonomous
            managers running on managed devices. This management is designed to
            run in any environment conformant to the DTN architecture and/or in
            any environment deploying a BPv7 network.
         </li>
         <li>
            Externally Defined Data (EDD) - Information made available to a 
            DTNMA Agent by a managed device, but not computed directly by the 
            DTNMA Agent itself. 
         </li>
         <li>
            Variables (VARs) - Typed information that is computed by a DTNMA 
            Agent, typically as a function of EDD values and/or other Variables.
         </li>
         <li> 
            Constants (CONST) - A Constant represents a typed, immutable value 
            that is referred to by a semantic name. Constants are used in 
            situations where substituting a name for a fixed value provides 
            useful semantic information. For example, using the named 
            constant PI rather than the literal value 3.14159.
         </li>
         <li>
            Controls (CTRLs) - Procedures run by a DTNMA Actor to change the 
            behavior, configuration, or state of an application or protocol 
            being managed within a DTN. Controls may also be used to request 
            data from an Agent and define the rules associated with generation 
            and delivery.
         </li>
         <li>
            Literals (LITs) - A Literal represents a typed value without a 
            semantic name. Literals are used in cases where adding a semantic 
            name to a fixed value provides no useful semantic information. For 
            example, the number 4 is a Literal value. 
         </li>
         <li>
            Macros (MACROs) - A named, ordered collection of Controls and/or other
            Macros. 
         </li>
         <li>
            Manager Role (or Manager) - A role associated with a managing device 
            responsible for configuring the behavior of, and eventually receiving 
            information from, DTNMA Agents. DTNMA Managers interact with one or 
            more DTNMA Agents located on the same device and/or on remote devices 
            in the network.
         </li>
         <li>
            Operator (OP) - The enumeration and specification of a mathematical 
            function used to calculate variable values and construct 
            expressions to evaluate DTNMA Agent state.
         </li>
         <li>
            Report (RPT) - A typed, ordered collection of data values gathered 
            by one or more DTNMA Agents and provided to one or more DTNMA Managers. 
            Reports only contain typed data values and the identity of the 
            Report Template (RPTT) to which they conform.
         </li>
         <li>
            Report Template (RPTT) - A named, typed, ordered collection of data 
            types that represent the schema of a Report. This template is 
            generated by a DTNMA Manager and communicated to one or more
            other DTNMA Managers and DTNMA Agents.
         </li>
         <li>
            Rule - A unit of autonomous specification that provides a 
            stimulus-response relationship between time or state on a DTNMA Agent 
            and the actions or operations to be run as a result of that time or 
            state. A Rule might trigger actions such as updating a Variable, 
            producing a Report or a Table, and running a Control.
         </li>
         <li>
            State-Based Rule (SBR) - Any Rule triggered by the calculable 
            internal state of the DTNMA Agent. 
         </li>
         <li>
            Synchronous Management - Management that assumes messages will be 
            delivered and acted upon in real or near-real-time. Synchronous 
            management often involves immediate replies of acknowledgment or 
            error status. Synchronous management is often bound to underlying 
            transport protocols and network protocols to ensure reliability of 
            source and sender identification.
         </li>
         <li>
            Tabular Report (TBL) - A typed collection of data values organized in a 
            tabular way in which columns represent homogeneous types of data 
            and rows represent unique sets of data values conforming to
            column types. Tabular reports only contain typed data values and the 
            identity of the Tabular Report Template (TBLT) to which they conform.  
         </li>
         <li>
            Tabular Report Template (TBLT) - A named, typed, ordered collection of 
            columns that comprise the structure for representing tabular data 
            values. This template forms the structure of a tabular report (TBL).
         </li>
         <li>
            Time-Based Rule (TBR) - A time-based rule is a specialization, and 
            simplification, of a state-based rule in which the rule stimulus is 
            triggered by relative or absolute time on a DTNMA Agent.
         </li>
      </ul>
   </section>

   <section toc="default" numbered="true">
      <name>Challenged Network Overview</name>
      
      <t>
        The DTNMA is envisioned to provide network management services that
        can operate in a challenged network environment, such as ones 
        envisioned by the DTN architecture. This section describes what is 
        meant by the term "Challenged Network", the unique properties of that
        network, and some initial observations on how management approaches
        might need to be reconsidered to operate in that environment.
      </t>

      <t>
         The unique nature and constraints that characterize challenged networks 
         require the development of new network capabilities to deliver expected 
         network functions. For example, the distinctive constraints of the DTN 
         architecture required the development of BPv7 
         <xref target="RFC9171" format="default"/> for transport functions and 
         the Bundle Protocol Security (BPSec) Extensions
         <xref target="RFC9172" format="default"/> to provide end-to-end 
         security. Similarly, a new approach to network management and the 
         associated capabilities is necessary for operation in these challenged 
         environments and when using these new transport and security mechanisms.
      </t>

      <section>
        <name>Challenged Networks are a Type of Constrained Networks</name>

        <t>
          Constrained networks are defined as networks where "some of the 
          characteristics pretty much taken for granted with link layers in 
          common use in the Internet at the time of writing are not attainable." 
          <xref target="RFC7228" format="default"/>. This broad definition 
          captures a variety of potential issues relating to physical, technical, 
          and regulatory constraints on message transmission. Constrained networks 
          typically include nodes that regularly reboot or are otherwise turned 
          off for long periods of time, transmit at low or asynchronous bitrates, 
          or have very limited computational resources 
          <xref target="RFC7228" format="default"/>.
        </t>
        
        <t>  
          Separately, a challenged network is defined as one that "has serious 
          trouble maintaining what an application would today expect of the end-to-end 
          IP model" <xref target="RFC7228" format="default"/>. This definition includes 
          networks where there is never simultaneous end-to-end connectivity, when such 
          connectivity is interrupted at planned or unplanned intervals, or when delays 
          exceed those that could be accommodated by IP-based transport. Links in such 
          networks are often unavailable due to attenuation, propagation delays, 
          mobility, occultation, and other limitations imposed by energy and 
          mass considerations.
        </t>

        <t>
          Finally, it is noted that "all challenged networks are constrained 
          networks ... but not all constrained networks are challenged networks
          ...  Delay-Tolerant Networking (DTN) has been designed to cope with 
          challenged networks" <xref target="RFC7228" format="default"/>.
        </t>

        <t>
          Challenged networks differ from other kinds of constrained networks, 
          in part, in the way that the topology and roles and responsibilities 
          of the network may evolve over time. From the time at which data is 
          generated to the time at which that data is delivered, the topology 
          of the network and the roles assigned to various nodes, devices, and 
          other actors may have changed several times. In certain circumstances, 
          the physical node receiving messages for a given logical destination 
          may have also changed. 
        </t>

        <t>
          Challenged networks cannot guarantee that a timely data exchange can 
          be maintained between managing and managed devices. The topological 
          changes characteristic of these networks can impact the path of messages, 
          requiring the transport to wait to establish the incremental connectivity 
          necessary to advance messages along their expected route. The BPv7 
          transport protocol implements this store-and-forward operation for DTNs.
        </t>

        <t>
          Solutions that work in constrained networks might not be solutions
          that work in challenged networks. In particular, challenged networks 
          exhibit the following properties that impact the way in which the 
          function of network management is considered. These properties can 
          make the establishment of sessions, synchronous data
          exchange, and the transmission of larger payloads in these
          networking environments difficult or impossible.
        </t>

        <ul spacing="normal">
          <li>
            No end-to-end path is guaranteed to exist at any given time 
            between any two nodes.
          </li>
          <li>
            Round-trip communications between any two nodes within any given 
            time window may be impossible.
          </li>
          <li>
            Latencies on the order of seconds, hours, or days must be tolerated.
          </li>
          <li>
            Links may be uni-directional.
          </li>
          <li>
            Bi-directional links may have asymmetric data rates.
          </li>
          <li>
            Dependence on external infrastructure, software, systems, 
            or processes such as Domain Name Service (DNS) or Certificate
            Authorities (CAs) cannot be guaranteed.
          </li>
        </ul>
                
      </section>

      <section numbered="true" toc="default">
        <name>Managing Challenged Networks</name>
        <t>
          When topological change impacts the semantic roles and responsibilities 
          of nodes in the network then local configuration and autonomy must be present 
          at the node to determine and execute time-variant changes. For example, 
          the BPSec protocol does not encode security destinations and, instead, 
          requires nodes in a network to identify themselves as security verifiers 
          or acceptors when receiving secured messages.
        </t>
        <t>
          When applied to network management, the traditional roles of agent and manager 
          may also change with the evolving topology of the network. Individual nodes 
          must implement desirable behavior without relying on a single configuration 
          oracle or other coordinating function such as an operator-in-the-loop and/or 
          supporting infrastructure. These mechanisms cannot be supported by an 
          asynchronous, challenged network.
        </t>
        <t>
          The support for changing roles implies that there must not be a defined 
          relationship between a particular managing and managed device in a network. 
          A network management architecture for challenged networks must support 
          the association of multiple managing devices with a single managed device, 
          allow "control from" and "reporting to" managing devices to function 
          independent of one another, and allow the logical role of a managing device 
          to be physically shared among assets and change over time.
        </t>
        <t>
          Together, this means that a network management architecture suitable for
          challenged environments must account for certain operational situations.
        </t>

        <ul spacing="normal">
          <li>
            Managed devices that are only accessible via a uni-directional
            link, or via a link whose duration is shorter than a single
            round-trip propagation time. 
          </li>
          <li>
            Links that may be significantly constrained by capacity or
            reliability, but at (predictable or unpredictable) times may offer 
            significant throughput. 
          </li>
          <li>
            Multi-hop challenged networks that interconnect two or more 
            unchallenged networks such that managed and managing devices exist
            in different networks.             
          </li>
          <li>
            Networks unable to support session-based transport. For example,
            when propagation delays exceed the Maximum Segment Lifetime (MSL)
            of the Transmission Control Protocol (TCP).
          </li>
        </ul>
               
        <t>
          In these and related scenarios, managed devices need to operate with 
          local autonomy because managing devices may not be available within 
          operationally-relevant timeframes. Managing devices deliver instruction 
          sets that govern the local, autonomous behavior of the managed device. 
          These behaviors include (but are not limited to) collecting performance 
          data, state, and error conditions, and applying pre-determined 
          responses to pre-determined events. The goal is asynchronous and autonomous
          communication between the device being managed and the manager, at 
          times never expecting a reply, and with knowledge that commands and 
          queries may be delivered much later than the initial request.
        </t>
      </section>
   </section>

   <section>
      <name>Desirable Properties</name>
      <t>
        This section describes those design properties that are desirable 
        when defining an architecture that must operate across challenged 
        links in a network. These properties ensure that network management 
        capabilities are retained even as delays and disruptions in the 
        network scale. Ultimately, these properties are the driving design 
        principles for the DTNMA.   
      </t>


      <section toc="default" numbered="true">
        <name>Dynamic Architectures</name>
        <t> 
          The DTNMA should be agnostic of the underlying physical topology,
          transport protocols, security solutions, and supporting infrastructure
          of a given network. Due to the likelihood of operating in a frequently
          partitioned environment, the topology of a network may change
          over time. Attempts to stabilize an architecture around individual
          nodes can result in a brittle management framework and the creation
          of congestion points during any brief periods of connectivity.
        </t>

        <t>
          An effective DTNMA should not prescribe any association between a 
          manager and an agent other than those defined in this document. 
          There should be no limitation to the number of managers that can control an 
          agent, the number of managers that an agent should report to, or any 
          requirement that a manager and agent relationship implies a pair.
        </t>

        <t>
          While no underlying transport protocol should be required by a DTNMA,
          an effective architecture is one that can run in every environment
          in which BPv7 may be used.
        </t>
      </section>
      
      <section toc="default" numbered="true">
        <name>Model-derived and Hierarchically Organized Information</name>
        <t> 
          A model to define a shared contract between agent and manager has long been an 
          approach to network management solutions. A model is a schema that defines this 
          contract and defines all sources of information that can be retrieved, 
          configured, or executed, as well as the various functions for parameterization, 
          filtering, or event driven behavior. A model gives way to concise representation 
          of information, intelligent suffixing, and patterning. 
        </t>
      </section>

      <section toc="default" numbered="true">
        <name>Intelligent Push of Information</name>
        <t> 
          Pull management mechanisms require that a manager send a query 
          to an agent and then wait for the response to that query. This
          practice implies a control-session between entities and increases
          the overall message traffic in the network. Challenged networks cannot
          guarantee that the round-trip data-exchange will occur in a timely 
          fashion. In extreme cases, networks may be comprised of solely uni-directional 
          links which drastically increases the amount of time needed for a round-trip 
          data exchange. Therefore, pull mechanisms must be avoided in favor of push 
          mechanisms.
        </t>
        <t>
          Push mechanisms, in this context, refer to the ability of agents to 
          leverage local autonomy to determine when and what information
          should be sent to managers. 
        </t>
      </section>
      
      <section toc="default" numbered="true">
        <name>Minimize Message Size Not Node Processing</name>
        <t> 
          Protocol designers must balance message size versus message processing time at
          sending and receiving nodes. Verbose representations of data simplify node
          processing whereas compact representations require additional activities 
          to generate/parse the compacted message. There is no asynchronous management 
          advantage to minimizing node processing time in a challenged network. 
          However, there is a significant advantage to smaller message sizes in such 
          networks. Compact messages require smaller periods of viable transmission for 
          communication, incur less re-transmission cost, and consume less resources when 
          persistently stored en-route in the network. 
        </t>

        <t>
          The DTNMA should define models that are both expressive but finite and
          compressible. By limiting data types and object definitions, the DTNMA
          can be implemented on very resource-constrained devices. By allowing
          for hierarchically organized information models, DTNMA specifications
          can support highly compressible and concise encodings.
        </t>
      </section>
      
      <section toc="default" numbered="true">
         <name>Absolute Data Identification</name>
         <t>
          Elements within the DTNMA should be uniquely identifiable so
          that they can be individually manipulated. Identification schemes that
          are relative to a specific agent or specific system configuration 
          might not stay deterministic. In particular, nodes in a challenged
          network may change their status or configuration during periods of
          partition from other parts of the network. Resynchronizing any
          type of relative state or configuration should be avoided 
          whenever possible in the DTNMA.
         </t>
         <t>   
          Consider the common technique for approximating an associative array 
          lookup. A manager wishing to do an associative lookup for some key K1 
          can (1) query a list of array keys from an agent, (2) find the key 
          that matches K1 and infer the index of K1 from the returned key list, 
          and (3) query the discovered index on the agent to retrieve the desired 
          data. 
         </t>
         <t>
          Ignoring the inefficiency of two round-trip exchanged, this mechanism
          will fail when the agent changes its key-index mapping between the 
          first and second query. While this is unlikely to occur in a well
          resourced network, it is more likely to occur in a challenged
          network.
         </t>
      </section>
      
      <section toc="default" numbered="true">
         <name>Custom Data Definition</name>
         <t>
            Custom definition of new data from existing data (such as through
            data fusion, averaging, sampling, or other mechanisms) provides the
            ability to communicate desired information in as compact a form as
            possible. Specifically, an agent should not be required to transmit 
            a large data set for a manager that only wishes to calculate a smaller, 
            inferred data set.
          </t>
          <t>
            Custom data elements should be calculated and used both as 
            parameters for local agent autonomy and for more efficient reporting
            to managers. Defining new data elements allows for agents to perform
            local data fusion and defining new reporting templates allows
            for managers to specify desired formats and generally save on link
            capacity, storage, and processing time.
         </t>
      </section>
      
      <section toc="default" numbered="true">
         <name>Autonomous Operation</name>
         <t> 
            DTNMA network functions must be achievable using only knowledge local to 
            agent because agents might need to operate during times when they
            are otherwise partitioned from the rest of the network. An
            effective DTNMA should describe the operation of local autonomy at
            an agent - to include sufficient data modeling and encodings to
            provide interoperability between and amongst managers and agents
            in a network. 
         </t>
         <t>     
            Agent autonomy may be used for simple automation of predefined tasks or
            to support semi-autonomous behavior in determining when to run tasks
            and how to configure or parameterize tasks when they are run. Wholly 
            autonomous operations may be supported where required. Generally,
            autonomous operations should provide the following benefits.
         </t>
         <ul spacing="normal">
            <li>
               Stand-alone Operation - The concept of pre-configuration allows agents to 
               operate without regular contact with other nodes in the network. The initial 
               configuration (and periodic update) of an agent autonomy engine 
               remains difficult in a challenged network, but an initial 
               synchronization on stimuli and responses drastically reduces 
               needs for coordinated operations. 
            </li>
            <li>
               Deterministic Behavior - Such behavior is necessary in critical operational 
               systems where the actions of a platform must be well understood even in the 
               absence of an operator in the loop. Depending on the types of stimuli and 
               responses, these systems may be considered to be maintaining simple automation 
               or semi-autonomous behavior. In either case, this preserves the ability of a 
               frequently-out-of-contact manager to predict the state of an agent with more 
               reliability than cases where Agents implement independent and fully autonomous 
               systems.
            </li>
            <li>
               Engine-Based Behavior - Several operational systems are unable to deploy "mobile 
               code" based solutions due to network bandwidth, memory or processor loading, or 
               security concerns. Engine-based approaches provide configurable behavior without 
               incurring these types of concerns associated with mobile code.
            </li>
            <li>
               Intelligent Authentication, Authorization, Accounting (AAA), and Error Checking 
               - A means of autonomous AAA, error checking, and validation of data and controls
               will be required in all cases where agents or managers are disconnected from the
               rest of the network. In addition, there is a need to handle conflicts including 
               messages that arrive out of order, or at the same time, from different managers 
               whose controls would otherwise conflict. The need to perform these operations 
               still exists however they will need to be performed with context provided with 
               controls sent or in accordance with pre-defined behavior and policy.
            </li>
         </ul>
      </section>
   </section>

   <section toc="default" numbered="true">
      <name>Current Network Management Approaches and Limitations</name>
      <t>
         Several network management solutions have been developed for both 
         local-area and wide-area networks. Their capabilities range from 
         simple configuration and report generation to complex modeling of device 
         settings, state, and behavior. Each of these approaches are successful in 
         the domains for which they have been built, but are not all equally 
         functional when deployed in a challenged network.
      </t>
      <t>
         Generally, network management solutions that require managing and managed 
         devices to push and pull large sets of data may fail to operate in a 
         challenged (and thus, constrained) environment as a function of transmit 
         power, bitrates, and the ability of the network to store and forward large 
         data volumes over long periods of time.
      </t>
      <t> 
         Newer network management approaches are exploring the application of 
         more efficient message-based management, less reliance on end-to-end
         transport sessions, and increased levels of autonomy on managed devices.
         These approaches focus on problems different from those described above for
         challenged networks. For example, much of the autonomous network management work
         currently undertaken focuses more on well-resourced, unchallenged networks where 
         devices self-configure, self-heal, and self-optimize with other nodes in their 
         vicinity. While an important and transformational capability, such solutions 
         will not be deployable in a challenged network environment.
      </t>
      <t>
         This section describes some of the well-known, standardized protocols for 
         network management and contrasts their purposes with the needs of challenged 
         network management solutions.
      </t>

      <section toc="default" numbered="true">
         <name>Simple Network Management Protocol (SNMP)</name>
         <t>
            Early network management tools designed for unchallenged networks 
            provide synchronous mechanisms for communicating locally-collected data 
            from devices to operators. Applications are managed using a "pull" mechanism, 
            requiring a managing device to explicitly request the data to be produced and 
            transmitted by a managed device. 
         </t>
         <t>
            The de facto example of this architecture is the Simple Network 
            Management Protocol (SNMP) <xref target="RFC3416" format="default"/>. 
            SNMP utilizes a request/response model to set and retrieve data values such 
            as host identifiers, link utilizations, error rates, and counters between 
            application software on managing and managed devices.  Data may be 
            directly sampled or consolidated into representative statistics.
            Additionally, SNMP supports a model for unidirectional push notification 
            messages, called traps, based on predefined triggering events.  
         </t>
         <t>
            SNMP managing devices can query agents for status information, send new 
            configurations, and request to be informed when specific events have occurred. 
            Traps and queryable data are defined in a data model known as Managed 
            Information Bases (MIBs) which define the information for a particular 
            data standard, protocol, device, or application.
         </t>
         <t> 
            While there is a large installation base for SNMP, there are several aspects 
            of the protocol that make it inappropriate for use in a challenged network. 
            SNMP relies on sessions with low round-trip latency to support its "pull" 
            model that challenged networks cannot maintain. Complex management can be 
            achieved, but only through careful orchestration using a series of real-time, 
            end-to-end, managing-device-generated query-and-response logic that is not 
            possible in challenged networks.
         </t>
         <t>
            The SNMP trap model provides some low-fidelity Agent-side processing. Traps 
            are typically used for alerting purposes, as they do not support an agent 
            response to the event occurrence. In a challenged network where the delay 
            between a managing device receiving an alert and sending a response can 
            be significant, the SNMP trap model is insufficient for event handling.
         </t>
         <t>
            Adaptive modifications to SNMP to support challenged networks and more 
            complex application-level management would alter the basic function of 
            the protocol (data models, control flows, and syntax) so as to be 
            functionally incompatible with existing SNMP installations. This approach 
            is therefore not suitable for use in challenged networks.
         </t>
      </section>
      
      <section toc="default" numbered="true">
         <name>YANG Data Model and NETCONF, RESTCONF, and CORECONF</name>
         
         <section numbered="true" toc="default">
            <name>The YANG Data Model</name>
            <t>
               Yet Another Next Generation (YANG) <xref target="RFC6020" format="default"/> 
               is a data modeling language used to model configuration and state data of 
               managed devices and applications. The YANG model defines a schema for 
               organizing and accessing a device's configuration or operational information. 
               Once a model is developed, it is loaded to both the client and server, and 
               serves as a contract between the two. A YANG model can be complex, describing 
               many containers of managed elements, each providing methods for device 
               configuration or reporting of operational state.
            </t>
            
            <t>
               YANG supports the definition of parameterized Remote Procedure Calls (RPCs) 
               to be executed on managed nodes as well as the definition of push notifications 
               within the model. The RPCs are used to execute commands on a device, generating 
               an expected, structured response. However,  RPC execution is strictly limited to 
               those issued by the client. Commands are executed immediately and sequentially 
               as they are received by the server, and there is no method to autonomously 
               execute RPCs triggered by specific events or conditions.
            </t>
            
            <t>
               YANG defines the schema for data used by network management protocols such as 
               NETCONF <xref target="RFC6241" format="default"/>, 
               RESTCONF <xref target="RFC8040" format="default"/>, and CORECONF 
               <xref target="I-D.ietf-core-comi" format="default"/>. These protocols 
               provide the mechanisms to install, manipulate, and delete the 
               configuration of network devices. 
            </t>
         </section>
         
         <section numbered="true" toc="default">
            <name>YANG-Based Management Protocols</name>
            <t>
               NETCONF is a stateful, XML-based protocol that provides a RPC syntax to 
               retrieve, edit, copy, or delete any data nodes or exposed functionality 
               on the server. It requires that underlying transport protocols support 
               long-lived, reliable, low-latency, sequenced data delivery sessions. 
               NETCONF connections are required to provide authentication, data integrity, 
               confidentiality, and replay protection through secure transport protocols 
               such as SSH or TLS. A bi-directional NETCONF session must be established 
               before any data transfer can occur.
            </t>
            <t>
               NETCONF uses verbose XML files to provide the ability to update and fetch 
               multiple data elements simultaneously. These XML files are not easily or 
               efficiently compressed, which is an important consideration for challenged 
               networks.
            </t>
            <t>
               RESTCONF is a stateless RESTful protocol based on HTTP. RESTCONF configures 
               or retrieves individual data elements or containers within YANG data models 
               by passing JSON over REST. This JSON encoding is used to GET, POST, PUT, 
               PATCH, or DELETE data nodes within YANG modules. RESTCONF requires the use of 
               a secure transport such as TLS.
            </t>
            <t>          
               Unlike NETCONF, RESTCONF is stateless. However, the transfer of large data 
               sets, such as configuration changes of many data elements, or the collection 
               of information, depends greatly on the support of synchronous communication.
            </t>
            <t>
               CORECONF is stateless, as RESTCONF is, and is built atop the Constrained 
               Application Protocol (CoAP) <xref target="RFC7252" format="default"/> which 
               defines a messaging construct developed to operate specifically on constrained 
               devices and networks by limiting message size and fragmentation. CORECONF 
               requires the use of DTLS or Object Security for Constrained RESTful Environments 
               (OSCORE) <xref target="RFC8613" format="default"/> to fulfill its security 
               requirements. COAP supports a store and forward operation similar to DTN; 
               however, it operates strictly at the application layer and requires 
               specification of pre-determined proxies and moments of bi-directional 
               communication.
            </t>
            <t>
               CORECONF leverages the Concise Binary Object Representation (CBOR) 
               <xref target="RFC8949" format="default"/> of YANG modules
               <xref target="I-D.ietf-core-yang-cbor" format="default"/> and provides 
               further compressibility through the use of YANG Schema Item iDentifiers 
               (SIDs) <xref target="I-D.ietf-core-sid" format="default"/>. While these 
               design choices offer reductions in encoded data size, data compressibility 
               is still dependent on underlying transport protocols and limited by the 
               organization of the YANG schema.  
            </t>
         </section>
         
         <section numbered="true" toc="default">
            <name>Limitations of YANG-Based Approaches</name>
            <t>
               YANG notifications are promising for challenged network management, defined as
               subscriptions to both YANG notifications <xref target="RFC8639" format="default"/> 
               and YANG PUSH notifications <xref target="RFC8641" format="default"/>. In this 
               model, a client may subscribe to the delivery of specific containers or data 
               nodes defined in the model, either on a periodic or "on change" basis. The 
               notification events can be filtered according to XPath 
               <xref target="xpath" format="default"/> or subtree 
               <xref target="RFC6241" format="default"/> filtering as described in 
               <xref target="RFC8639" format="default"/> Section 2.2.  
            </t>
            <t>
               While the YANG model provides great flexibility for configuring a homogeneous 
               network of devices, it becomes a burden in challenged networks where concise 
               encoding is necessary. The YANG schema provides flexibility in the organization 
               of data to the model developer. The YANG schema supports a broad range of data 
               types noted in <xref target="RFC6991" format="default"/>. All the data nodes 
               within a YANG model are referenced by a verbose, string-based path of the module, 
               sub-module, container, and any data nodes such as lists, leaf-lists, or leaves, 
               without any explicit hierarchical organization based on data or object type. 
            </t>
            <t>
               Recent efforts for compression of the YANG model have used CBOR 
               <xref target="RFC9254" format="default"/> and SIDs 
               <xref target="I-D.ietf-core-sid" format="default"/> to address YANG data nodes 
               through integer identifiers. However, these compression strategies lack a formal 
               hierarchical structure. The manual mapping of SIDs to YANG modules and data nodes 
               limits the portability of these models and further increases the size of any 
               encoding scheme.
            </t>
         </section>
      </section>


      <section toc="default" numbered="true">
         <name>Takeaways from Existing Network Management Protocols</name>
         <t>
            While the protocols described above are useful and well-realized for different 
            applications and networking environments, they simply do not meet the requirements 
            for the management of challenged networks. However, that does not exclude features 
            from each from contributing to the design of DTNMA. 
         </t>
         <t>
            The concept of a data model for describing network configuration elements has 
            been used by many protocols to ensure compliance between managing and managed 
            devices. A data model provides error checking and bounds operations, which is 
            necessary when controlling mission critical devices. 
         </t>
         <t>
            The SNMP MIBs provide well-organized, hierarchical OIDs which support the 
            compressibility necessary for challenged DTNs. YANG, NETCONF, and RESTCONF 
            support notification abilities needed for DTN network management, but have 
            limited features for describing autonomous execution and behavior. 
         </t>
         <t>
            CORECONF provides CBOR encoding and concise reference abilities using SIDs, 
            but lack a hierarchical structure or authoritative planning to allocation. While 
            this approach will become too verbose and prove limiting in the future, the 
            encoding considerations from CORECONF can be used to inform the design of the 
            DTNMA.
         </t>
      </section>
   </section>


   <section toc="default" numbered="true">
      <name>Motivation</name>

      <t>
         Early work on the rationale and motivation for specialized management
         for the DTN architecture was captured in 
         <xref target="BIRRANE1" format="default"/>,
         <xref target="BIRRANE2" format="default"/>, and 
         <xref target="BIRRANE3" format="default"/>. Prototyping work done in 
         accordance with the DTN Research Group within the IRTF as documented 
         in <xref target="I-D.irtf-dtnrg-dtnmp" format="default"/> provides 
         some of the desirable properties and necessary adaptations for this 
         proposed management system for challenged networks.
      </t>

      <section toc="default" numbered="true">
         <name>The Future of Autonomous and Autonomic Network Management Solutions</name>
         <t>
            The future of network operations requires more autonomous behavior including 
            self-configuration, self-management, self-healing, and self-optimization. 
            One approach to support this is termed Autonomic Networking 
            <xref target="RFC7575" format="default"/> and includes many recent efforts 
            describe Autonomic architecture and protocols  
            <xref target="RFC8993" format="default"/> as well as cite the gaps that exist 
            between traditional and Autonomic Networking approaches 
            <xref target="RFC7576" format="default"/>. Challenged networks require similar 
            degrees of autonomy, however they lack the ability to depend on the complex 
            coordination between nodes and the centralized and distributed supporting 
            infrastructure that Autonomic networking proposes. 
         </t>
         <t>
            Policy-based management is a well-established approach that uses business and 
            operations support systems to monitor and manage devices and networks in 
            real-time. These systems leverage various, existing network management protocols 
            and their supporting features, such as the use of YANG module classification 
            types <xref target="RFC8199" format="default"/>, to describe abstract services 
            and support configuration of service level agreements. These services can then 
            enact additional control over devices using network element modules. This 
            approach is quite comprehensive but requires sufficient, supporting 
            infrastructure and synchronous access, which cannot be provided by challenged 
            networks.
         </t>
      </section>

      <section numbered="true" toc="default">
         <name>A Network Management Approach for the DTN Architecture</name>
         <t>
            The DTNMA is built to operate in extremely challenged environments.
            This means that certain features of network management protocols 
            might not be as useful in the DTN environment as in well-resourced
            environments. Similarly, some features not built into existing
            network management protocols may be needed to build interoperable
            systems. 
         </t>
         <t>
            The DTNMA proposes a data model that is that is designed for the compression 
            required for a challenged network. The efficiency of data encoding is limited by 
            the efficiency of the underlying data model. For this reason, naming schemes for 
            the DTNMA must be hierarchical and patternable, supporting the level of 
            compressibility needed by the resource-constrained devices that form a challenged 
            network.
         </t>
         <t>
            Autonomous behavior is required for the management of a DTN, which is characterized 
            by link delays and disruptions. The constrained autonomy model of the DTNMA provides 
            the deterministic management necessary for managed devices to detect and respond to 
            events without intervention from an in-the-loop managing device. The separation of 
            remote and local, autonomous managing devices supports autonomous behavior even when 
            synchronization is not feasible. 
         </t>
      </section>
    </section>

    <section toc="default" numbered="true">
      <name>Reference Model</name>

      <t>
        There are a multitude of ways in which both existing and emerging
        network management protocols, APIs, and applications can be 
        integrated for use in challenged environments. However, expressing
        the needed behaviors of the DTNMA in the context of any of these
        pre-existing elements risks conflating systems requirements, 
        operational assumptions, and implementation design constraints. 
      </t>

      <section toc="default" numbered="true">
        <name>Important Concepts</name>
        <t>
          This section describes a network management concept for challenged 
          networks (generally) and those conforming to the DTN architecture 
          (in particular). The goal of this section is to describe how DTNMA
          services provide DTNMA desirable properties.
        </t>

        <aside>
          <t indent="0">
            NOTE: This section assumes a BPv7 underlying network transport. Bundles 
            are the baselined transport protocol data units of the DTN 
            architecture. Additionally, they may be used in a variety of 
            network architectures beyond the DTN architecture. Therefore,
            assuming bundles is a convenient way of scoping DTNMA to any 
            network or network architecture that relies on BPv7 features.
          </t>
        </aside>
      
        <t>
          Similar to other network management architectures, the DTNMA draws
          a logical distinction between a managed device and a managing
          device. Managed devices use a DTNMA Agent (DA) to manage 
          resident applications. Managing devices use a DTNMA
          Manager (DM) to both monitor and control DAs. 
        </t>

        <aside>
          <t indent="0">
            NOTE: The terms "managing" and "managed" represent logical
            characteristics of a device and are not, themselves, mutually
            exclusive. For example, a managed device might, itself, also manage
            some other device in the network. Therefore, a device may support 
            either or both of these characteristics.
         </t>
        </aside>

        <t>
          The DTNMA differs from some other management architectures in 
          three significant ways, all related to the need for a device to 
          self-manage when disconnected from a managing device.
        </t>

        <ol spacing="normal">
          <li>
            Pre-shared Definitions. Managing and managed devices should operate
            using pre-shared data definitions and models. This implies that
            static definitions should be standardized whenever possible and
            that managing and managed devices may need to negotiate definitions
            during periods of connectivity.
          </li>

          <li>
            Agent Self-Management. A managed device may find itself 
            disconnected from its managing device. In many challenged networking scenarios, 
            a managed device may spend the majority of its time without a regular connection 
            to a managing device. In these cases, DAs manage themselves by applying 
            pre-shared policies received from managing devices.
          </li>

          <li>
            Command-Based Management. Managing devices communicate with managed
            devices through an envisioned command and control interface. Unlike
            other network management approaches where managers locally construct
            datastores and databases for bulk updates, the DTNMA presumes that
            managed device databases are managed through a command-based
            interface. This, in part, is driven by the need for DAs
            to receive updates from both remote management devices and local
            autonomy.
          </li>
        </ol>
      </section>

      <section toc="default" numbered="true">
        <name>Model Overview</name>

      <t>
        A DTNMA reference model is
        provided in <xref target="dtnma_ref_model"/> below.
        In this reference model, applications and services on a managing 
        device communicate with a DTNMA Manager (DM) which uses pre-
        shared definitions to create a set of directives that can be sent 
        to a managed device's DTNMA Agent (DA). The DA provides local
        monitoring and control of the applications and services resident
        on the managed device. The DA also performs local data fusion as
        necessary to synthesize data products (such as reports) that can
        be sent back to the DM when appropriate. 
      </t>


      <t keepWithNext="true">DTNMA Reference Model</t>
      <figure anchor="dtnma_ref_model">
        <artwork align="center" name="" type="" alt=""><![CDATA[    
         Managed Device                             Managing Device 
 +----------------------------+             +-----------------------------+
 | +------------------------+ |             | +-------------------------+ |
 | |Applications & Services | |             | | Applications & Services | |
 | +----------^-------------+ |             | +-----------^-------------+ |  
 |            |               |             |             |               |
 | +----------v-------------+ |             | +-----------v-------------+ |
 | | DTNMA  +-------------+ | |             | | +-----------+   DTNMA   | |
 | | AGENT  | Monitor and | | |  Controls   | | |  Policy   |  MANAGER  | |
 | |        |   Control   | | |<============| | | Encoding  |           | |   
 | | +------+-------------+ | |             | | +-----------+-------+   | |
 | | |Admin | Data Fusion | | |============>| | | Reporting | Admin |   | |  
 | | +------+-------------+ | |    Reports  | | +-----------+-------+   | |
 | +------------------------+ |             | +-------------------------+ |
 +----------------------------+             +-----------------------------+
                 ^                                        ^
                 |          Pre-Shared Definitions        |
                 |      +---------------------------+     |
                 +------| - Autonomy Model          |-----+
                        | - Application Data Models |
                        | - Runtime Data Stores     |
                        +---------------------------+ 
     ]]></artwork>
      </figure>


      <t>
        This model preserves the familiar concept of "managers" resident on
        managing devices and "agents" resident on managed devices. However,
        the DTNMA model is unique in how the DM and DA operate. The DM is
        used to pre-configure DAs in the network with management policies.
        it is expected that the DAs, themselves, perform monitoring and
        control functions on their own. In this way, a properly configured
        DA may operate without a timely, reliable connection back to a DM. 
      </t>
    </section>

      <section toc="default" numbered="true">
        <name>Functional Elements</name>

        <t>
          The reference model illustrated in <xref target="dtnma_ref_model"/>
          implies the existence of certain logical elements whose roles and 
          responsibilities are discussed in this section.
        </t>

        <section toc="default" numbered="true">
          <name>Managed Applications and Services</name>
          <t>
            By definition, managed applications and services reside on a 
            managed device. These software entities can be controlled through
            some interface by the DA and their state can be sampled as part of
            periodic monitoring. It is presumed that the DA on the managed
            device has the proper data model, control interface, and 
            permissions to alter the configuration and behavior of these
            software applications. 
          </t>
        </section>

        <section toc="default" numbered="true">
          <name>DTNMA Agent</name>

          <t>
            A DTNMA Agent resides on a managed device. As is the case 
            with other network management approaches, this agent is responsible
            for the monitoring and control of the applications local to that
            device. Unlike other network management approaches, the agent 
            accomplishes this task without a regular connection to a DTNMA
            Manager.
          </t>

          <t>
            The DTNMA Agent performs three major functions on a managed 
            device: the monitoring and control of local applications, 
            production of data analytics, and the administrative 
            control of the agent itself. 
          </t>

          <section toc="default" numbered="true">
            <name>Monitoring and Control</name>

            <t>
              DTNMA Agents monitor the status of applications running on their
              managed device and selectively control those applications as a
              function of that monitoring. The following components are used to perform monitoring and control on an agent. 
            </t>

            <dl newline="true" spacing="normal" indent="8">           
              
              <dt>Rules Database</dt>
              <dd>
                A DTNMA Agent monitors the state of the managed device looking
                for pre-defined stimuli and, when encountered, issuing a
                pre-defined response. The tuple of stimulus-response is termed
                a "rule". Within the DTNMA these rules are the embodiment of
                policy expressions received from managed and evaluated at
                regular intervals by the autonomy engine. The rules database is
                the collection of active rules known to the DA.
              </dd>            

              <dt>Autonomy Engine</dt>
              <dd>
                The DA autonomy engine is configured with policy 
                expressions describing expected reactions to potential events.
                This engine is configured by managers during periods of 
                connectivity. Once configured, the engine may function without 
                other access to any managing device. This engine may also reconfigure 
                itself as a function of policy.
              </dd>            

              <dt>Application Control Interfaces</dt>
              <dd>
                DTNMA Agents must support control interfaces for all
                managed applications.  Control interfaces are used to alter
                the configuration and behavior of an application. These 
                interfaces may be custom for each application, or as provided 
                through a common framework such as provided by an operating 
                system. 
              </dd>
            </dl>
          </section>

          <section toc="default" numbered="true">
            <name>Data Fusion</name>

            <t>
              DTNMA Agents generate new data elements as a function of the
              current state of the managed device and its applications. These
              new data products may take the form of individual data values, 
              or new collections of data used for reporting. The logical 
              components responsible for these behaviors are as follows.
            </t>

            <dl newline="true" spacing="normal" indent="8">
              <dt>Application Data Interfaces</dt>
              <dd>
                DAs must support mechanisms by which important state is 
                retrieved from various applications resident on the managed
                device. These data interfaces may be custom for each
                application, or as provided through a common framework such
                as provided by an operating system.
              </dd>

              <dt>Data Value Generators</dt>
              <dd>
                DAs may support the generation of new data values as a 
                function of other values collected from the managed device.
                These data generators may be configured with descriptions of 
                data values and the data values they generate may be included
                in the overall monitoring and reporting associated with the
                managed device. 
              </dd>

              <dt>Report Generators</dt>
              <dd>
                DAs may, as appropriate, generate collections of data values
                for transmission to managers. Reports can be generated as a
                matter of policy or in response to the handling of critical
                events (such as errors), or other logging needs. The 
                generation of a report is independent of whether there exists 
                any connectivity between a DA and a DM. It is assumed 
                that reports are queued on an agent pending transmit 
                opportunities. 
              </dd>
            </dl>
          </section>


          <section toc="default" numbered="true">
            <name>Administration</name>

            <t>
              Agents in the DTNMA must perform a variety of administrative
              services in support of their configuration. The significant
              such administrative services are as follows.
            </t>

            <dl newline="true" spacing="normal" indent="8">
              <dt>Manager Mapping</dt>
              <dd>
                The DTNMA allows for a many-to-many relationship amongst DTNMA
                Agents and Managers. A single DM may configure multiple
                DAs, and a single DA may be configured by multiple
                DMs. Multiple managers may exist in a network for at least
                two reasons. First, different managers may exist to control
                different applications on a device. Second, multiple managers
                increase the likelihood of an agent encountering a manager when
                operating in a sparse or challenged environment.
              </dd>

              <dt>Data Validators</dt>
              <dd>
                DAs might handle large amounts of data produced by various
                sources, to include data from local managed applications, 
                remote managers, and self-calculated values. DAs should 
                ensure that externally generated data values are both verified 
                and validated. DAs should also verify, at a minimum, the 
                integrity and confidentiality of data values.
              </dd>

              <dt>Access Controllers</dt>
              <dd>
                DAs support authorized access to the management of 
                individual applications, to include the administrative 
                management of the agent itself. This means that a manager may
                only set policy on the agent pursuant to verifying that the
                manager is authorized to do so.
              </dd>

            </dl>
          </section>
         </section>

         <section toc="default" numbered="true">
            <name>Managing Applications and Services</name>

            <t>
               Managing applications and services reside on a managing device and serve 
               as the both the source of DA policy statements
               and the target of DA reporting. They may operate with or 
               without an operator in the loop. 
            </t>
            <t>
               Unlike management applications in unchallenged networks, these
               applications cannot exert closed-loop control over any managed
               device application. Instead, these applications must be built to
               exercise open-loop control by producing policies that can be
               configured and enforced on managed devices by DAs.
            </t>
         </section>

         <section toc="default" numbered="true">
            <name>DTNMA Manager</name>

            <t>
              A DTNMA Manager resides on a managing device. This manager
              provides an interface between various managing applications and 
              services and the DTNMA Agents that enforce their policies. In
              providing this interface, DMs translate between whatever
              native interface exists to various managing applications and the
              autonomy models used to encode management policy. 
            </t>
            <t>
              The DTNMA Manager performs three major functions on a managing
              device: policy encoding, reporting, and administration.
            </t>

            <section toc="default" numbered="true">
              <name>Policy Encoding</name>

              <t>
                DTNMA Managers translate policy directives from managing
                applications and services into standardized policy expressions
                that can be recognized by DTNMA Agents. The following logical
                components are used to perform this policy encoding.
              </t>

              <dl newline="true" spacing="normal" indent="8">
                <dt>Application Control Interfaces</dt>
                <dd>
                  DTNMA Managers must support control interfaces for managing
                  applications. These control interfaces are used to receive
                  desired policy statements from applications. These interfaces
                  may be custom for each application, or as provided through 
                  a common framework, protocol, or operating system.
                </dd>

                <dt>Policy Encoders</dt>
                <dd>
                  DTNMA Agents implement a standardized autonomy model 
                  comprising standardized data elements. The open-loop control
                  structures provided by managing applications must be
                  represented in this common language. Policy encoders perform
                  this encoding function.
                </dd>

                <dt>Policy Aggregators</dt>
                <dd> 
                  DTNMA Managers must collect multiple encoded policies into
                  messages that can be sent to DAs over the network. This
                  implies the proper addressing of agents and the creation of
                  messages that support store-and-forward operation. It is
                  recommended that control messages be packaged using the
                  BPv7 when there may be intermittent connectivity between 
                  DMs and DAs.
                </dd>
              </dl>
            </section>

            <section toc="default" numbered="true">
              <name>Reporting</name>

              <t>
                DTNMA Managers receive reports on the status of managed devices
                during period of connectivity with the DTNMA agents on those
                devices. The following logical components are needed to 
                implement reporting capabilities on a manager.
              </t>

              <dl newline="true" spacing="normal" indent="8">
                <dt>Report Collectors</dt>
                <dd>
                  DTNMA Managers receive reports from DTNMA Agents in an
                  asynchronous manner. This means that reports may be received
                  out of chronological order and in ways that are difficult or
                  impossible to associate with a specific policy from a 
                  managing application. DMs collect these reports and 
                  extract their data in support of subsequent data analytics.
                </dd>

                <dt>Data Analyzers</dt>
                <dd> 
                  DTNMA Managers review sets of data reports from DTNMA Agents
                  with the purpose of extracting relevant data to communicate
                  with managing applications. This may include simple data
                  extraction or may include more complex processing such as 
                  data conversion, data fusion, and appropriate data 
                  analytics.
                </dd>

                <dt>Application Data Interfaces</dt>
                <dd>
                  DMs must support mechanisms by which data retrieved
                  from agent may be provided back to managing devices. These 
                  interfaces may be custom for each application, or as 
                  provided through a common framework, protocol, or operating 
                  system.
                </dd>
              </dl>
            </section>

            <section toc="default" numbered="true">
              <name>Administration</name>

              <t>
                Agents in the DTNMA must perform a variety of administrative
                services in support of their proper configuration and
                operation. This includes the following logical components.
              </t>

              <dl newline="true" spacing="normal" indent="8">
                <dt>Agent Mappings</dt>
                <dd>
                  The DTNMA allows DMs to communicate with multiple
                  DAs. However, not every agent in a network is expected
                  to support the same set of Application Data Models or
                  otherwise have the same set of managed applications running.
                  For this reason, DMs must determine individual DA
                  capabilities to ensure that only appropriate controls are
                  sent to a DA.
                </dd>

                <dt>Data Validators</dt>
                <dd>
                  DMs handle large amounts of data produced by various 
                  sources, to include data from managing applications and 
                  DAs. Managers must ensure that all data values are both 
                  verified and validated. In particular, managers must verify, 
                  at a minimum, the integrity and confidentiality of data 
                  values received from agents over a network.
                </dd>

                <dt>Access Controllers</dt>
                <dd>
                  DMs should only send controls to agents when the manager
                  is configured with appropriate access to both the agent and
                  the applications being managed. 
                </dd>
              </dl>
            </section>
          </section>

          <section toc="default" numbered="true">
            <name>Pre-Shared Definitions</name>

            <t>
              A consequence of operating in a challenged environment is the
              potential inability to negotiate information in real-time. For 
              this reason, the DTNMA requires that managed and managing devices
              operate using pre-shared definitions rather than relying on data
              definition negotiation. 
            </t>
            
            <t>
              The three types of pre-shared definitions in the DTNMA are the
              DTNMA Agent autonomy model, managed application data models,
              and any runtime data shared by managers and agents.
            </t>

            <dl newline="true" spacing="normal" indent="8">
              <dt>Autonomy Model</dt>
              <dd>
                <t>
                  A DTNMA autonomy model represents the data elements and 
                  associated autonomy structures that define the behavior of 
                  the agent autonomy engine. A standardized autonomy 
                  model allows for individual implementations of DTNMA Agents, and DTNMA Managers to interoperate. A standardized model also
                  provides guidance to the design and implementation of both 
                  managed and managing applications.
                </t>

                <aside>
                  <t indent="0">
                    NOTE: A standardized autonomy model is required for the
                    interoperable encoding of policy statements. However, the
                    DTNMA does not standardize a specific transport of those 
                    policy statements between agents and managers. The DTNMA
                    also does not specify any transport-related encoding.
                  </t>
                </aside>
              </dd>

               <dt>Application Data Models</dt>
               <dd>
                  As with other network management architectures the DTNMA 
                  pre-supposes that managed applications (and services) define
                  their own data models. These data models include the data
                  produced by, and controls implemented by, the application. These models are expected to be static for individual 
                  applications and standardized for applications implementing 
                  standard protocols.
               </dd>

               <dt>Runtime Data Stores</dt>
               <dd>
                  Runtime data stores, by definition, include data that is
                  defined at runtime. As such, the data is not pre-shared prior
                  to the deployment of managers and agents. Pre-sharing in this
                  context means that managers and agents are able to define and
                  synchronize data elements prior to their operational use in
                  the system. This synchronization happens during periods of
                  connectivity between managers and agents. 
               </dd>
            </dl>

         </section>
      </section>
    </section>

    <section toc="default" numbered="true">
      <name>Desired Services</name>
      <t>   
        This section provides a description of the services provided by DTNMA
        elements on both managing and managed devices. These service 
        descriptions differ from other management descriptions because of 
        the unique characteristics of the DTNMA operating environment.
      </t>

      <aside>        
        <t indent="0">
          Predicate autonomy, asynchronous data transport, and intermittent
          connectivity require new techniques for device management. Many
          of the services discussed in this section attempt to provide
          continuous operation of a managed device through periods of 
          no connectivity.
        </t>
      </aside>
        
      <section toc="default" numbered="true">
        <name>Local Monitoring and Control</name>
        <t> 
          DTNMA monitoring is associated with the agent autonomy engine. The 
          term monitoring implies timely and regular access to
          information such that state changes may be acted upon within some
          response time period. Within the DTNMA, connections between a 
          managed and managing device are unable to provide such a connection
          and, thus, monitoring functions must be handled on the managed
          device.
        </t>

        <t>
          Predicate autonomy on a managed device should collect state 
          associated with the device at regular intervals and evaluate that
          collected state for any changes the require a preventative or 
          corrective action. Similarly, this monitoring may cause the device
          to generate one or more reports destined to the managing device.
        </t>

        <t>
          Similar to monitoring, DTNMA control results in actions by the
          agent to change the state or behavior of the managed
          device. All control in the DTNMA is local control. In cases where 
          there exists a timely connection to a manager, received controls a
          are still run through the autonomy engine. In this case, the 
          stimulus is the direct receipt of the control and the response is
          to immediately run the control. In this way, there is never a 
          dependency on a session or other stateful exchange with any remote 
          entity.
        </t>
      </section>

      <section toc="default" numbered="true">
        <name>Local Data Fusion</name>
        <t> 
          DTNMA Fusion services produce new data products from existing 
          state on the managed device. These fusion products can be anything
          from simple summations of sampled counters complex calculations of
          behavior over time. 
        </t>
        <t>
          Fusion is an important service in the DTNMA because fusion 
          products are part of the overall state of a managed device. 
          Complete knowledge of this overall state is important for the 
          management of the device, particularly in a stimulus-response
          system whose stimuli are evaluated against this state.
        </t>
        <t>
          While some fusion is performed in any management system, the DTNMA
          requires fusion to occur on the managed device itself. If the 
          network is partitioned such that no connection to a managing device
          is available, fusion must happen locally. Similarly, connections to
          a managing device might not remain active long enough for 
          round-trip data exchange or may not have the bandwidth to send all
          sampled data. 
        </t>
      </section>
      
      <section toc="default" numbered="true">
        <name>Remote Configuration</name>
        <t>
          DTNMA configuration services must update the local configuration 
          of a managed device with the intent to impact the behavior and
          capabilities of that device. The change of device configurations is
          a common service provided by many network management systems. The
          DTNMA has a unique approach to configuration for the following
          reasons.
        </t>

        <t>
          The DTNMA configuration service is unique in that the selection of
          managed device configurations must occur, itself, as a function of
          the state of the device. This implies that management proxies on
          the device store multiple configuration functions that can be 
          applied as needed without consultation from a managing device.
        </t>

        <aside>
          <t indent="0">
            This approach differs from the management concept of selecting 
            from multiple datastores in that DTNMA configuration functions
            can target individual data elements and can calculate new values
            from local device state.
          </t>
        </aside>

        <t>
          When detecting stimuli, the agent autonomy engine must support
          a mechanism for evaluating whether application monitoring data
          or runtime data values are recent enough to indicate a change of
          state. In cases where data has not been updated recently, it may
          be considered stale and not used to reliably indicate that some
          stimulus has occurred. 
        </t>
      </section>

      <section toc="default" numbered="true">
        <name>Remote Reporting</name>
        <t> 
          DTNMA reporting services collect information known to the managed
          device and prepare it for eventual transmission to one or more
          managing devices. The creation of these reports are intelligent in
          that the contents and frequency of this reporting occurs as a 
          function of the state of the managed device, independent of the
          managing device.
        </t>

        <t>
          Once generated, it is expected that reports might be queued pending
          a connection back to a managing device. Therefore, reports must be
          differentiable as a function of the time they were generated.
        </t>
        
        <t>
          When reports are sent to a managing device over a challenged 
          network, they may arrive out of order due to taking different paths
          through the network or being delayed due to retransmissions. A
          managing device should not infer meaning from the order in which 
          reports are received, not should a given report be associated with
          a specific control or autonomy action on a given managed device.
        </t>  

      </section>

      <section toc="default" numbered="true">
        <name>Authorization</name>
        <t> 
          Both local and remote services provided by the DTNMA affect the
          behavior of multiple applications on a managed device and may 
          interface with multiple managing devices. It is expected that
          transport protocols used in any DTNMA implementation support 
          security services such as integrity and confidentiality. 
        </t>

        <t>
          Authorization services enforce the potentially complex mapping of
          other DTNMA services amongst managed and managing devices in the
          network. For example, fine-grained access control can determine
          which managing devices receive which reports, and what controls can
          be used to alter which managed applications. 
        </t>

        <t>
          This is particularly beneficial in networks that either deal with
          multiple administrative entities or overlay networks that cross
          administrative boundaries. Whitelists, blacklists, key-based 
          infrastructures, or other schemes may be used for this purpose.
        </t>
      </section>
    </section>

    <section toc="default" anchor="autonomy_model" numbered="true">
       <name>Logical Autonomy Model</name>
       <t>
          An important characteristic of the DTNMA is the shift in the role
          of a managing device. In the DTNMA, managers configure the autonomy
          engines on agents, and it is the agents that provide local device
          management. One way to describe the behavior of the agent autonomy 
          engine is to describe the characteristics of the autonomy model it
          implements. 
        </t>

        <t>
          This section describes a logical autonomy model in terms of the
          abstract data elements that would comprise the model. Defining
          abstract data elements allows for an unambiguous discussion of
          the behavior of an autonomy model without mandating a particular
          design, encoding, or transport associated with that model. 
        </t>

        <section numbered="true" toc="default">
          <name>Overview</name>
          
          <t>
            Managing autonomy on a potentially disconnected device must 
            behave in both an expressive and deterministic way. Expressivity
            allows for the model to be configured for a wide range of future
            situations. Determinism allows for the forensic reconstruction of
            device behavior as part of debugging or recovery efforts. 
          </t>

          <t>
            The DTNMA autonomy model is built on a stimulus-response model
            in which the autonomy system responses to pre-identified stimuli 
            with pre-configured responses. Stimuli are identified using
            simple predicate logic that examines aspects of the state of the
            managed device. Responses are implemented by running one or more
            procedures on the managed device.
          </t>
          <t>
            As with many such systems, behavior can be captured using the
            construct:
          </t>
          <t>
            IF stimulus THEN response
          </t>

          <aside>
            <t indent="0">
              NOTE: The use of predicate logic and a stimulus-response
              system does not conflict with the use of higher-level 
              autonomous function or the incorporation of machine learning. 
              The DTNMA recommended autonomy model allows for the use of
              higher levels of autonomous function as moderated and 
              controlled by a more deterministic base autonomy system.
            </t>
            <t indent="0">
              By allowing for a multi-tier autonomy system, the DTNMA may
              increase the adoption of higher-functioning autonomy because
              of the reporting, control, and determinism of the underlying
              predicate system. 
            </t>
          </aside>

          <t keepWithNext="true">DTNMA Autonomy Model</t>
          <figure anchor="dtnma_aut_model">
            <artwork align="center" name="" type="" alt=""><![CDATA[    

   Managed Applications  |           DTNMA Agent           |   DTNMA Manager
-------------------------+---------------------------------+-----------------+
                         |   +---------+                   |
                         |   |  Local  |                   |   Encoded
                         |   | Rule DB |<--------------------- Policy 
                         |   +---------+                   |   Expressions
                         |        ^                        |
                         |        |                        |
                         |        v                        |
                         |   +----------+     +---------+  |
      Monitoring Data------->|   Agent  |     | Runtime |  | 
                         |   | Autonomy |<--->|  Data   |<---- Definitions
  Application Control<-------|  Engine  |     |  Store  |  |
                         |   +----------+     +---------+  |
                         |         |                       |
                         |         +--------------------------> Reports
                         |                                 |
         ]]></artwork>
          </figure>

          <t>
            The flow of data into and out of the agent autonomy engine is
            illustrated in <xref target="dtnma_aut_model"/>. In this model,
            the autonomy engine stores the combination of stimulus 
            conditions and associated responses as a set of "rules" in a
            rules database. This database is updated through the execution of
            the autonomy engine and as configured from policy statements
            received by managers. 
          </t>
          <t>
            Stimuli are detected by examining the state of applications as
            reported through application monitoring interfaces and through
            any locally-derived data. Local data is calculated in accordance
            with definitions also provided by managers as part of the runtime
            data store. 
          </t>
          <t>
            Responses to stimuli are run as updated to the rules database,
            updated to the runtime data store, controls sent to applications,
            and the generation of reports.
          </t>

        </section>

        <section numbered="true" toc="default">
          <name>Model Characteristics</name>

          <t>
            There are a number of ways to represent data values, and many
            data modeling languages exist for this purpose. When 
            considering how to model data in the context of the DTNMA
            autonomy model there are some modeling features that should be
            present to enable functionality. There are also some modeling
            features that should be prevented to avoid ambiguity.
          </t>
          <t>
            Traditional network management approaches favor flexibility in 
            their data models. The DTNMA stresses deterministic behavior
            that supports forensic analysis of agent activities "after the
            fact". As such, the following statements should be true of all
            data representations relating to DTNMA autonomy. 
          </t>

          <ul spacing="normal">
            <li>
              Strong Typing - The predicates and expressions that comprise
              the autonomy services in the DTNMA should require strict data
              typing. This avoids errors associated with implicit data
              conversions and helps detect misconfiguration. 
            </li>
            <li>
              Acyclic Dependency - Many dependencies exist in an autonomy model, particularly when combining individual expressions or
              results to create complex behaviors. Implementations that
              conform to the DTNMA must prevent circular dependencies. 
            </li>
            <li>
              Fresh Data - Autonomy models operating on data values 
              presume that their data inputs represent the actionable state
              of the managed device. If a data value has failed to be 
              refreshed within a time period, autonomy might incorrectly
              infer an operational state. Regardless of whether a data
              value has changed, DTNMA implementations must provide some
              indicator of whether the data value is "fresh" meaning that
              is still represents the current state of the device.
            </li>
            <li>
              Pervasive Parameterization - Where possible, autonomy
              model objects should support parameterization to allow for
              flexibility in the specification. Parameterization allows for
              the definition of fewer unique model objects and also can
              support the substitution of local device state when 
              exercising device control or data reporting.
            </li>
            <li>
              Configurable Cardinality - The number of data values that can
              be supported in a given implementation is finite. For devices
              operating in challenged environments, the number of supported 
              objects may be far fewer than that which can be supported by
              devices in well-resourced environments. DTNMA implementations
              should define limits to the number of supported objects that
              can be active in a system at one time, as a function of the
              resources available to the implementation.
            </li>
            <li>
              Control-Based Updates - The agent autonomy engine changes the
              state of the managed device by running controls on the device.
              This is different from other approaches where the behavior of
              a managed device is updated only by updated configuration
              values, such as in a table or datastore. Altering behavior via
              one or more controls allows checking all pre-conditions before
              making changes as well as providing more granularity in the
              way in which the device is updated. Where necessary, controls
              can be defined to perform bulk updated of configuration data
              so as not to lose that update modality. 
            </li>
          </ul>
        </section>

        <section numbered="true" toc="default">
          <name>Data Value Representation</name>
          <t>
            The expressive representation of data values is fundamental to 
            the successful construction and evaluation of predicates in the
            DTNMA autonomy model. This section describes the characteristics
            of data representation for this model, both as individual data
            values and ways to aggregate these values into collections.
          </t>

          <t>
            There is a useful distinction that can be made regarding the
            way in which data values are assigned in the context of an
            autonomy system. This section discusses four categories of 
            assigning strategies and proposes mnemonics to differentiate
            each. 
          </t>

          <aside>
            <t indent="0">
              NOTE: The assignment and naming of data values are
              different from the base type of the data value. The DTNMA
              assumes common data types (e.g., integer, real, string,
              byte) would be supported in any operational autonomy model.
            </t>
          </aside>

          <t>
            The four categories of value assignment can be derived by
            determining whether values are calculated internal or
            external to the autonomy model and whether, once calculated,
            these values can be changed. 
          </t>

          <table anchor="data_values" align="center">
            <name>Data Value Categories and Mnemonics</name>
              <thead>
                <tr>
                  <th align="center"></th>
                  <th align="center">Immutable</th>
                  <th align="center">Mutable</th>
                </tr>
              </thead>
              <tbody>
              <tr>
                <td align="center">Internally Defined</td>
                <td align="center">CONST</td>
                <td align="center">VAR</td>
              </tr>
              <tr>
                <td align="center">Externally Defined</td>
                <td align="center">LIT</td>
                <td align="center">EDD</td>
              </tr>
            </tbody>
          </table>

        <t>
          Constants (CONST) - Constant data values are named values that
          are defined in the context of the autonomy model. Both the name
          and the value of the constant are fixed and cannot be changed.
          An example of a constant would be defining the numerical value 
          PI to 2 digits of precision (PI_2_DIGITS = 3.14).
        </t>

        <t>
          Literals (LIT) - Literal data values are those whose name and
          value are the same. These values are used to represent atomic
          values that are too simple to be represented a constant. For
          example, the number 4 is a literal value. The name "4" and the
          value 4 are the same and inseparable. Literal values cannot
          change ("4" could not be used to mean 5) and they are defined
          external to the autonomy model (the autonomy model is not 
          expected to redefine what 4 means).
        </t>

        <t> 
          Variables (VAR) - Variables are named data values defined
          by the autonomy model itself. They can be added and removed as
          a function of the function of the autonomy model, and the
          autonomy model is the sole determiner of their value. An 
          example of a variable in an autonomy model would be the number
          of times that a particular predicate evaluated to true.
        </t>

        <t>
          Externally-Defined Data (EDD) - External data values are those
          provided to the autonomy model from its hosting environment. 
          These values are the foundation of state-based autonomy as they
          capture the state of the managed device. The autonomy model 
          treats these values as read-only inputs. Examples of 
          externally defined values include temperature sensor readings
          and the instantaneous data rate from a radio.
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>Data Reporting</name>
        <t>
          The DTNMA autonomy model should, as required, report on the
          state of its managed device (to include the state of the
          model itself). This reporting should be done as a function of
          the changing state of the managed device, independent of the
          connection to any managing device. Queuing reports allows for
          later forensic analysis of device behavior, which is a 
          desirable property of DTNMA management. 
        </t>
        
        <t>
          There are at least four useful categories of reporting
          mechanism that should be present in the DTNMA These categories
          can be distinguished by whether the reported data share a 
          common structure or not, and whether the report mechanism
          represents a scheme or data adherent to that schema. 
        </t>

        <table anchor="report_values" align="center">
          <name>Data Reporting Mechanisms and Mnemonics</name>
            <thead>
              <tr>
                <th align="center"></th>
                <th align="center">Schema</th>
                <th align="center">Values</th>
              </tr>
            </thead>
            <tbody>
            <tr>
              <td align="center">Common Structure</td>
              <td align="center">TBLT</td>
              <td align="center">TBL</td>
            </tr>
            <tr>
              <td align="center">Mixed Structure</td>
              <td align="center">RPTT</td>
              <td align="center">RPT</td>
            </tr>
          </tbody>
        </table>

        <section numbered="true" toc="default">
          <name>Tabular Reports (TBLs) and Tabular Report Templates (TBLTs)</name>
       
          <t>    
            Relational database tables provide collection, filtering, and
            reporting efficiencies when representing series of data 
            collections that share a common syntactic structure and 
            semantic meaning. Tables have a fixed structure identified 
            by one or more vertical columns. They are populated by zero 
            or more data collections, with one row per represented data 
            collection.
          </t>

          <t>
            To the extent that DTNMA reporting includes data collections 
            similarly adhering to a common structure, these reports can
            be modeled similarly to tables. Such reports are called
            tabular reports (TBLs). 
          </t>

          <t>
            Every TBL is populated in accordance to a pre-defined 
            schema, which is termed the Tabular Report Template (TBLT). This 
            template defines the columns that comprise the TBL and associated constraints on data values for those columns. 
          </t>

          <t>                  
            Dissimilar to relational database tables, TBLs are reporting 
            mechanisms. They represent a report generated at a specific
            moment in time. Therefore, a managed device may produce and 
            queue for transmission multiple TBLs for the same TBLT.
          </t>
        </section>

        <section numbered="true" toc="default">
          <name>Reports (RPT) and Report Templates (RPTT)</name>

          <t>
            Not all reportable data collections are efficiently 
            represented in a tabular structure. In cases where there is
            no processing or encoding advantage to a tabular report, a 
            non-tabular representation is needed. This representation is 
            termed the DTNMA report (RPT).
          </t>

          <t>
            A RPT is a snapshot of a collection of data values at a 
            given moment in time. The type, number, order, and other
            details of these data values is given by a schema called
            the Report Template (RPTT).
          </t>
          
          <t>
            Separating the structure (RPTT) and content (RPT) of a
            general purpose reporting mechanism reduces the size of
            generated traffic, which is an important property of the
            DTNMA. 
          </t>
        </section>
      </section>

      <section numbered="true" toc="default">
        <name>Command Execution</name>
        <t>
          The agent autonomy engine requires that managed devices issue commands on themselves as if they were otherwise being controlled 
          by a managing device. The ability to support this type of 
          commanding in the autonomy model is one of the unique requirements of the DTNMA. This approach is not dissimilar to the concept of 
          Remote Procedure Calls (RPCs) that are sometimes used in low-
          latency, high-availability approaches to network management 
          mechanisms. 
        </t>

        <t>
          Command execution in the DTNMA happens through the use of controls 
          and macros.
        </t>

        <t>
          Controls (CTRL) - A control represents a parameterized, predefined 
          procedure that is run by the agent autonomy engine. CTRLs are 
          conceptually similar to RPCs in that they represent
          parameterized functions run on the managed device. However, they
          are conceptually dissimilar from RPCs in that they do not have
          a concept of a return code as they must operate over an 
          asynchronous transport. The concept of return code in an RPC
          implies a synchronous relationship between the caller of the 
          procedure and the procedure being called, which might not be
          possible within the DTNMA. 
        </t>

        <aside>
          <t indent="0">
            NOTE: The use of the term Control in the DTNMA is derived in 
            part from the concept of Command and Control (C2) where control 
            implies the operational instructions that must be undertaken to 
            implement (or maintain) a commanded objective. The agent
            autonomy engine controls a managed device to allow it to fulfill 
            some purpose as commended by a (possibly disconnected) managing
            device.
          </t>

          <t indent="0">
            For example, attempting to maintain a safe internal thermal 
            environment for a spacecraft is considered "thermal control" (
            not "thermal commanding") even though thermal control involves sending commands to heaters, louvers, radiators, and other 
            temperature-affecting components.
          </t>

          <t indent="0">
            Even when CTRLs are received from a managing device with the
            intent to be run immediately, the control-vs-command distinction
            still applies. The CTRL run on the managed device is in 
            service of the command received from the managing device to 
            immediately change the local state of the device. 
          </t>
        </aside>

        <t>
          The success or failure of a CTRL may be handled locally by the 
          agent autonomy engine. Otherwise, the externally observable impact 
          of a CTRL can be understood through the generation and eventual 
          examination of data reports produced by the managed device.
        </t>

        <t>
          Macros (MACRO) - A Macro represents an ordered sequence of CTRLs
          execution. They may be implemented as a set of CTRLs, or as a
          mixed set of both MACRO and CTRL objects. Similar to CTRLs, a
          MACRO object should support parameterization and should not
          support a return code back to a caller.
        </t>
      </section>
       
      <section numbered="true" toc="default">
        <name>Predicate Autonomy</name>
       
        <t>
          The core function of the agent autonomy engine is to apply predetermined responses to predetermined state on a managed device.
          This involves the ability to calculate predicate expressions and 
          the ability to associate the positive evaluation of these 
          expressions with command execution.
        </t>

        <section toc="default" numbered="true">
          <name>Expressions</name>
          <t>
            There are a few instances within the DTNMA autonomy model where
            a value must be calculated by the model itself, to include the following.
          </t>

          <ul spacing="normal">
            <li> Calculating the value of a VAR. </li>              
            <li> Evaluating a predicate to see if it is true. </li>
          </ul>
          
          <t>
            In cases such as these, the DTNMA must support an efficient,
            configurable syntax for defining expressions, calculating the
            value of these expressions based on the local state of the managed device, and using the calculated value in an 
            appropriate way. 
          </t>

          <t>
            Expression (EXPR) - An Expression is a combination of operators 
            and operands used to construct a numerical value from a series 
            of other data values in the autonomy model. 
          </t>

          <t>
            Operator (OP) - An Operator represents a operation performed on 
            at least one operand and returning a single result that, itself, 
            can be used as an operand to some other operator. OPs may 
            represent simple (+, -) or complex (sin, avg) mathematical 
            functions or custom functions defined for the managed device.
          </t>

          <t>
            Operands may be built from any autonomy model object that can 
            be associated with a data value, to include the CONST, LIT, VAR,
            and EDD types, the result of an OP, and the result of a fully
            evaluated EXPR. 
          </t>

          <t>
            Predicate Expression (PRED) - A Predicate Expression is an EXPR
            whose evaluated data value is interpreted in a logical way as
            being either true or false. 
          </t>
        </section>

        <section numbered="true" toc="default">
          <name>Rules</name>

          <t>
            A stimulus-response system associated stimulus detection with a
            commanded response. In the DTNMA, this relationship is captured 
            through the definition of rules. These rules may be defined as 
            focused on either the state of the managed device or optimized 
            to only examine how time has passed on the managed device. 
          </t>

          <t>
            State-Based Rules (SBRs) - A state-based rule is one whose
            stimulus is indicated when a given PRED evaluates to true. Since
            the PRED is a combination of sampled and calculated data values 
            on the managed device, evaluation of the PRED is evaluating the
            relevant state of the device. A SBR is one of the form:
          </t>
          <t>
            IF PRED THEN MACRO
          </t>

          <t>
            Time-Based Rules (TBRs) - A time-based rule is a specialization
            of a SBR that is optimized to only consider the passage of time
            on the managed device. A TBR is one of the form:
          </t>
          <t>
            EVERY interval THEN MACRO
          </t>
        </section>
      </section>    
    </section>      
  
    <section toc="default" numbered="true">
      <name>Use Cases</name>
      <t>
        Using the autonomy model mnemonics defined in <xref target="autonomy_model"/>, this section describes flows through sample
        configurations conforming to the DTNMA. These use cases illustrate 
        remote configuration, local monitoring and control, multiple manager
        support, and data fusion.
      </t>

      <section toc="default" numbered="true">
        <name>Notation</name>
          <t> 
            The use cases presented in this section are documented with a
            shorthand notation to describe the types of data sent between
            managers and agents. This notation, outlined in <xref target="uc_notation"/>, leverages the mnemonic definitions of autonomy
            model elements defined in <xref target="autonomy_model"/>. 
          </t>
           
          <table anchor="uc_notation" align="center">
             <name>Terminology</name>
             <thead>
                <tr>
                   <th align="center">Term</th>
                   <th align="center">Definition</th>
                   <th align="center">Example</th>
                </tr>
             </thead>
             <tbody>
                <tr>
                   <td align="center">EDD#</td>
                   <td align="center">Enumerated EDD definition.</td>
                   <td align="center">EDD1</td>
                </tr>
                <tr>
                   <td align="center">V#</td>
                   <td align="center">Enumerated VAR definition.</td>
                   <td align="center">V1 = EDD1 + V0.</td>
                </tr>
                <tr>
                   <td align="center">ACL#</td>
                   <td align="center">Enumerated Access Control List.</td>
                   <td align="center">ACL1</td>
                </tr>
                <tr>
                   <td align="center">DEF([ACL],ID,EXPR)</td>
                   <td align="center">Define ID from expression. Allow managers in ACL to see this ID.</td>
                <td align="center">DEF([ACL1], V1, EDD1 + EDD2)</td>
                </tr>
                <tr>
                   <td align="center">PROD(P,ID)</td>
                   <td align="center">Produce ID according to predicate 
                   P. P may be a time period (1s) or an expression (EDD1 &gt; 10).</td>
                   <td align="center">PROD(1s, EDD1)</td>
                </tr>
                <tr>
                   <td align="center">RPT(ID)</td>
                   <td align="center">A report containing data named ID.</td>
                   <td align="center">RPT(EDD1)</td>
                </tr>
             </tbody>
          </table>

          <t>
            These notations do not imply any implementation approach. They 
            only provide a succinct syntax for expressing the data flows in
            the use case diagrams in the remainder of this section.
          </t>
        </section>
          
        <section toc="default" numbered="true">
          <name>Serialized Management</name>
          <t>
             This is the nominal configuration of network management where a
             Manager interacts with a set of Agents. The control flows for this are outlined in <xref target="serial_mgmt_ctrl_flow"/>.
          </t>
          
          <t keepWithNext="true">Serialized Management Control Flow</t>
          <figure anchor="serial_mgmt_ctrl_flow">
             <artwork align="center" name="" type="" alt=""><![CDATA[    
           +-----------+           +---------+           +---------+
           | Manager A |           | Agent A |           | Agent B |
           +----+------+           +----+----+           +----+----+
                |                       |                     |
                |-----PROD(1s, EDD1)--->|                     | (1)
                |----------------------------PROD(1s, EDD1)-->|
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     | (2)
                |<----------------------------RPT(EDD1)-------|
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     |
                |<----------------------------RPT(EDD1)-------|
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     |
                |<----------------------------RPT(EDD1)-------|
                |                       |                     |
             ]]></artwork>
          </figure>
          <t keepWithPrevious="true">
             In a simple network, a Manager interacts with multiple Agents.
          </t>
           
          <t>
            In this figure, the Manager A sends a policy to Agents A and B 
            to report the value of an EDD (EDD1) every second in (step 1). 
            Each agent receives this policy and configures their respective 
            autonomy engines for this production. Thereafter, (step 2) each 
            agent produces a report containing data element EDD1 and sends 
            those reports back to the manager.
          </t>
          <t>
            This behavior continues without any additional communications
            from the manager and without requiring that there exist a
            connection back to the manager.
          </t> 
       </section>

       <section toc="default" numbered="true">
        <name>Intermittent Connectivity</name>
        <t>
          This is a challenged configuration of network management where connectivity between Agent B and the Manager is temporarily lost. Flows in this case are 
             outlined in <xref target="challenged_serial_mgmt_ctrl_flow" format="default"/>.
          </t>
           
          <t keepWithNext="true">Challenged Management Control Flow</t>
          <figure anchor="challenged_serial_mgmt_ctrl_flow">
             <artwork align="center" name="" type="" alt=""><![CDATA[    
           +-----------+           +---------+           +---------+
           | Manager A |           | Agent A |           | Agent B |
           +----+------+           +----+----+           +----+----+
                |                       |                     |
                |-----PROD(1s, EDD1)--->|                     | (1)
                |----------------------------PROD(1s, EDD1)-->|
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     | (2)
                |<----------------------------RPT(EDD1)-------|
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     |
                |<----------------------------RPT(EDD1)-------|
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     |
                |                       |            RPT(EDD1)| (3)
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     |
                |                       |            RPT(EDD1)| (4)
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     |
                |<----------------RPT(EDD1), RPT(EDD1)--------| (5)
                |                       |                     |
             ]]></artwork>
          </figure>
          <t keepWithPrevious="true"> 
            In a challenged network, agents store reports pending a 
            transmit opportunity.
          </t>
          <t>
            In this figure, Manager A sends a policy to Agents A and B to 
            produce an EDD (EDD1) every second in (step 1). Each agent 
            receives this policy and configures their respective autonomy 
            engines for this production. Products reports are transmitted when produced (step 2). 
          </t>
          <t>
            At some point, Agent B loses the ability to transmit in the 
            network (steps 3 and 4). During this time period, reports 
            continue to be produced, but queued. This queuing might be done
            by the agent itself or by a supporting transport such as BPv7.
            Eventually, Agent B is able to transmit in the network again 
            (step 5) and all queued reports are sent at that time. 
          </t>
       </section>
       
       <section toc="default" numbered="true">
        <name>Open-Loop Reporting</name>
        <t>
          The open-loop control paradigm of the DTNMA does not support a 
          one-to-one relationship between a manager's expression of policy 
          and an agent's reporting of the state of its managed device. This
          use case illustrates the concept of open-loop control. In this 
          paradigm, agents in the network manage themselves in accordance
          with policies and build consolidated reports of their state.
        </t>
        <t>
          This flow is shown in <xref target="consolidated_mgmt_ctrl_flow"/>,
          where multiple policies configured by a manager are represented in 
          a single reporting activity from an agent.
        </t>

        <t keepWithNext="true">Consolidated Management Control Flow</t>
        <figure anchor="consolidated_mgmt_ctrl_flow">
           <artwork align="center" name="" type="" alt=""><![CDATA[    
           +-----------+           +---------+           +---------+
           | Manager A |           | Agent A |           | Agent B |
           +----+------+           +----+----+           +----+----+
                |                       |                     |
                |-----PROD(1s, EDD1)--->|                     | (1)
                |----------------------------PROD(1s, EDD1)-->| 
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     | (2)
                |<----------------------------RPT(EDD1)-------| 
                |                       |                     |
                |                       |                     |
                |----------------------------PROD(1s, EDD2)-->| (3)
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     | 
                |<--------------------------RPT(EDD1,EDD2)----| (4)
                |                       |                     |
                |                       |                     |
                |<-------RPT(EDD1)------|                     |
                |<--------------------------RPT(EDD1,EDD2)----|
                |                       |                     |
           ]]></artwork>
        </figure>
        <t keepWithPrevious="true">
          There is not a one-to-one mapping between management policy and
          device state reporting.
        </t>
        <t>
          In this figure, Manager A sends a policy to Agents A and B to 
          produce an EDD (EDD1) every second (step 1). Each agent receives 
          this policy and configures their respective autonomy engines for 
          this production. Reports are transmitted when produced (step 2). 
        </t>
        <t>
          At a later time (step 3) Manager A sends an additional policy to
          Agent B to also produce an EDD (EDD2) ever second. This policy is
          received and configured on the autonomy engine on Agent B.
        </t>
        <t>
          Thereafter (step 4) Agent A will continue to produce EDD1 and Agent
          B will produce both EDD1 and EDD2. However, Agent B may produce
          these values together in a single report rather than 2 independent
          reports. In this way, there is no direct mapping between the 
          single consolidated report sent by Agent B (step 4) and the
          two different policies sent to Agent B that caused that report to 
          be generated (steps 1 and 3).
        </t>
      </section>
         
      <section toc="default" numbered="true">
        <name>Multiple Administrative Domains</name>
        <t>
          The managed applications on an agent may be controlled by different
          administrative entities in a network. The DTNMA allows agents to
          communicate with multiple managers in the network, such as cases
          where there exists one manager per administrative domain. 
        </t>
        <t>
          Whenever a manager sends a policy expression to an agent, that
          policy expression may be annotated with authorization information.
          One method of representing this is an ACL. 
        </t>
        <aside>
          <t indent="0">
            The use of an ACL in this use case does not imply the DTNMA 
            requires ACLs to annotate policy expression. ACLs in 
            this context are for example purposes only.
          </t>
        </aside>
        
        <t>
          The ability for one manager to access the results of policy 
          expressions configured by some other manager will be limited to the
          authorization annotations of those policy expressions. 
        </t>

        <t>
          An example of multi-manager authorization is illustrated in
          <xref target="multi_mgmt_ctrl_flow"/>.
        </t>

        <t keepWithNext="true">Multiplexed Management Control Flow</t>
          <figure anchor="multi_mgmt_ctrl_flow">
            <artwork align="center" name="" type="" alt=""><![CDATA[    
   +-----------+               +---------+                 +-----------+
   | Manager A |               | Agent A |                 | Manager B |
   +-----+-----+               +----+----+                 +-----+-----+
         |                          |                            |
         |---DEF(ACL1,V1,EDD1*2)--->|<---DEF(ACL2, V2, EDD2*2)---| (1)
         |                          |                            |
         |---PROD(1s, V1)---------->|<---PROD(1s, V2)------------| (2)
         |                          |                            |
         |<--------RPT(V1)----------|                            | (3)
         |                          |--------RPT(V2)------------>|
         |<--------RPT(V1)----------|                            |
         |                          |--------RPT(V2)------------>|
         |                          |                            |
         |                          |<---PROD(1s, V1)------------| (4)
         |                          |                            |
         |                          |----ERR(V1 no perm.)------->|   
         |                          |                            |
         |--DEF(NULL,V3,EDD3*3)---->|                            | (5)
         |                          |                            |
         |---PROD(1s, V3)---------->|                            | (6)
         |                          |                            |
         |                          |<----PROD(1s, V3)-----------|
         |                          |                            |
         |<--------RPT(V3)----------|--------RPT(V3)------------>| (7)
         |<--------RPT(V1)----------|                            |
         |                          |--------RPT(V2)------------>|
         |<-------RPT(V3)-----------|--------RPT(V3)------------>|
         |<-------RPT(V1)-----------|                            |
         |                          |--------RPT(V2)------------>|
             ]]></artwork>
          </figure>
          <t keepWithPrevious="true">
             Complex networks require multiple managers interfacing with agents.
          </t>
          <t>
            In this figure, both Managers A and B send policies to Agent A
            (step 1). Manager A defines a VAR (V1) whose value is given by 
            the mathematical expression (EDD1 * 2) and provides an ACL (ACL1)
            that restricts access to V1 to Manager A.  Similarly, Manager B defines a VAR (V2) whose value is given by the mathematical
            expression (EDD2 * 2) and provides an ACL (ACL2) that restricts
            access to V2 to Manager B. 
          </t>
          <t>
            Both Managers A and B also send policies to Agent A to report on
            the values of their VARs at 1 second intervals (step 2). Since
            Manager A can access V1 and Manager B can access V2, there is 
            no authorization issue with these policies and they are both
            accepted by the autonomy engine on Agent A. Agent A produces
            reports as expected, sending them to their respective managers 
            (step 3).
          </t>
          <t>
            Later (step 4) Manager B attempts to configure Agent A to also
            report to it the value of V1. Since Manager B does not have
            authorization to view this VAR, Agent A does not include this
            in the configuration of its autonomy engine and, instead, some
            indication of permission error is included in any regular
            reporting back to Manager B.
          </t>
          <t>
            Manager A also send a policy to Agent A (step 5) that defines a 
            VAR (V3) whose value is given by the mathematical expression (
            EDD3*3). and provides no ACL, indicating that any manager can 
            access V3. In this instance, both Manager A and Manager B can
            then send policies to Agent A to report the value of V3 (step 6).
            Since there is no authorization restriction on V3, these policies
            are accepted by the autonomy engine on Agent A and reports are
            generated to both Manager A and B over time (step 7).
          </t>
       </section>
       
       <section toc="default" numbered="true">
        <name>Cascading Management</name>
        <t>
          There are times where a single network device may serve as both
          a manager for other agents in the network and, itself, as a 
          device managed by someone else. This may be the case on nodes
          service as gateway or proxies. The DTNMA accommodates this case by 
          allowing a single device to run both an Agent and a Manager. 
        </t>
        <t>
          An example of this configuration is illustrated in 
          <xref target="fusion_ctrl_flow"/>.
        </t>
          
        <t keepWithNext="true">Data Fusion Control Flow</t>
        <figure anchor="fusion_ctrl_flow">
          <artwork align="center" name="" type="" alt=""><![CDATA[
                 ---------------------------------------
                 |                 Node B              |
                 |                                     |
  +-----------+  |    +-----------+      +---------+   |    +---------+
  | Manager A |  |    | Manager B |      | Agent B |   |    | Agent C |
  +---+-------+  |    +-----+-----+      +----+----+   |    +----+----+
      |          |          |                 |        |         |
      |---------------DEF(NULL,V0,EDD1+EDD2)->|        |         | (1)
      |------------------PROD(EDD1&EDD2,V0)-->|        |         |
      |          |          |                 |        |         |
      |          |          |                 |        |         | 
      |          |          |--------------------PROD(1s, EDD2)->| (2)
      |          |          |                 |        |         |
      |          |          |                 |        |         | 
      |          |          |<--------------------RPT(EDD2)------| (3)
      |          |          |                 |        |         |
      |<------------------RPT(V0)-------------|        |         | (4)
      |          |          |                 |        |         |
      |          |          |                 |        |         |
                 |                                     |
                 |                                     |
                 ---------------------------------------
       ]]></artwork>
        </figure>            
        <t keepWithPrevious="true">
          A device can house both a Manager and an Agent.
        </t>
        <t>
          In this example, we presume that Agent B is able to sample a
          given EDD (EDD1) and that Agent C is able to sample a different
          EDD (EDD2). Node B houses Manager B controlling Agent C, and
          also Agent B, which is controlled by Manager A. Manager A must
          periodically receive some new value that is calculated as a 
          function of both EDD1 and EDD2. 
        </t>

        <t>
          The sequence of events that can enable this scenario is as
          follows. Manager A sends a policy to Agent B to define
          a VAR (V0) whose value is given by the mathematical expression
          (EDD1 + EDD2) without a restricting ACL. Further, Manager A sends
          a policy to Agent B to report on the value of V0 every second
          (step 1).
        </t>

        <t>
          Agent B can require the ability to monitor both EDD1 and EDD2. 
          However, the only way to receive EDD2 values is to have them 
          reported back to Node B and included in the Node B runtime
          data stores. Therefore, Manager B sends a policy to Agent C to
          reports on the value of EDD2 (step 2).
        </t>
        <t>
          Agent C receives the policy in its autonomy engine and produces
          reports on the value of EDD2 every second (step 3).
        </t>
        <t>
          Agent B may locally sample EDD1 and EDD2 and uses that to compute
          values of V0 and report on those values at regular intervals as
          well (step 4).
        </t>
        <t>            
          While a trivial example, the mechanism of associating fusion with 
          the Manager function rather than the Agent function scales with 
          fusion complexity. Within the DTNMA, Agents and Managers are not
          required to be separate software implementations. There may be a 
          single software application running on Node B implementing both 
          Manager B and Agent B roles.
        </t>
      </section>
    </section>

   <section anchor="IANA" toc="default" numbered="true">
      <name>IANA Considerations</name>
      <t>
         This protocol has no fields registered by IANA.
      </t>
   </section>



   <section anchor="Security" toc="default" numbered="true">
      <name>Security Considerations</name>
      <t>
         Security within a DTNMA MUST exist in two layers: transport layer
         security and access control.
      </t>
      <t>
         Transport-layer security addresses the questions of authentication,
         integrity, and confidentiality associated with the transport of
         messages between and amongst Managers and Agents in the DTNMA. This 
         security is applied before any particular Actor in the system 
         receives data and, therefore, is outside of the scope of this document.
      </t>
      <t>
        Finer grain application security is done via ACLs which are defined
        via configuration messages and is implementation specific.
      </t>
   </section>

</middle>

  <!--  *****BACK MATTER ***** -->
  <back>
    <!-- -<references title="Normative References">
      
     
    </references> -->
  
  <references>
      <name>Informative References</name>
      <reference anchor="RFC3416" target="https://www.rfc-editor.org/info/rfc3416" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3416.xml">
        <front>
          <title>Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP)</title>
          <author initials="R." surname="Presuhn" fullname="R. Presuhn" role="editor">
            <organization/>
          </author>
          <date year="2002" month="December"/>
          <abstract>
            <t>This document defines version 2 of the protocol operations for the Simple Network Management Protocol (SNMP).  It defines the syntax and elements of procedure for sending, receiving, and processing SNMP PDUs. This document obsoletes RFC 1905.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="62"/>
        <seriesInfo name="RFC" value="3416"/>
        <seriesInfo name="DOI" value="10.17487/RFC3416"/>
      </reference>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="S. Bradner">
            <organization/>
          </author>
          <date year="1997" month="March"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
        <front>
          <title>Network Configuration Protocol (NETCONF)</title>
          <author initials="R." surname="Enns" fullname="R. Enns" role="editor">
            <organization/>
          </author>
          <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
            <organization/>
          </author>
          <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role="editor">
            <organization/>
          </author>
          <author initials="A." surname="Bierman" fullname="A. Bierman" role="editor">
            <organization/>
          </author>
          <date year="2011" month="June"/>
          <abstract>
            <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6241"/>
        <seriesInfo name="DOI" value="10.17487/RFC6241"/>
      </reference>
      <reference target="https://www.rfc-editor.org/info/rfc7228" anchor="RFC7228" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
        <front>
          <title>Terminology for Constrained-Node Networks</title>
          <author fullname="C. Bormann" surname="Bormann" initials="C"/>
          <author fullname="M. Ersue" surname="Ersue" initials="M"/>
          <author fullname="A. Keranen" surname="Keranen" initials="A"/>
          <date year="2014" month="May"/>
          <abstract>
            <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks.  This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
          </abstract>
        </front>
        <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        <seriesInfo name="RFC" value="7228"/>
      </reference>
      <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6020.xml">
        <front>
          <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
          <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
            <organization/>
          </author>
          <date year="2010" month="October"/>
          <abstract>
            <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6020"/>
        <seriesInfo name="DOI" value="10.17487/RFC6020"/>
      </reference>
      <reference anchor="RFC8040" target="https://www.rfc-editor.org/info/rfc8040" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml">
        <front>
          <title>RESTCONF Protocol</title>
          <author initials="A." surname="Bierman" fullname="A. Bierman">
            <organization/>
          </author>
          <author initials="M." surname="Bjorklund" fullname="M. Bjorklund">
            <organization/>
          </author>
          <author initials="K." surname="Watsen" fullname="K. Watsen">
            <organization/>
          </author>
          <date year="2017" month="January"/>
          <abstract>
            <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8040"/>
        <seriesInfo name="DOI" value="10.17487/RFC8040"/>
      </reference>
      <reference anchor="RFC4838" target="https://www.rfc-editor.org/info/rfc4838" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4838.xml">
        <front>
          <title>Delay-Tolerant Networking Architecture</title>
          <author initials="V." surname="Cerf" fullname="V. Cerf">
            <organization/>
          </author>
          <author initials="S." surname="Burleigh" fullname="S. Burleigh">
            <organization/>
          </author>
          <author initials="A." surname="Hooke" fullname="A. Hooke">
            <organization/>
          </author>
          <author initials="L." surname="Torgerson" fullname="L. Torgerson">
            <organization/>
          </author>
          <author initials="R." surname="Durst" fullname="R. Durst">
            <organization/>
          </author>
          <author initials="K." surname="Scott" fullname="K. Scott">
            <organization/>
          </author>
          <author initials="K." surname="Fall" fullname="K. Fall">
            <organization/>
          </author>
          <author initials="H." surname="Weiss" fullname="H. Weiss">
            <organization/>
          </author>
          <date year="2007" month="April"/>
          <abstract>
            <t>This document describes an architecture for delay-tolerant and disruption-tolerant networks, and is an evolution of the architecture originally designed for the Interplanetary Internet, a communication system envisioned to provide Internet-like services across interplanetary distances in support of deep space exploration.  This document describes an architecture that addresses a variety of problems with internetworks having operational and performance characteristics that make conventional (Internet-like) networking approaches either unworkable or impractical.  We define a message- oriented overlay that exists above the transport (or other) layers of the networks it interconnects.  The document presents a motivation for the architecture, an architectural overview, review of state management required for its operation, and a discussion of application design issues.  This document represents the consensus of the IRTF DTN research group and has been widely reviewed by that group.  This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4838"/>
        <seriesInfo name="DOI" value="10.17487/RFC4838"/>
      </reference>
      <reference anchor="RFC8639" target="https://www.rfc-editor.org/info/rfc8639" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8639.xml">
        <front>
          <title>Subscription to YANG Notifications</title>
          <author initials="E." surname="Voit" fullname="E. Voit">
            <organization/>
          </author>
          <author initials="A." surname="Clemm" fullname="A. Clemm">
            <organization/>
          </author>
          <author initials="A." surname="Gonzalez Prieto" fullname="A. Gonzalez Prieto">
            <organization/>
          </author>
          <author initials="E." surname="Nilsen-Nygaard" fullname="E. Nilsen-Nygaard">
            <organization/>
          </author>
          <author initials="A." surname="Tripathy" fullname="A. Tripathy">
            <organization/>
          </author>
          <date year="2019" month="September"/>
          <abstract>
            <t>This document defines a YANG data model and associated mechanisms enabling subscriber-specific subscriptions to a publisher's event streams.  Applying these elements allows a subscriber to request and receive a continuous, customized feed of publisher-generated information.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8639"/>
        <seriesInfo name="DOI" value="10.17487/RFC8639"/>
      </reference>
      <reference anchor="RFC8641" target="https://www.rfc-editor.org/info/rfc8641" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8641.xml">
        <front>
          <title>Subscription to YANG Notifications for Datastore Updates</title>
          <author initials="A." surname="Clemm" fullname="A. Clemm">
            <organization/>
          </author>
          <author initials="E." surname="Voit" fullname="E. Voit">
            <organization/>
          </author>
          <date year="2019" month="September"/>
          <abstract>
            <t>This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore.  Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8641"/>
        <seriesInfo name="DOI" value="10.17487/RFC8641"/>
      </reference>
      <reference target="https://www.rfc-editor.org/info/rfc7252" anchor="RFC7252" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
        <front>
          <title>The Constrained Application Protocol (CoAP)</title>
          <author fullname="Z. Shelby" surname="Shelby" initials="Z"/>
          <author fullname="K. Hartke" surname="Hartke" initials="K"/>
          <author fullname="C. Bormann" surname="Bormann" initials="C"/>
          <date year="2014" month="June"/>
          <abstract>
            <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
            <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7252"/>
        <seriesInfo name="DOI" value="10.17487/RFC7252"/>
      </reference>
      <reference anchor="RFC9171" target="https://www.rfc-editor.org/info/rfc9171" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9171.xml">
        <front>
          <title>Bundle Protocol Version 7</title>
          <author initials="S." surname="Burleigh" fullname="S. Burleigh">
            <organization/>
          </author>
          <author initials="K." surname="Fall" fullname="K. Fall">
            <organization/>
          </author>
          <author initials="E." surname="Birrane" fullname="E. Birrane">
            <organization/>
          </author>
          <author initials="III" surname="" fullname="III">
            <organization/>
          </author>
          <date year="2022" month="January"/>
          <abstract>
            <t>This document presents a specification for the Bundle Protocol, adapted from the experimental Bundle Protocol specification developed by the Delay-Tolerant Networking Research Group of the Internet Research Task Force and documented in RFC 5050.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9171"/>
        <seriesInfo name="DOI" value="10.17487/RFC9171"/>
      </reference>
      <reference anchor="RFC9172" target="https://www.rfc-editor.org/info/rfc9172" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9172.xml">
        <front>
          <title>Bundle Protocol Security (BPSec)</title>
          <author initials="E." surname="Birrane" fullname="E. Birrane">
            <organization/>
          </author>
          <author initials="III" surname="" fullname="III">
            <organization/>
          </author>
          <author initials="K." surname="McKeever" fullname="K. McKeever">
            <organization/>
          </author>
          <date year="2022" month="January"/>
          <abstract>
            <t>This document defines a security protocol providing data integrity and confidentiality services for the Bundle Protocol (BP).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9172"/>
        <seriesInfo name="DOI" value="10.17487/RFC9172"/>
      </reference>
      <reference target="https://www.rfc-editor.org/info/rfc8949" anchor="RFC8949" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
        <front>
          <title>Concise Binary Object Representation (CBOR)</title>
          <author fullname="C. Bormann" surname="Bormann" initials="C"/>
          <author fullname="P. Hoffman" surname="Hoffman" initials="P"/>
          <date year="2020" month="December"/>
          <abstract>
            <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
            <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
          </abstract>
        </front>
        <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        <seriesInfo name="STD" value="94"/>
        <seriesInfo name="RFC" value="8949"/>
      </reference>
      <reference anchor="RFC7575" target="https://www.rfc-editor.org/info/rfc7575" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7575.xml">
        <front>
          <title>Autonomic Networking: Definitions and Design Goals</title>
          <author initials="M." surname="Behringer" fullname="M. Behringer">
            <organization/>
          </author>
          <author initials="M." surname="Pritikin" fullname="M. Pritikin">
            <organization/>
          </author>
          <author initials="S." surname="Bjarnason" fullname="S. Bjarnason">
            <organization/>
          </author>
          <author initials="A." surname="Clemm" fullname="A. Clemm">
            <organization/>
          </author>
          <author initials="B." surname="Carpenter" fullname="B. Carpenter">
            <organization/>
          </author>
          <author initials="S." surname="Jiang" fullname="S. Jiang">
            <organization/>
          </author>
          <author initials="L." surname="Ciavaglia" fullname="L. Ciavaglia">
            <organization/>
          </author>
          <date year="2015" month="June"/>
          <abstract>
            <t>Autonomic systems were first described in 2001.  The fundamental goal is self-management, including self-configuration, self-optimization, self-healing, and self-protection.  This is achieved by an autonomic function having minimal dependencies on human administrators or centralized management systems.  It usually implies distribution across network elements.</t>
            <t>This document defines common language and outlines design goals (and what are not design goals) for autonomic functions.  A high-level reference model illustrates how functional elements in an Autonomic Network interact.  This document is a product of the IRTF's Network Management Research Group.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7575"/>
        <seriesInfo name="DOI" value="10.17487/RFC7575"/>
      </reference>
      <reference anchor="RFC8199" target="https://www.rfc-editor.org/info/rfc8199" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8199.xml">
        <front>
          <title>YANG Module Classification</title>
          <author initials="D." surname="Bogdanovic" fullname="D. Bogdanovic">
            <organization/>
          </author>
          <author initials="B." surname="Claise" fullname="B. Claise">
            <organization/>
          </author>
          <author initials="C." surname="Moberg" fullname="C. Moberg">
            <organization/>
          </author>
          <date year="2017" month="July"/>
          <abstract>
            <t>The YANG data modeling language is currently being considered for a wide variety of applications throughout the networking industry at large.  Many standards development organizations (SDOs), open-source software projects, vendors, and users are using YANG to develop and publish YANG modules for a wide variety of applications.  At the same time, there is currently no well-known terminology to categorize various types of YANG modules.</t>
            <t>A consistent terminology would help with the categorization of YANG modules, assist in the analysis of the YANG data modeling efforts in the IETF and other organizations, and bring clarity to the YANG- related discussions between the different groups.</t>
            <t>This document describes a set of concepts and associated terms to support consistent classification of YANG modules.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8199"/>
        <seriesInfo name="DOI" value="10.17487/RFC8199"/>
      </reference>
      <reference anchor="RFC8993" target="https://www.rfc-editor.org/info/rfc8993" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8993.xml">
        <front>
          <title>A Reference Model for Autonomic Networking</title>
          <author initials="M." surname="Behringer" fullname="M. Behringer" role="editor">
            <organization/>
          </author>
          <author initials="B." surname="Carpenter" fullname="B. Carpenter">
            <organization/>
          </author>
          <author initials="T." surname="Eckert" fullname="T. Eckert">
            <organization/>
          </author>
          <author initials="L." surname="Ciavaglia" fullname="L. Ciavaglia">
            <organization/>
          </author>
          <author initials="J." surname="Nobre" fullname="J. Nobre">
            <organization/>
          </author>
          <date year="2021" month="May"/>
          <abstract>
            <t>This document describes a reference model for Autonomic Networking for managed networks. It defines the behavior of an autonomic node, how the various elements in an autonomic context work together, and how autonomic services can use the infrastructure.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8993"/>
        <seriesInfo name="DOI" value="10.17487/RFC8993"/>
      </reference>
      <reference anchor="RFC6991" target="https://www.rfc-editor.org/info/rfc6991" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6991.xml">
        <front>
          <title>Common YANG Data Types</title>
          <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role="editor">
            <organization/>
          </author>
          <date year="2013" month="July"/>
          <abstract>
            <t>This document introduces a collection of common data types to be used with the YANG data modeling language.  This document obsoletes RFC 6021.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6991"/>
        <seriesInfo name="DOI" value="10.17487/RFC6991"/>
      </reference>
      <reference anchor="RFC7576" target="https://www.rfc-editor.org/info/rfc7576" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7576.xml">
        <front>
          <title>General Gap Analysis for Autonomic Networking</title>
          <author initials="S." surname="Jiang" fullname="S. Jiang">
            <organization/>
          </author>
          <author initials="B." surname="Carpenter" fullname="B. Carpenter">
            <organization/>
          </author>
          <author initials="M." surname="Behringer" fullname="M. Behringer">
            <organization/>
          </author>
          <date year="2015" month="June"/>
          <abstract>
            <t>This document provides a problem statement and general gap analysis for an IP-based Autonomic Network that is mainly based on distributed network devices.  The document provides background by reviewing the current status of autonomic aspects of IP networks and the extent to which current network management depends on centralization and human administrators.  Finally, the document outlines the general features that are missing from current network abilities and are needed in the ideal Autonomic Network concept.</t>
            <t>This document is a product of the IRTF's Network Management Research Group.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7576"/>
        <seriesInfo name="DOI" value="10.17487/RFC7576"/>
      </reference>
      <reference target="https://www.rfc-editor.org/info/rfc8613" anchor="RFC8613" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8613.xml">
        <front>
          <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
          <author fullname="G. Selander" surname="Selander" initials="G"/>
          <author fullname="J. Mattsson" surname="Mattsson" initials="J"/>
          <author fullname="F. Palombini" surname="Palombini" initials="F"/>
          <author fullname="L. Seitz" surname="Seitz" initials="L"/>
          <date year="2019" month="July"/>
          <abstract>
            <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
            <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8613"/>
        <seriesInfo name="DOI" value="10.17487/RFC8613"/>
      </reference>
      <reference anchor="BIRRANE1">
        <front>
          <title>
            Management of Disruption-Tolerant Networks: A Systems Engineering 
            Approach
          </title>
          <author initials="E.B." surname="Birrane"/>
          <author initials="R.C." surname="Cole"/>
          <date year="2010"/>
        </front>
      </reference>
      <reference anchor="BIRRANE2">
        <front>
          <title>
            Defining Tolerance: Impacts of Delay and Disruption when Managing 
            Challenged Networks
          </title>
          <author initials="E.B." surname="Birrane"/>
          <author initials="S.B." surname="Burleigh"/>
          <author initials="V.C." surname="Cerf"/>
          <date year="2011"/>
        </front>
      </reference>
      <reference anchor="BIRRANE3">
        <front>
          <title>
            Delay-Tolerant Network Management: The Definition and Exchange of
            Infrastructure Information in High Delay Environments
          </title>
          <author initials="E.B." surname="Birrane"/>
          <author initials="H.K." surname="Kruse"/>
          <date year="2011"/>
        </front>
      </reference>
      <reference anchor="xpath">
        <front>
          <title>
               XML Path Language (XPath) Version 1.0 
          </title>
          <author initials="J.C." surname="Clark"/>
          <author initials="R.D." surname="DeRose"/>
          <date year="1999"/>
        </front>
      </reference>
      <reference anchor="I-D.irtf-dtnrg-dtnmp" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.draft-irtf-dtnrg-dtnmp-01.xml" target="http://www.ietf.org/internet-drafts/draft-irtf-dtnrg-dtnmp-01.txt">
        <front>
          <title>Delay Tolerant Network Management Protocol</title>
          <author initials="E" surname="Birrane" fullname="Edward Birrane">
            <organization/>
          </author>
          <author initials="V" surname="Ramachandran" fullname="Vignesh Ramachandran">
            <organization/>
          </author>
          <date month="December" day="31" year="2014"/>
          <abstract>
            <t>This draft describes the Delay/Disruption Tolerant Network Management Protocol (DTNMP).  The DTNMP provides monitoring and configuration services between managing devices and managed devices, some of which may operate on the far side of high-delay or high-disruption links. The protocol is designed to minimize the number of transmitted bytes, to operate without sessions or (concurrent) two-way links, and to function autonomously when there is no timely contact with a network operator.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-irtf-dtnrg-dtnmp-01"/>
      </reference>
      <reference anchor="I-D.ietf-core-yang-cbor" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.draft-ietf-core-yang-cbor-16.xml" target="https://www.ietf.org/archive/id/draft-ietf-core-yang-cbor-16.txt">
        <front>
          <title>CBOR Encoding of Data Modeled with YANG</title>
          <author initials="M." surname="Veillette" fullname="Michel Veillette">
            <organization>Trilliant Networks Inc.</organization>
          </author>
          <author initials="I." surname="Petrov" fullname="Ivaylo Petrov">
            <organization>Google Switzerland GmbH</organization>
          </author>
          <author initials="A." surname="Pelov" fullname="Alexander Pelov">
            <organization>Acklio</organization>
          </author>
          <author initials="C." surname="Bormann" fullname="Carsten Bormann">
            <organization>Universität Bremen TZI</organization>
          </author>
          <date month="June" day="24" year="2021"/>
          <abstract>
            <t>   This document defines encoding rules for serializing configuration
   data, state data, RPC input and RPC output, action input, action
   output, notifications and the yang-data extension defined within YANG
   modules using the Concise Binary Object Representation (CBOR, RFC
   8949).

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-yang-cbor-16"/>
      </reference>
      <reference anchor="I-D.ietf-core-sid" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.draft-ietf-core-sid-16.xml" target="https://www.ietf.org/archive/id/draft-ietf-core-sid-16.txt">
        <front>
          <title>YANG Schema Item iDentifier (YANG SID)</title>
          <author initials="M." surname="Veillette" fullname="Michel Veillette">
            <organization>Trilliant Networks Inc.</organization>
          </author>
          <author initials="A." surname="Pelov" fullname="Alexander Pelov">
            <organization>Acklio</organization>
          </author>
          <author initials="I." surname="Petrov" fullname="Ivaylo Petrov">
            <organization>Google Switzerland GmbH</organization>
          </author>
          <author initials="C." surname="Bormann" fullname="Carsten Bormann">
            <organization>Universität Bremen TZI</organization>
          </author>
          <date month="June" day="24" year="2021"/>
          <abstract>
            <t>   YANG Schema Item iDentifiers (YANG SID) are globally unique 63-bit
   unsigned integers used to identify YANG items.  This document defines
   the semantics, the registration, and assignment processes of YANG
   SIDs.  To enable the implementation of these processes, this document
   also defines a file format used to persist and publish assigned YANG
   SIDs.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-sid-16"/>
      </reference>
      <reference anchor="I-D.ietf-core-comi" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-core-comi-11.xml" target="https://www.ietf.org/archive/id/draft-ietf-core-comi-11.txt">
        <front>
          <title>CoAP Management Interface (CORECONF)</title>
          <author initials="M." surname="Veillette" fullname="Michel Veillette">
            <organization>Trilliant Networks Inc.</organization>
          </author>
          <author initials="P." surname="Van der Stok" fullname="Peter Van der Stok">
            <organization>consultant</organization>
          </author>
          <author initials="A." surname="Pelov" fullname="Alexander Pelov">
            <organization>Acklio</organization>
          </author>
          <author initials="A." surname="Bierman" fullname="Andy Bierman">
            <organization>YumaWorks</organization>
          </author>
          <author initials="I." surname="Petrov" fullname="Ivaylo Petrov">
            <organization>Acklio</organization>
          </author>
          <date month="January" day="17" year="2021"/>
          <abstract>
            <t>   This document describes a network management interface for
   constrained devices and networks, called CoAP Management Interface
   (CORECONF).  The Constrained Application Protocol (CoAP) is used to
   access datastore and data node resources specified in YANG, or SMIv2
   converted to YANG.  CORECONF uses the YANG to CBOR mapping and
   converts YANG identifier strings to numeric identifiers for payload
   size reduction.  CORECONF extends the set of YANG based protocols,
   NETCONF and RESTCONF, with the capability to manage constrained
   devices and networks.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-comi-11"/>
      </reference>

  <reference target="https://www.rfc-editor.org/info/rfc9254" anchor="RFC9254" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9254.xml">
        <front>
          <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
          <author fullname="M. Veillette " surname="Veillette " initials="M"/>
          <author fullname="I. Petrov" surname="Petrov" initials="I"/>
          <author fullname="A. Pelov" surname="Pelov" initials="A"/>
          <author fullname="C. Bormann" surname="Bormann" initials="C"/>
          <author fullname="M. Richardson" surname="Richardson" initials="M"/>
          <date year="2022" month="July"/>
          <abstract>
            <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications. This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
          </abstract>
        </front>
        <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        <seriesInfo name="RFC" value="9254"/>
      </reference>

    </references>
  </back>
</rfc>
