<?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-07" 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-06"/>
   <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="23" year="2023"/>
   
   <!-- 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 supports asynchronous
        transport, autonomous local control, and a small footprint (in both
        resources and dependencies) so as to deploy on 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 (BP). 
        Operating over BP requires an architecture that neither presumes
        synchronized transport behavior nor relies on query-response mechanisms. 
        Implementations compliant with this DTNMA should expect to successfully
        operate in extremely challenging conditions, such as over uni-directional 
        links and other places where BP is the preferred transport.
      </t>
   </abstract>
</front>

<middle>
   <section numbered="true">
      <name>Introduction</name>
      <t>
        The Delay-Tolerant Networking (DTN) architecture, as described in 
        <xref target="RFC4838"/>, 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 a DTN Management Architecture (DTNMA) providing
        configuration, monitoring, and local control of both application and 
        network services on a managed device. The DTNMA is designed to provide
        for the management of devices operating either within or across a
        challenged network. 
      </t>
      <t>
        Fundamental properties of a challenged network are outlined in Section 
        2.2.1 of <xref target="RFC7228"/>. These properties 
        include lacking end-to-end IP connectivity, having "serious interruptions"
        to end-to-end connectivity, and exhibiting delays longer than can be
        tolerated by end-to-end synchronization mechanisms (such as TCP). It is
        further noted that the DTN architecture was designed to cope with such 
        networks.
      </t>      

      <aside>
        <t>
          NOTE: These challenges may be caused by physical impairments such as 
          long signal propagation and frequent link disruption, or by other 
          factors such as quality-of-service prioritization, service-level 
          agreements, and other consequences of traffic management and scheduling.
        </t>
      </aside>

      <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.
      </t>

      <t>
        Certain outcomes of device self-management should be determinable by a
        privileged external observer (such as a managing device). In a challenged 
        network, these observers may need to communicate with a managed 
        device after significant periods of disconnectedness. Non-deterministic
        behavior of a managed device may make establishing communication 
        difficult or impossible.
      </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>

      <aside>
        <t>
          NOTE: The DTNMA is designed to leverage any transport, network, 
          and security solutions designed for challenged networks. However, the 
          DTNMA should operate in any environment in which the Bundle Protocol 
          (BPv7) <xref target="RFC9171"/> is deployed.
        </t>
      </aside>

      <section numbered="true">
        <name>Scope</name>
        <t>
          This document describes the desirable properties of, and motivation
          for, a DTNMA. This document also provides a reference model, service 
          descriptions, autonomy model, and use cases to better reason about 
          ways to standardize and implement this architecture. 
        </t>
        <t>
          This is not a normative document and the information herein is not
          meant to represent a standardization of any data model, protocol, 
          or implementation. Instead, this document provides informative 
          guidance to authors and users of such models, protocols, and
          implementations.
        </t>

        <t>
          The selection of any particular transport or network layer is outside 
          of the scope of this document. The DTNMA does not require the use of
          any specific protocol such as IP, BP, TCP, or UDP. In particular, the 
          DTNMA design does not assume the use of either IPv4 or IPv6. 
        </t>

        <aside>
          <t>
            NOTE: The fact that the DTNMA must operate in any environment that
            deploys BP does not mean that the DTNMA requires the use of BP to
            operate. 
          </t>
        </aside>

        <t>
          Network features such as naming, addressing, routing, and security
          are out of scope of the DTNMA. It is presumed that any operational
          network communicating DTNMA messages would implement these services
          for any payloads carried by that network. 
        </t>

       <t>
          The interactions between and amongst the DTNMA and other management
          approaches are outside of the scope of this document. 
       </t>
      </section>
   
      <section 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"/>.
         </t>
      </section>
      
      <section 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 terms fundamental to 
              understanding DTNMA concepts. Whenever possible, these terms 
              align in both word selection and meaning with their use in
              other management protocols.
            </li>
            
            <li>
              Challenged Network Overview - This section describes important 
              aspects of challenged networks and necessary approaches for their 
              management. 
            </li>

            <li> 
              Desirable Design Properties - This section defines those properties of
              the DTNMA that must be present to operate within the constraints
              of a challenged network. These properties are similar to the
              specification of system-level requirements of a DTN management
              solution.
            </li>

            <li>
              Current Network Management Approaches - This section provides a brief 
              overview of existing network management approaches. Where possible, 
              the DTNMA adopts concepts from these approaches. The limitations
              of current approaches from the perspective of the DTNMA desirable
              properties are identified and discussed.
            </li>

            <li>
              Motivation for New Features - This section provides an overall 
              motivation for this work, to include explaining why a management 
              architecture for challenged networks is useful and necessary.
            </li>

            <li>
              Reference Model - This section defines a reference model that can
              be used to reason about the DTNMA independent of an implementation. 
              This model identifies the logical elements of the system and the 
              high-level relationships and behaviors 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 based on the DTNMA reference model.
           </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 referencing the DTNMA reference model 
              and logical autonomy model. 
           </li>
          </ul>

      </section>
   </section>
   
   <section numbered="true">
      <name>Terminology</name>

      <t>
        This section defines terminology that either is unique to the DTNMA or
        is necessary for understanding the concepts defined in this specification.
      </t>

      <ul spacing="normal">

        <li>
          Controls: Procedures run by a DA to change the behavior, 
          configuration, or state of an application or protocol managed by 
          that DA. This includes procedures to manage the DA itself, such as
          to have the DA produce performance reports or to apply new 
          management policies.
        </li>

        <li>
          DTN Management: Management that does not depend on stateful 
          connections, timely delivery of management messages, or closed-loop
          control.
        </li>

        <li>
          DTNMA Agent (DA): A role associated with a managed device, 
          responsible for reporting performance data, accepting policy
          directives, performing autonomous local control, error-handling, and
          data validation. DAs exchange information with DMs operating either 
          on the same device and/or on remote devices in the network.
        </li>

        <li>
          DTNMA Manager (DM): A role associated with a managing device 
          responsible for configuring the behavior of, and eventually receiving 
          information from, DAs. DMs interact with one or more DAs located on 
          the same device and/or on remote devices in the network.
        </li>

        <li>
          Externally Defined Data (EDD): Typed information made available to a 
          DA by its hosting device, but not computed directly by the 
          DA itself. 
        </li>

        <li>
          Macros: Named, ordered collections of Controls and/or other macros. 
        </li>

        <li>
          Data Reports: Typed, ordered collections of data values gathered 
          by one or more DAs and provided to one or more DMs. Reports comply
          to the format of a given Data Report Schema.
        </li>

        <li>
          Data Report Schemas: Named, ordered collection of data names
          that represent the schema of a Data Report.
        </li>

        <li>
          Rules: Unit of autonomous specification that provides a 
          stimulus-response relationship between time or state on a DA 
          and the actions or operations to be run as a result of that time or 
          state. 
        </li>

        <li>
          State-Based Rule (SBR): Any Rule triggered by the calculable, internal 
          state of the DA. 
        </li>

        <li>
          Time-Based Rule (TBR): A specialization, and simplification, of a 
          State-Based Rule in which the rule stimulus is triggered by relative 
          or absolute time on a DA.
        </li>

        <li>
          Variables (VARs): Typed information computed internal to a DA.
        </li>
      </ul>

   </section>

   <section numbered="true">
      <name>Challenged Network Overview</name>
      
      <t>
        The DTNMA provides network management services able to operate in a 
        challenged network environment, such as envisioned by the DTN 
        architecture. This section describes what is meant by the term 
        "challenged network", the important properties of such a network, and 
        observations on impacts to conventional management approaches.
      </t>

      <section>
        <name>Challenged Network Constraints</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"/>. 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, 
          and/or have very limited computational resources.
        </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"/>. 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>

        <aside>
          <t>
            NOTE: Because challenged networks might not provide services expected of 
            the end-to-end IP model, devices in such networks might not implement
            networking stacks associated with the end-to-end IP model. This
            means that devices might not include support for certain
            transport protocols (TCP/UDP), web protocols (HTTP), or even 
            internetworking protocols (IPv4/IPv6). 
          </t>
        </aside>

        <t>
          By these definitions, a "challenged" network is a special type of
          "constrained" network, where the constraints are related to end-to-end
          connectivity and delays. As such, "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"/>.
        </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. 
        </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>
            The existence of external infrastructure, software, systems, 
            or processes such as a Domain Name Service (DNS) or a Certificate
            Authority (CA) cannot be guaranteed.
          </li>
        </ul>
      </section>

      <section numbered="true">
        <name>Topology and Service Implications</name>

        <t>
          The set of constraints that might be present in a challenged network
          impact both the topology of the network and the services active 
          within that network.
        </t>

        <t>
          Operational networks handle cases where nodes join and leave the 
          network over time. These topology changes may or may not be planned, they
          may or may not represent errors, and they may or may not impact network 
          services. Challenged networks differ from other networks not in
          the present of topological change, but in the likelihood that impacts
          to topology result in impacts to network services. 
        </t>

        <t>
          The difference between topology impacts and service impacts can be
          expressed in terms of connectivity. Topological connectivity usually 
          refers to the existence of a path between an application message 
          source and destination. Service connectivity, alternatively, refers 
          to the existence of a path between a node and one or more services 
          needed to process (often just-in-time) application messaging. 
          Examples of service connectivity include access to infrastructure 
          elements such as a Domain Name System (DNS) or a Certificate 
          Authority (CA). 
        </t>

        <t>
          In networks that might be partitioned most of the time, it is less
          likely that a node would concurrently access both an application 
          endpoint and one or more network service endpoints. For this reason, 
          network services in a challenged network should be designed to allow
          for asynchronous operation. Accommodating this use case often 
          involves the use of local caching, pre-placing information, and
          not hard-coding message information at a source that might change when a
          message reaches its destination.
        </t>

        <aside>
          <t>
            NOTE: One example of rethinking services in a challenged network
            is the securing of BPv7 bundles. The BPSec <xref target="RFC9172"/> 
            security extensions to BPv7 do not encode security destinations when 
            applying security. Instead, BPSec requires nodes in a network to 
            identify themselves as security verifiers or acceptors when receiving 
            and processing secured messages.
          </t>
        </aside>
      

        <section numbered="true">
          <name>Management Implications</name>

          <t>
            Network management approaches must adapt to the topology and service 
            impacts encountered in challenged networks. In particular, the ways
            in which "managers" and "agents" in a management architecture operate
            must consider how to operate with changes to topology and changes to
            service endpoints.  
          </t>

          <t>
            When connectivity to a manager cannot be guaranteed, agents must rely 
            on locally available information and use local autonomy to react to
            changes at the node. Architectures that rely on external resources
            such as access to third-party oracles, operators-in-the-loop, or other 
            service infrastructure may fail to operate in a challenged network.
          </t>

          <t>
            In addition to disconnectivity, topological change can alter the
            associations amongst managed and managing devices. Different managing
            devices might be active in a network at different times or in 
            different partitions. Managed devices might communicate with some, all,
            or none of these managing devices as a function of their own local
            configuration and policy.
          </t>
          
          <aside>
            <t>
              NOTE: These concepts relate to practices in conventional networks. 
              For example, supporting multiple managing devices is similar to 
              deploying multiple instances of a network service -- such as a DNS 
              server or CA node. Selecting from a set of managing devices is 
              similar to a sensor node practice of electing cluster heads to act 
              as privileged nodes for data storage and exfiltration.
            </t>
          </aside>

          <t>
            Therefore, a network management architecture for challenged networks 
            should:
          </t>
   
          <ol>
            <li>
              Support a many-to-many association amongst managing and managed 
              devices, and
            </li>
            <li>
              Allow "control from" and "reporting to" managing devices to function 
              independent of one another.
            </li> 
          </ol>
        </section>
      </section>

      <section numbered="true">
        <name>Management Special Cases</name>

        <t>
          The following special cases illustrate some of the operational
          situations that can be encountered in the management of devices in
          a challenged network. 
        </t>

        <ul>
          <li>
            One-Way Management. A managed device can only be accessed via a
            uni-directional link, or a via a link whose duration is shorter
            than a single round-trip propagation time. 
          </li>
          <li>
            Summary Data. A managing device can only receive summary data of
            a managed device's state because a link or path is constrained by
            capacity or reliability.
          </li>
          <li>
            Bulk Historical Reporting. A managing device receives a large volume 
            of historical report data for a managed device. This can occur when 
            a managed device rejoins a network or has access to a high 
            capacity link (or path) to the managed device.
          </li>
          <li>
            Multiple Managers. A managed device tracks multiple managers in 
            the network and communicates with them as a function of time,
            local state, or network topology. This includes challenged 
            networks that interconnect two or more unchallenged networks such 
            that managed and managing devices exist in different networks.             
          </li>
        </ul>
               
        <t>
          These special cases highlight the need for managed devices to operate
          without presupposing a dedicated connection to a single managing
          device. To support this, managing devices must deliver instruction 
          sets that govern the local, autonomous behavior of managed devices. 
          These behaviors include (but are not limited to) collecting 
          performance data, state, and error conditions, and applying pre-determined 
          responses to pre-determined events. Managing devices in a challenged 
          network might never expect a reply to a command, and communications from
          managed devices may be delivered much later than the events being reported.
        </t>

      </section>
    </section>

    <section>
      <name>Desirable Design Properties</name>

      <t>
        This section describes those design properties that are desirable when 
        defining a management architecture operating 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>

      <aside>
        <t>
          NOTE: These properties may influence the design, construction, and 
          adaptation of existing management tools for use in challenged
          networks. For example, the properties the DTN architecture 
          <xref target="RFC4838"/> resulted in the development of BPv7
          <xref target="RFC9171"/> and BPSec <xref target="RFC9172"/>. The 
          DTNMA may result in the construction of new management data models,
          policy expressions, and/or protocols. 
        </t>
      </aside>

      <section 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 periods of connectivity.
        </t>

        <aside>
          <t>
            NOTE: The DTNMA must run in every environment in which BP bundles 
            may be used, even though the DTNMA does not require the use of
            BP for its transport.
          </t>
        </aside>       

        <t>
          The DTNMA should not prescribe any association between a 
          DM and a DA other than those defined in this document. 
          There should be no logical limitation to the number of DMs 
          that can control a DA, the number of DMs that a DA should report to, 
          or any requirement that a DM and DA relationship implies a pair.
        </t>

        <aside>
          <t>
            NOTE: Practical limitations on the relationships between and 
            amongst DMs and DAs will exist as a function of the capabilities of 
            networked devices. These limitations derive from processing and storage 
            constraints, performance requirements, and other engineering factors. 
            While this information is vital to the proper engineering of a managed 
            and managing device, they are implementation considerations, and not 
            otherwise design constraints on the DTNMA.
          </t>
        </aside>       
      </section>
      
      <section numbered="true">
        <name> Hierarchically Modeled Information</name>

        <t>
          The DTNMA should use data models to define the syntactic and
          semantic contracts for data exchange between a DA and a DM. A given
          model should have the ability to "inherit" the contents of other
          models to form hierarchical data relationships. 
        </t>

        <aside>
          <t>
            NOTE: The term data model in this context refers to a schema that
            defines a contract between a DA and a DM for how information is
            represented and validated. 
          </t>
        </aside>

        <t> 
          Many network management solutions use data models to specify the 
          semantic and syntactic representation of data exchanged between 
          managed and managing devices. The DTNMA is not different in 
          this regard - information exchanged between DAs and DMs should 
          conform to one or more pre-defined, normative data models.
        </t>

        <t>
          A common best practice when defining a data model is to make it cohesive.
          A cohesive model is one that includes information related to a single 
          purpose such as managing a single application or protocol. When
          applying this practice, it is not uncommon to develop a large number
          of small data models that, together, describe the information needed
          to manage a device. 
        </t>

        <t>
          Another best practice for data model development is the use of
          inclusion mechanisms to allow one data model to include information
          from another data model. This ability to include a data model avoids
          repeating information in different data models. When one data
          model includes information from another data model, there is an
          implied model hierarchy.
        </t>

        <t>
          Data models in the DTNMA should allow for the construction of both
          cohesive models and hierarchically related models. These data models 
          should be used to define all sources of information that can 
          be retrieved, configured, or executed in the DTNMA. This includes
          supporting DA autonomy functions such as parameterization, 
          filtering, and event driven behaviors. These models will be used to both 
          implement interoperable autonomy engines on DAs and define 
          interoperable report parsing mechanisms on DMs.
        </t>

        <aside>
          <t>
            NOTE: While data model hierarchies can result in a more concise
            data model, arbitrarily complex nesting schemes can also result in
            very verbose encodings. Where possible, data identifications 
            schemes should be constructed that allow for both hierarchical
            data and highly compressible data identification. 
          </t>
        </aside>


      </section>

      <section numbered="true">
        <name>Adaptive Push of Information</name>
        
        <t>
          DAs in the DTNMA architecture should determine when to push 
          information to DMs as a function of their local state.
        </t>

        <t> 
          Pull management mechanisms require a managing device to send a query 
          to a managed device and then wait for a response to that specific 
          query. This practice implies some serialization mechanism (such as 
          a control session) between entities. However, challenged networks 
          cannot guarantee timely round-trip data exchange. For this reason, 
          pull mechanisms must be avoided in the DTNMA.
        </t>

        <t>
          Push mechanisms, in this context, refer to the ability of DAs to 
          leverage local autonomy to determine when and what information
          should be sent to which DMs. The push is considered adaptive 
          because a DA determines what information to push (and when) as
          an adaptation to changes to the DA's internal state. Once pushed, 
          information might still be queued pending connectivity of the DA 
          to the network.
        </t>

        <aside>
          <t>
            NOTE: Even in cases where a round-trip exchange can occur, pull
            mechanisms increase the overall amount of traffic in the network 
            and preclude the use of autonomy at managed devices. So even when
            pull mechanisms are feasible they should not be considered a 
            pragmatic alternative to push mechanisms.
          </t>
        </aside>

      </section>
      
      <section numbered="true">
        <name>Efficient Data Encoding</name>
        <t> 
          Messages exchanged between a DA and a DM in the DTNMA should be
          defined in a way that allows for efficient on-the-wire encoding. 
          DTNMA design decisions that result in smaller message sizes 
          should be preferred over those that result in larger message sizes.
        </t>

        <t>
          There is a relationship between message encoding and message 
          processing time at a node. Messages with little or no encodings may
          simplify node processing whereas more compact encodings may require
          additional activities to generate/parse encoded messages. Generally,
          compressing a message takes processing time at the sender and 
          decompressing a message takes processing time at a receiver. 
          Therefore, there is a design tradeoff between minimizing message 
          sizes and minimizing node processing. 
        </t>

        <aside>
          <t>
            NOTE: There are many ways in which message size, number of 
            messages, and node behaviors can impact processing performance.
            Because the DTNMA does not presuppose any underlying protocol or
            implementation, this section is focused solely on the compactness
            of an individual message and the processing for encoding and
            decoding that individual message.
          </t>
        </aside>

        <t>
          There is no advantage to minimizing node processing time in a 
          challenged network. The same sparse connectivity that benefits from
          store-and-forward transport provides time at a node for data
          processing prior to a future transmission opportunity. 
        </t>

        <t>
          However, there is a significant advantage to smaller message sizes 
          in a challenged network. Smaller messages require smaller periods of 
          viable transmission for communication, they incur less 
          re-transmission cost, and they consume less resources when 
          persistently stored en-route in the network. 
        </t>

        <aside>
          <t>
            NOTE: Naive approaches to minimizing message size through general 
            purpose compression algorithms do not produce minimal encodings. 
            Data models can, and should, be designed for compact encoding from
            the beginning. Design strategies for compact encodings involve using
            structured data instead of large hash values, reusable, hierarchical
            data models, and exploiting common structures in data models.
          </t>
        </aside>

      </section>
      
      <section numbered="true">
        <name>Universal, Unique Data Identification</name>
         
        <t>
          Elements within the DTNMA should be uniquely identifiable so that 
          they can be individually manipulated. Further, these identifiers 
          should be universal - the identifier for a data element should be the 
          same regardless of role, implementation, or network instance.
        </t>

        <t>
          Identification schemes that are relative to a specific DA or 
          specific system configuration might change over time. In particular, 
          nodes in a challenged network may change their status or 
          configuration during periods of partition from other parts of the 
          network. Resynchronizing relative state or configuration should be 
          avoided whenever possible.
        </t>

        <aside>
          <t>
            NOTE: Consider the common technique for approximating an associative 
            array lookup. A manager wishing to perform an associative lookup for 
            some key K1 will: 
          </t>

          <ol>
              <li>
                  Query a list of array keys from an agent.
              </li>  
              <li>
                  Find the key that matches K1 and infer the index of K1 from 
                  the returned key list.
              </li>
              <li> 
                  Query the discovered index on the agent to retrieve the 
                  desired data. 
              </li>
          </ol>

          <t>
            Ignoring the inefficiency of two round-trip exchanges, this mechanism
            will fail if the agent changes its key-index mapping between the 
            first and second query. While this is unlikely to occur in a 
            low-latency network, it is more likely to occur in a challenged
            network.
          </t>
        </aside>

      </section>
      
      <section numbered="true">
        <name>Runtime Data Definitions</name>
        
        <t>
          The DTNMA should allow for the definition of new elements to a
          data model as part of the runtime operation of the management system. 
          These definitions may represent custom data definitions that are
          applicable only for a particular device or network. Custom definitions
          should also be able to be removed from the system during runtime.
        </t>

        <t>
          The 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.
        </t>

        <aside>
          <t>
             NOTE: A DM could, for example, define a custom data report that
             includes only summary information around a specific operational
             event or as part of specific debugging. DAs could then produce
             this smaller report until it is no longer necessary, at which 
             point the custom report could be removed from the management
             system.
          </t>
        </aside>

        <t>
          Custom data elements should be calculated and used both as 
          parameters for DA autonomy and for more efficient reporting
          to DMs. Defining new data elements allows for DAs to perform
          local data fusion and defining new reporting templates allows
          for DMs to specify desired formats and generally save on link
          capacity, storage, and processing time.
        </t>
      </section>
      
      <section numbered="true">
         <name>Autonomous Operation</name>

         <t> 
            The management of applications by a DA should be achievable using 
            only knowledge local to the DA because DAs might need to operate 
            during times when they are disconnected from a DM. 
         </t>

         <t>     
            DA 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. In
            either case, a DA should provide the following features. 
         </t>

         <ul spacing="normal">
            <li>
              Stand-alone Operation - Pre-configuration allows DAs to operate 
              without regular contact with other nodes in the network. The 
              initial configuration (and periodic update) of a DA autonomy 
              engine remains difficult in a challenged network, but removes the 
              requirement that a DM be in-the-loop during regular operations. 
              Sending stimuli-and-responses to a DA during periods of
              connectivity allows DAs to self-manage during periods of
              disconnectivity.
            </li>

            <li>
              Deterministic Behavior - Operational systems might need to act 
              in a deterministic way even in the absence of an operator 
              in-the-loop. Deterministic behavior allows an out-of-contact DM to 
              predict the state of a DA and to determine how a DA got into 
              a particular state. 
            </li>

            <li>
              Engine-Based Behavior - Operational systems might not be able to
              deploy "mobile code" <xref target="RFC4949" format="default"/>
              solutions due to network bandwidth, memory or processor loading, 
              or security concerns. Engine-based approaches provide configurable 
              behavior without incurring these concerns.
            </li>

            <li>
              Authentication, Authorization, and Accounting - The DTNMA does not 
              require a specific underlying transport protocol, network
              infrastructure, or network services. Therefore, mechanisms for
              authentication, authorization, and accounting must be present in 
              a standard way at DAs and DMs to provide these functions if the
              underlying network does not. This is particularly true in cases
              where multiple DMs may be active concurrently in the network.
            </li>
          </ul>

          <t>
            Features such as deterministic processing and engine-based 
            behavior do not preclude the use of other Artificial Intelligence 
            (AI) and Machine Learning (ML) approaches on a managed device. 
          </t>

          <aside>
            <t>
              NOTE: The deterministic automation of the DTNMA can monitor and 
              control AI/ML management applications on a managed device. Using
              multiple levels of autonomy is a well-known method to balance the
              flexibility of a highly autonomous system with the reduced risk of 
              a deterministic system. 
            </t>
          </aside>

      </section>
   </section>

   <section numbered="true">
      <name>Current Network Management Approaches</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>
        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>

      <aside>
        <t>
          NOTE: Network management solutions that pull large sets of data 
          might not operate in a challenged environment that cannot support 
          timely, round-trip exchange of large data volumes.
        </t>
      </aside>
      
      <t> 
         More recent network management tools focus on message-based management, 
         reduced state keeping by managed and managing devices, and increased
         levels of system autonomy. 
      </t>

      <t>
         This section describes some of the well-known, standardized protocols 
         for network management and contrasts their purposes with the desirable
         properties of the DTNMA. The purpose of this comparison is to identify 
         elements of existing approaches that can be adopted or adapted for use 
         in challenged networks and where new elements must be created 
         specifically for this environment. 
      </t>

      <section numbered="true">
        <name>Simple Network Management Protocol (SNMP)</name>
        <t>
          The de facto example of a pull architecture is the Simple Network 
          Management Protocol (SNMP) <xref target="RFC3410"/>. SNMP utilizes a 
          request/response model to set and retrieve data values such 
          as host identifiers, link utilization metrics, error rates, and 
          counters between application software on managing and managed 
          devices <xref target="RFC3411"/>. Data may be directly sampled or 
          consolidated into representative statistics. Additionally, SNMP 
          supports a model for unidirectional push notification messages, 
          called event notifications, 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. SNMP devices separate the representations for data 
          modeling (Structure of Management Information (SMI) 
          <xref target="RFC2578"/> and the Management Information Base (MIB) 
          <xref target="RFC3418"/>) and messaging, sequencing and encoding (the 
          SNMP protocol <xref target="RFC3411"/> <xref target="RFC3416"/>).
        </t>

        <t>
          Separating data models from messaging and encoding is a best practice 
          in subsequent management protocols and likely necessary for the DTNMA. 
          In particular, SNMP MIBs provide well-organized, hierarchical Object 
          Identifiers (OIDs) which support the compressibility necessary for 
          challenged DTNs. 
        </t>

        <t> 
          While there is a large installation base for SNMP, several aspects 
          of the protocol make it inappropriate for use in a challenged 
          network. SNMP relies on sessions with low round-trip latency to 
          support its "pull" mechanism. Complex management can be achieved, 
          but only through careful orchestration of real-time, end-to-end, 
          managing-device-generated query-and-response logic.
        </t>

        <t>
          There is existing work that uses the SNMP data model to support 
          some low-fidelity Agent-side processing, to include the Distributed 
          Management Expression MIB <xref target="RFC2982"/> and Definitions 
          of Managed Objects for the Delegation of Management Scripts 
          <xref target="RFC3165"/>. However, Agent autonomy is not an SNMP 
          mechanism, so support for a local agent response to an initiating 
          event is limited. In a challenged network where the delay between 
          a managing device receiving an alert and sending a response can be 
          significant, SNMP is insufficient for autonomous event handling.
        </t>
      </section>

      <section numbered="true">
        <name>XML-Based Protocols</name>

        <t>
            Several network management protocols, including NETCONF 
            <xref target="RFC6241"/>, RESTCONF <xref target="RFC8040"/>, 
            and CORECONF <xref target="I-D.ietf-core-comi"/>, share the 
            same XML information set <xref target="xml-infoset"/> to describe the 
            abstract data model necessary to manage the configuration of network 
            devices. Each protocol, however, provides a different encoding of 
            that XML information set.
        </t>

        <t>
            YANG can be used to define the data model semantics and/or model syntax
            for the aforementioned network management protocols. YANG 
            <xref target="RFC7950"/> is a data modeling language used to model 
            the configuration and state data of managed devices and applications. 
            A number of network management protocols have been developed around 
            the definition, exchange, and reporting associated with YANG data models. 
            Currently, YANG represents the standard for defining network management 
            information.
        </t> 
       
        <section numbered="true">
          <name>The YANG Data Model</name>
            
          <t>
            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
            while differentiating implied and applied configuration 
            <xref target="RFC8342"/>.
          </t>

          <t>
            The YANG module itself is a flexible data model that could be used 
            for capturing the autonomy models and other behaviors needed by 
            the DTNMA. 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"/>. 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. 
          </t>

          <t>
            The YANG modeling language continues to evolve as new features are
            needed by adopting management protocols. Two evolving features that
            might be useful in the DTNMA are notifications and schema
            identifiers.
          </t>

          <ul>
            <li>      
              YANG notifications <xref target="RFC8639"/> and YANG-Push 
              notifications <xref target="RFC8641"/> allow a client to subscribe 
              to the delivery of specific containers or data nodes defined in 
              the model, either on a periodic or "on change" basis. These
              notification events can be filtered according to XPath 
              <xref target="xpath"/> or subtree <xref target="RFC6241"/> 
              filtering as described in <xref target="RFC8639"/> Section 2.2. 
            </li>

            <li>
              YANG Schema Item iDentifiers (SIDs) 
              <xref target="I-D.ietf-core-sid"/> are proposed to be 63-bit 
              identifiers used for more efficiently identification of YANG data 
              elements for use in constrained environments.
            </li>
          </ul>

          <t>
            While the YANG model is currently the standard way to describe
            management data, there are concerns with its unmodified use in the 
            DTNMA, as follows. 
          </t>

          <ol>
            <li>
              Size. 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.
              Existing efforts to make compressed identifies for YANG objects
              (such as SIDs) are still relatively verbose (~8 bytes per item)
              and do not natively support ways to glob multiple SIDs. 
            </li>
              
            <li>
              Protocol Coupling. A significant amount of existing YANG 
              tooling presumes the use of YANG with a specific management 
              protocol. The emergence of multiple NETCONF-derived protocols may make 
              these presumptions less problematic in the future. Work to 
              more consistently identify different types of YANG modules and
              their use has been undertaken to disambiguate how YANG modules
              should be treated <xref target="RFC8199"/>.
            </li>

            <li>
              Agent Control. YANG RPCs execute commands on a device and 
              generate an expected, structured response. 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.
            </li>
          </ol>        
        </section>
         
        <section numbered="true">
          <name>XML-Based Management Protocols</name>
        
          <t>
            NETCONF <xref target="RFC6241"/>, RESTCONF <xref target="RFC8040"/>, 
            and CORECONF <xref target="I-D.ietf-core-comi"/> each provide the 
            mechanisms to install, manipulate, and delete the configuration 
            of network devices. These network management protocols use the same
            XML information set, but provide different encodings of the abstract 
            data model it describes.  
          </t>

          <section>
            <name>NETCONF</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 a server. It requires that 
               underlying transport protocols support long-lived, reliable, 
               low-latency, sequenced data delivery sessions. 
            </t>

            <t>
              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. All of these requirements make NETCONF a poor choice for
              operating in a challenged network.
            </t>
          </section>

          <section>
            <name>RESTCONF</name>

            <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. 
            </t>

            <t>
              RESTCONF is a stateless protocol because it presumes that it is
              running over a stateful secure transport (HTTP over TLS). Also,
              RESTCONF presumes that a single pull of information can be made
              in a single round-trip. In this way, RESTCONF is only stateless
              between queries - not internal to a single query. 
            </t>
          </section>

          <section>
            <name>CORECONF</name>
            <t>
              CORECONF is an emerging stateless protocol built atop the Constrained 
              Application Protocol (CoAP) <xref target="RFC7252"/> that
              defines a messaging construct developed to operate specifically 
              on constrained devices and networks by limiting message size and 
              fragmentation. CoAP also implements a request/response system and
              methods for GET, POST, PUT, and DELETE. 
            </t>

            <t>
              Currently, the CORECONF draft <xref target="I-D.ietf-core-comi"/> 
              is archived and expired since 2021.
            </t>
          </section>
        </section>
      </section>
         
      <section>
        <name>Autonomic Networking</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"/>.
        </t>

        <t>
          In particular, there is a large and growing set of work within the IETF 
          focused on developing an Autonomic Networking Integrated Model and 
          Approach (ANIMA). The ANIMA work has developed a comprehensive 
          reference model for distributing autonomic functions across multiple 
          nodes in an autonomic networking infrastructure <xref target="RFC8993"/>. 
        </t>

        <t>
          This work, focused on learning the behavior of distributed systems to
          predict future events, is an exciting and emerging network management
          capability. This includes the development of signalling protocols
          such as GRASP <xref target="RFC8990"/> and autonomic control planes
          <xref target="RFC8368"/>.
        </t>

        <t>
          Both autonomic and challenged networks require similar degrees of
          autonomy. However, challenged networks cannot provide the complex 
          coordination between nodes and distributed supporting infrastructure 
          necessary for the frequent data exchanges for negotiation, learning, 
          and bootstrapping associated with the above capabilities.          
        </t>

        <t>
          There is some emerging work in ANIMA as to how disconnected
          devices might join and leave the autonomic control plane over time.
          However, this work is solving an important, but different, problem
          than that encountered by challenged networks.
        </t>
      </section>          
    </section>

    <section numbered="true">
      <name>Motivation for New Features</name>

      <t>
        The future of network management will involve autonomous and autonomic
        functions operating on both managed and managing devices. However, the
        development of distributed autonomy for coordinated learning and 
        event reaction is different from a managed device operating without 
        connectivity to a managing node. 
      </t>

      <t>
        Management mechanisms that provide DTNMA desirable properties do not 
        currently exist. This is not surprising since autonomous management in
        the context of a challenged networking environment is an emerging
        use case. 
      </t>

      <t>
        In particular, a management architecture is needed that provides 
        the following new features. 
      </t>

      <ol>
        <li>
          Open Loop Control. Freedom from a request-response architecture, 
          API, or other presumption of timely round-trip communications. This 
          is particularly important when managing networks that are not built
          over an HTTP or TCP/TLS infrastructure. 
        </li>

        <li>
          Standard Autonomy Model. An autonomy model that allows for standard
          expressions of policy to guarantee deterministic behavior across 
          devices and vendor implementations.
        </li>

        <li>
          Compressible Model Structure. A data model that allows for very 
          compact encodings by defining and exploiting common elements of 
          data schemas. 
        </li>
      </ol>

      <t>
        Combining these new features with existing mechanisms for message data
        exchange (such as BP), data representations (such as CBOR) and data 
        modeling languages (such as YANG) will form a pragmatic approach to 
        defining challenged network management. 
      </t>
    </section>

    <section 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 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>
            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 DA to manage resident applications. 
          Managing devices use a DM to both monitor and control DAs. 
        </t>

        <aside>
          <t>
            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 Interface. Managing devices communicate with managed
            devices through a command-based interface.  Instead of exchanging
            variables, objects, or documents, a managing device issues commands
            to be run by a managed device. These commands may create or update
            variables, change data stores, or impact the managed device in ways
            similar to other network management approaches. The use of commands
            is, in part, driven by the need for DAs to receive updates from 
            both remote management devices and local autonomy.
          </li>
        </ol>
      </section>

      <section 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 DM which uses pre-shared definitions to create 
        a set of policy directives that can be sent to a managed device's DA via
        a command-based interface. The DA provides local monitoring and control 
        (commanding) 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 | | |Commanding | | |  Policy   |  MANAGER  | |
| |        |   Control   | | |<==========| | | Encoding  |           | |
| | +------+-------------+ | |           | | +-----------+-------+   | |
| | |Admin | Data Fusion | | |==========>| | | Reporting | Admin |   | |
| | +------+-------------+ | | Reporting | | +-----------+-------+   | |
| +------------------------+ |           | +-------------------------+ |
+----------------------------+           +-----------------------------+
           ^                                             ^
           |            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 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 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 numbered="true">
          <name>DTNMA Agent (DA)</name>

          <t>
            A DA 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 DA 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 numbered="true">
            <name>Monitoring and Control</name>

            <t>
              DAs 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>
                Each DA maintains a database of policy expressions that form
                rules of behavior of the managed device. Within this database,
                each rule of behavior is a tuple of a stimulus and a response.
                Within the DTNMA, these rules are the embodiment of
                policy expressions received from DMs 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 monitors the state of the managed device 
                looking for pre-defined stimuli and, when encountered, issuing a
                pre-defined response. To the extent that this function is driven
                by the rules database, this engine acts as a policy execution
                engine. This engine may also be directly configured by
                managers during periods of connectivity for actions separate
                from those in the rules database (such as enabling or disabling
                sets of rules). 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>
                DAs 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 numbered="true">
            <name>Data Fusion</name>

            <t>
              DAs 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 numbered="true">
            <name>Administration</name>

            <t>
              DAs 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>
                <t>
                  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.
                </t>
              
                <t>
                  While the need for multiple managers is required for operating
                  in a dynamically partitioned network, this situation allows for
                  the possibility of conflicting information from different managers. 
                  Implementations of the DTNMA should consider conflict resolution
                  mechanisms. Such mechanisms might include analyzing managed content, 
                  time, agent location, or other relevant information to select
                  one manager input over other manager inputs.
                </t>
              </dd>


              <dt>Data Verifiers</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, when possible, that externally generated data values
                have the proper syntax (e.g., data type and ranges) and
                any required integrity and confidentiality. 
              </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 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 timely 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>

            <aside>
              <t>
                NOTE: Closed-loop control in this context refers to the practice of
                waiting for a response from a managed device prior to issuing
                new commands to that device. These "loops" may be closed quickly
                (in milliseconds) or over much longer periods (hours, days, years). 
                The alternative to closed-loop control is open-loop control, where
                responses from a managed device and commands to the managed device 
                are independent of one another.
              </t>
            </aside>

         </section>

         <section numbered="true">
            <name>DTNMA Manager (DM)</name>

            <t>
              A DM resides on a managing device. This manager
              provides an interface between various managing applications and 
              services and the DAs 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 DM performs three major functions on a managing
              device: policy encoding, reporting, and administration.
            </t>

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

              <t>
                DMs translate policy directives from managing
                applications and services into standardized policy expressions
                that can be recognized by DAs. 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>
                  DMs 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 provided through 
                  a common framework, protocol, or operating system.
                </dd>

                <dt>Policy Encoders</dt>
                <dd>
                  DAs 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> 
                  DMs 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 operations. It is recommended that control 
                  messages be packaged using BP bundles when there may be 
                  intermittent connectivity between DMs and DAs.
                </dd>
              </dl>
            </section>

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

              <t>
                DMs receive reports on the status of managed devices
                during periods of connectivity with the DAs on those
                devices. The following logical components are needed to 
                implement reporting capabilities on a DM.
              </t>

              <dl newline="true" spacing="normal" indent="8">
                <dt>Report Collectors</dt>
                <dd>
                  DMs receive reports from DAs 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> 
                  DMs review sets of data reports from DAs 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 numbered="true">
              <name>Administration</name>

              <t>
                Managers 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 Verifiers</dt>
                <dd>
                  DMs handle large amounts of data produced by various 
                  sources, to include data from managing applications and 
                  DAs. DMs should ensure, when possible, that data values
                  received from DAs over a network have the proper 
                  syntax (e.g., data type and ranges) and any required 
                  integrity and confidentiality. 
                </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 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
              DA 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 DAs, and DMs 
                  to interoperate. A standardized model also
                  provides guidance to the design and implementation of both 
                  managed and managing applications.
                </t>
              </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 DMs and DAs. Pre-sharing in this
                  context means that DMs and DAs are able to define and
                  synchronize data elements prior to their operational use in
                  the system. This synchronization happens during periods of
                  connectivity between DMs and DAs. 
               </dd>
            </dl>

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

    <section 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>
          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 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 that 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 
          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 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 to 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. In particular,
          the predicates of rules on a DA may refer to fused data.
        </t>

        <t>
          In-situ data fusion is an important function as it allows
          for the construction of intermediate summary data, the reduction
          of stored and transmitted raw data, possibly fewer predicates in rule
          definitions, and otherwise insulates the data source from conclusions 
          drawn from that data. 
        </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>

          <aside>
            <t>
              NOTE: While data fusion is an important function within the DTNMA,
              it is expected that the storage and transmission of raw (or
              pre-fused) data remains a capability of the system. In 
              particular, raw data can be useful for debugging managed devices,
              understanding complex interactions and underlying conditions, and 
              tuning for better performance and/or better outcomes.              
            </t>
          </aside>


      </section>
      
      <section 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>
            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 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 contents of these reports, and the frequency at
          which they are generated, 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, nor should a given report be associated with
          a specific control or autonomy action on a given managed device.
        </t>  

      </section>

      <section 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. Allowlists, blocklists, key-based 
          infrastructures, or other schemes may be used for this purpose.
        </t>
      </section>
    </section>

    <section  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 anchor="aut_mod_overview" numbered="true">
          <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>

          <aside>
            <t>
              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>
              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>
            The DTNMA autonomy model is a rule-based model in which individual 
            rules associate a pre-identified stimulus 
            with a pre-configured response to that stimulus. 
          </t>

          <t>
            Stimuli are identified using one or more predicate logic expressions
            that examine aspects of the state of the managed device. Responses 
            are implemented by running one or more procedures on the managed 
            device.
          </t>

          <t>
            In its simplest form, a stimulus is a single predicate expression
            of a condition that examines some aspect of the state of the 
            managed device. When the condition is met, a predetermined response is
            applied. This behavior can be captured using the construct:
          </t>

          <artwork align="left"><![CDATA[    
            IF <condition 1> THEN <response 1>;
          ]]></artwork>

          <t>
            In more complex forms, a stimulus may include both a common condition 
            shared by multiple rules and a specific condition for each individual rule.
            If the common condition is not met, the evaluation of the specific 
            condition of each rule sharing the common condition can be skipped. In
            this way, the total number of predicate evaluations can be reduced.
            This behavior can be captured using the construct:
          </t>

          <artwork align="left"><![CDATA[    
            IF <common condition> THEN
              IF <specific condition 1> THEN <response 1>
              IF <specific condition 2> THEN <response 2>
              IF <specific condition 3> THEN <response 3>
          ]]></artwork>

          <aside>
            <t>
              NOTE: The DTNMA model remains a stimulus-response system, regardless
              of whether a common condition is part of the stimulus. However,
              it is recommended that implementations incorporate a common
              condition because of the efficiency provided by such a bulk
              evaluation.
            </t>
            <t>
              NOTE: One use of a stimulus "common condition" is to associated the
              condition with an on-board event such as the expiring of a timer or 
              the changing of a monitored value. 
            </t>
            <t>
              NOTE: The DTNMA does not prescribe when rule stimuli must be evaluated. 
              Implementations may choose to evaluate rule stimuli at periodic
              intervals (such as 1Hz or 100Hz). When stimuli include on-board 
              events, implementations may choose to perform an immediate
              evaluation at the time of the event rather than waiting for a
              periodic evaluation.
            </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">
          <name>Model Characteristics</name>

          <t>
            There are several practical challenges to the implementation of a
            distributed rule-based system.  Large numbers of rules may be 
            difficult to understand, deconflict, and debug. Rules whose 
            conditions are given by fused or other dynamic data may require
            data logging and reporting for deterministic offline analysis. Rule differences
            across managed devices may lead to oscillating effects. This section 
            identifies those characteristics of an autonomy model that might 
            help implementations mitigate some of these challenges. 
          </t>

          <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">
          <name>Data Value Representation</name>
          <t>
            The expressive representation of simple data values is fundamental to 
            the successful construction and evaluation of predicates in the
            DTNMA autonomy model. When defining such values, there are
            useful distinctions regarding how values are identified
            and whether values are generated internal or external to the 
            autonomy model.
          </t>

          <t>
            A DTNMA data value should combine a base type
            (e.g., integer, real, string) representation with relevant semantic
            information. Base types are used for proper storage and encoding. 
            Semantic information allows for additional typing, constraint definitions, 
            and mnemonic naming. This expanded
            definition of data value allows for better predicate construction
            and evaluation, early type checking, and other uses.
          </t>

          <t>
            Data values may further be annotated based on whether their value
            is the result of a DA calculation or the result of some external 
            process on the managed device. For example, operators may with to
            know which values can be updated by actions on the DA versus which
            values (such as sensor readings) cannot be reliably changed because
            they are calculated external to the DA.
          </t>
      </section>

      <section numbered="true">
        <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>
          DTNMA data reporting consists of the production of some
          data report instance conforming to a data report schema. The use
          of schemas allows a report instance to identify the schema to which
          it conforms in lieu of carry that structure in the instance itself. This
          approach can significantly reduce the size of generated reports. 
        </t>

        <aside>
          <t>
            NOTE: The DTNMA data reporting concept is intentionally distinct 
            from the concept of exchanging data stores across a network. It is
            envisioned that a DA might generate a data report instance of a
            data report schema at regular intervals or in response to local
            events. In this model, many report schemas may be defined to capture
            unique, relevant combinations of known data values rather than
            sending bulk data stores off-platform for analysis.
          </t>
          <t>
            NOTE: It is not required that data report schemas be tabular in
            nature. Individual implementations might define tabular
            schemas for table-like data and other report schemas for more 
            heterogeneous reporting.
          </t>
        </aside>

      </section>

      <section numbered="true">
        <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 DTNMA implements commanding through the
          use of controls and macros. 
        </t>

        <t>
          Controls represent parameterized, predefined procedures run by the DA
          either as directed by the DM or as part of a rule response from the
          DA autonomy engine. Controls 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>

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

        <t>
          Macros represent ordered sequences of controls.
        </t>

        <aside>
          <t>
            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 DA
            autonomy engine controls a managed device to allow it to fulfill 
            some purpose as commanded by a (possibly disconnected) managing
            device.
          </t>

          <t>
            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>
            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>

      </section>
       
      <section numbered="true">
        <name>Predicate Autonomy Rules</name>
       
        <t>
          As discussed in <xref target="aut_mod_overview"/>, the DTNMA
          rule-based stimulus-response system associates stimulus detection with a
          predetermined response. Rules may be categorized based on whether their
          stimuli include generic statements of managed device state or whether they
          are optimized to only consider the passage of time on the device.
        </t>

        <t>
          State-based rules are those whose stimulus is based on the evaluated
          state of the managed device. Time-based rules are a unique subset of
          state-based rules whose stimulus is given only by a time-based event.
          Implementations might create different structures and evaluation
          mechanisms for these two different types of rules to achieve more
          efficient processing on a platform.
        </t>
      </section>    
    </section>      
  
    <section 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 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">Externally Defined Data - a data value defined external to the DA. </td>
                   <td align="center">EDD1, EDD2</td>
                </tr>

                <tr>
                   <td align="center">V#</td>
                   <td align="center">Variable - a data value defined internal to the DA.</td>
                   <td align="center">V1 = EDD1 + 7</td>
                </tr>

                <tr>
                   <td align="center">EXPR</td>
                   <td align="center">Predicate expression - used to define a rule stimulus.</td>
                   <td align="center">V1 &gt; 5</td>
                </tr>


                <tr>
                    <td align="center">ID</td>
                    <td align="center">DTNMA Object Identifier.</td>
                    <td align="center">V1, EDD2</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 instance 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 anchor="serial_mgmt" numbered="true">
          <name>Serialized Management</name>
          <t>
              This nominal configuration shows a single DM interacting with multiple
              DAs. The control flows for this scenario 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[    
+-----------+           +---------+           +---------+
|   DTNMA   |           |  DTNMA  |           |  DTNMA  |
| 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 serialized management scenario, a single DM interacts with multiple DAs.
          </t>
           
          <t>
            In this figure, the DTNMA Manager A sends a policy to DTNMA Agents 
            A and B to report the value of an EDD (EDD1) every second in (step 1). 
            Each DA receives this policy and configures their respective 
            autonomy engines for this production. Thereafter, (step 2) each 
            DA produces a report containing data element EDD1 and sends 
            those reports back to the DM.
          </t>
          <t>
            This behavior continues without any additional communications
            from the DM and without requiring a connection between the DA and DM.
          </t> 
       </section>

       <section numbered="true">
        <name>Intermittent Connectivity</name>
        <t>
          Building from the nominal configuration in <xref target="serial_mgmt"/>, 
          this scenario shows a challenged network in which connectivity between 
          DTNMA Agent B and the DM is temporarily lost. Control flows for this case 
          are outlined in <xref target="challenged_serial_mgmt_ctrl_flow"/>.
          </t>
           
          <t keepWithNext="true">Challenged Management Control Flow</t>
          <figure anchor="challenged_serial_mgmt_ctrl_flow">
             <artwork align="center" name="" type="" alt=""><![CDATA[    
+-----------+           +---------+           +---------+
|   DTNMA   |           |  DTNMA  |           |  DTNMA  |
| 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, DAs store reports pending a transmit opportunity.
          </t>
          <t>
            In this figure, DTNMA Manager A sends a policy to DTNMA Agents A and B 
            to produce an EDD (EDD1) every second in (step 1). Each DA receives this 
            policy and configures their respective autonomy engines for this 
            production. Produced reports are transmitted when there is connectivity 
            between the DA and DM (step 2). 
          </t>
          <t>
            At some point, DTNMA Agent B loses the ability to transmit in the 
            network (steps 3 and 4). During this time period, DA B continues to 
            produce reports, but they are queued for transmission. This queuing might 
            be done by the DA itself or by a supporting transport such as BP. 
            Eventually, DTNMA Agent B is able to transmit in the network again (step 
            5) and all queued reports are sent at that time. DTNMA Agent A maintains 
            connectivity with the DM during steps 3-5, and continues to send reports 
            as they are generated.
          </t>
       </section>
       
       <section numbered="true">
        <name>Open-Loop Reporting</name>
        <t>
          This scenario illustrates the DTNMA open-loop control paradigm, where DAs 
          manage themselves in accordance with policies provided by DMs, and provide 
          reports to DMs based on these policies.
        </t>
        <t>
          The control flow shown in <xref target="consolidated_mgmt_ctrl_flow"/>,
          includes an example of data fusion, where multiple policies configured by a 
          DM result in a single report from a DA.
        </t>

        <t keepWithNext="true">Consolidated Management Control Flow</t>
        <figure anchor="consolidated_mgmt_ctrl_flow">
           <artwork align="center" name="" type="" alt=""><![CDATA[    
+-----------+           +---------+           +---------+
|   DTNMA   |           |  DTNMA  |           |  DTNMA  |
| 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">
          A many-to-one mapping between management policy and device state reporting 
          is supported by the DTNMA.
        </t>
        <t>
          In this figure, DTNMA Manager A sends a policy statement in the form of a 
          rule to DTNMA Agents A and B, which instructs the DAs to produce a report 
          with EDD1 every second (step 1). Each DA receives this policy, which is 
          stored in its respective Rule Database, and configures its Autonomy Engine. 
          Reports are transmitted by each DA when produced (step 2). 
        </t>
        <t>
          At a later time, DTNMA Manager A sends an additional policy to
          DTNMA Agent B, requesting the production of a report for EDD2 every second 
          (step 3). This policy is added to DTNMA Agent B's Rule Database.
        </t>
        <t>
          Following this policy update, DTNMA Agent A will continue to produce EDD1 
          and DTNMA Agent B will produce both EDD1 and EDD2 (step 4). However, DTNMA 
          Agent B may provide these values to the DM in a single report rather than as 
          2 independent reports. In this way, there is no direct mapping between the 
          single consolidated report sent by DTNMA Agent B (step 4) and the two 
          different policies sent to DTNMA Agent B that caused that report to be 
          generated (steps 1 and 3).
        </t>
      </section>
         
      <section numbered="true">
        <name>Multiple Administrative Domains</name>
        <t>
          The managed applications on a DA may be controlled by different
          administrative entities in a network. The DTNMA allows DAs to
          communicate with multiple DMs in the network, such as in cases
          where there is one DM per administrative domain. 
        </t>
        <t>
          Whenever a DM sends a policy expression to a DA, that policy 
          expression may be associated with authorization information. One 
          method of representing this is an ACL. 
        </t>
        <aside>
          <t>
            The use of an ACL in this use case does not imply the DTNMA 
            requires ACLs to annotate policy expressions. Further, the 
            inclusion of ACLs in the policy expressions themselves is
            for representation purposes only, as ACLs are internal to DAs and 
            not supplied explicitly in messaging. ACLs and their representation 
            in this context are for example purposes only. 
          </t>
        </aside>
        
        <t>
          The ability of one DM to access the results of policy 
          expressions configured by some other DM 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[    
+-----------+               +---------+                 +-----------+
|   DTNMA   |               |  DTNMA  |                 |   DTNMA   |
| 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">
             Multiple DMs may interface with a single DA, particularly in complex 
             networks.
          </t>
          <t>
            In this figure, both DTNMA Managers A and B send policies to DTNMA 
            Agent A (step 1). DM A defines a variable (V1) whose value is given 
            by the mathematical expression (EDD1 * 2) and is associated with an 
            ACL (ACL1) that restricts access to V1 to DM A only. Similarly, DM B 
            defines a variable (V2) whose value is given by the mathematical 
            expression (EDD2 * 2) and associated with an ACL (ACL2) that restricts 
            access to V2 to DM B only. 
          </t>
          <t>
            Both DTNMA Managers A and B also send policies to DTNMA Agent A to 
            report on the values of their variables at 1 second intervals (step 2). 
            Since DM A can access V1 and DM 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) DM B attempts to configure DA A to also
            report to it the value of V1. Since DM B does not have
            authorization to view this variable, DA 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 DM B.
          </t>
          <t>
            DM A also sends a policy to Agent A (step 5) that defines a 
            variable (V3) whose value is given by the mathematical expression 
            (EDD3 * 3) and is not associated with an ACL, indicating that any 
            DM can access V3. In this instance, both DM A and DM B can
            then send policies to DA 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
            sent to both DM A and B over time (step 7).
          </t>
       </section>
       
       <section numbered="true">
        <name>Cascading Management</name>
        <t>
          There are times where a single network device may serve as both
          a DM for other DAs in the network and, itself, as a 
          device managed by someone else. This may be the case on nodes
          serving as gateways or proxies. The DTNMA accommodates this case by 
          allowing a single device to run both a DA and DM. 
        </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              |
               |                                     |
+-----------+  |    +-----------+      +---------+   |    +---------+
|   DTNMA   |  |    |   DTNMA   |      |  DTNMA  |   |    |  DTNMA  |
| 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 operate as both a DTNMA Manager and an Agent.
        </t>
        <t>
          In this example, we presume that DA B is able to sample a
          given EDD (EDD1) and that DA C is able to sample a different
          EDD (EDD2). Node B houses DM B (which controls DA C) and DA B 
          (which is controlled by DM A). DM A must periodically receive 
          some new value that is calculated as a function of both EDD1 
          and EDD2. 
        </t>

        <t>
          First, DM A sends a policy to DA B to define a variable (V0) whose value 
          is given by the mathematical expression (EDD1 + EDD2) without a 
          restricting ACL. Further, DM A sends a policy to DA B to report on 
          the value of V0 every second (step 1).
        </t>

        <t>
          DA 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 by DA C and included in the Node B 
          runtime data stores. Therefore, DM B sends a policy to DA C to
          report on the value of EDD2 (step 2).
        </t>
        <t>
          DA C receives the policy in its autonomy engine and produces
          reports on the value of EDD2 every second (step 3).
        </t>
        <t>
          DA B may locally sample EDD1 and EDD2 and uses that to compute
          values of V0 and report on those values at regular intervals to DM A 
          (step 4).
        </t>
        <t>            
          While a trivial example, the mechanism of associating fusion with 
          the Agent function rather than the Manager function scales with 
          fusion complexity. Within the DTNMA, DAs and DMs are not required to 
          be separate software implementations. There may be a single software 
          application running on Node B implementing both DM B and DA B roles.
        </t>
      </section>
    </section>

   <section anchor="IANA"  numbered="true">
      <name>IANA Considerations</name>
      <t>
         This informational document requires no registrations to be managed by 
         IANA.
      </t>
   </section>



   <section anchor="Security"  numbered="true">
      <name>Security Considerations</name>
      <t>        
        Security within a DTNMA MUST exist in at least two layers: security
        in the data model and security in the messaging and encoding of the
        data model. 
      </t>

      <t>
        Data model security refers to the confidentiality of elements of a data 
        model and the authorization of DTNMA actors to access those elements. For 
        example, elements of a data model might be available to certain DAs or DMs
        in a system, whereas the same elements may be hidden from other DAs or DMs.
      </t>

      <aside>
        <t>
          NOTE: One way to provide finer-grained application security is through 
          the use of Access Control Lists (ACLs) that would be defined as part of 
          the configuration of DAs and DMs. It is expected that many common data 
          model tools provide mechanisms for the definition of ACLs and best 
          practices for their operational use.
        </t>
      </aside>

      <t>
         The exchange of information between and amongst DAs and DMs in the DTNMA 
         is expected to be accomplished through some messaging transport. As such, 
         security at the transport layer is expected to address the questions of 
         authentication, integrity, and confidentiality. 
      </t>
   </section>

    <section toc="default">
      <name>Acknowledgements</name>
      <t>
        Brian Sipos of the Johns Hopkins University Applied Physics Laboratory (JHU/APL) provided excellent technical review of the DTNMA concepts presented in this document.
      </t>
    </section>

</middle>

  <!--  *****BACK MATTER ***** -->
  <back>
    <!-- -<references title="Normative References">
      
     
    </references> -->
  
  <references>
      <name>Informative References</name>

      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2578.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3165.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2982.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3410.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3411.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3416.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3418.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4838.xml'/>
      <xi:include href='https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4949.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6991.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7575.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8639.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8641.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9171.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9172.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8199.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8368.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8342.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8990.xml'/>
      <xi:include href='http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8993.xml'/>

      <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-core-sid.xml'/>
      <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-core-comi.xml'/>

      <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="xml-infoset" target= "https://www.w3.org/TR/2004/REC-xml-infoset-20040204/">
        <front>
          <title>
               XML Information Set (Second Edition)
          </title>
           <author>
             <organization>World Wide Web Consortium</organization>
           </author>
          <date month="February" year="2004"/>
        </front>
      </reference>

    </references>

  </back>
</rfc>
