RFC 9675
Delay-Tolerant Networking Management Architecture (DTNMA)
Delay-Tolerant Networking Management Architecture (DTNMA) ๐๐ฐ๏ธ
Okay bestie, let's get into it! โจ This is RFC 9675, and it's brand new in November 2024. ๐
Title block, the tea โ
- Authors: E. Birrane, III, S. Heiner, and E. Annis, all from JHU/APL ๐ง
- Category: Informational ๐ (so it's not a Standards Track spec, just here to share the knowledge!)
- Date: November 2024 ๐ธ
- ISSN: 2070-1721
- Obsoletes / Updates: Nothing listed in the title block, so this one is a fresh start ๐
The whole vibe here is management for devices living in challenged networks, the places where the connection is laggy, drops out a lot, or is just super far away. ๐ Think deep space, unidirectional links, you name it. ๐
Abstract โจ
Okay so the Delay-Tolerant Networking (DTN) architecture is built for challenged networks, where communication can get seriously messed up by long signal delays, frequent link disruptions, or both. ๐ญ That means the management approach needs to be totally different too. It has to handle asynchronous transport, let devices run themselves locally, and stay super lightweight in both resources and dependencies so it can run on tiny constrained devices. ๐
This document describes a DTN Management Architecture (DTNMA) that works for managing devices in any challenged environment, but especially ones talking over the DTN Bundle Protocol (BP). ๐ BP needs an architecture that doesn't assume synchronized transport and doesn't rely on query-response mechanisms. Implementations of this DTNMA should be able to survive extremely rough conditions, like unidirectional links and other places where BP is the go-to transport. ๐ฆ It's giving resilience, periodt! ๐ฅ
Status of This Memo ๐
This document is not an Internet Standards Track specification. It's published for informational purposes only. ๐ง
It is a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved document is a candidate for any level of Internet Standard, so check out Section 2 of RFC 7841 for the deets. ๐ค
For the current status, any errata, and how to give feedback, head to https://www.rfc-editor.org/info/rfc9675. ๐
Copyright Notice ๐
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. ๐
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as in effect on the date of publication. Please read these carefully, because they spell out your rights and restrictions with respect to this document. โญ Any Code Components pulled out of this document must include the Revised BSD License text described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Revised BSD License. ๐ซถ
Table of Contents ๐บ๏ธ
1. Introduction
1.1. Purpose
1.2. Scope
1.3. Organization
2. Terminology
3. Challenged Network Overview
3.1. Challenged Network Constraints
3.2. Topology and Service Implications
3.2.1. Tiered Management
3.2.2. Remote and Local Manager Associations
3.3. Management Special Cases
4. Desirable Design Properties
4.1. Dynamic Architectures
4.2. Hierarchically Modeled Information
4.3. Adaptive Push of Information
4.4. Efficient Data Encoding
4.5. Universal, Unique Data Identification
4.6. Runtime Data Definitions
4.7. Autonomous Operation
5. Current Remote Management Approaches
5.1. SNMP and SMI Models
5.1.1. The SMI Modeling Language
5.1.2. SNMP and Transport
5.2. XML-Infoset-Based Protocols and YANG Data Models
5.2.1. The YANG Modeling Language
5.2.2. NETCONF Protocol and Transport
5.2.3. RESTCONF Protocol and Transport
5.2.4. CORECONF Protocol and Transport
5.3. gRPC Network Management Interface (gNMI)
5.3.1. The Protobuf Modeling Language
5.3.2. gRPC Protocol and Transport
5.4. Intelligent Platform Management Interface (IPMI)
5.5. Autonomic Networking
5.6. Deep Space Autonomy
6. Motivation for New Features
7. Reference Model
7.1. Important Concepts
7.2. Model Overview
7.3. Functional Elements
7.3.1. Managed Applications and Services
7.3.2. DTNMA Agent (DA)
7.3.3. Managing Applications and Services
7.3.4. DTNMA Manager (DM)
7.3.5. Pre-Shared Definitions
8. Desired Services
8.1. Local Monitoring and Control
8.2. Local Data Fusion
8.3. Remote Configuration
8.4. Remote Reporting
8.5. Authorization
9. Logical Autonomy Model
9.1. Overview
9.2. Model Characteristics
9.3. Data Value Representation
9.4. Data Reporting
9.5. Command Execution
9.6. Predicate Autonomy Rules
10. Use Cases
10.1. Notation
10.2. Serialized Management
10.3. Intermittent Connectivity
10.4. Open-Loop Reporting
10.5. Multiple Administrative Domains
10.6. Cascading Management
11. IANA Considerations
12. Security Considerations
13. Informative References
Acknowledgements
Authors' Addresses
1. Introduction ๐ธ
Okay so this document describes a logical, informational Delay-Tolerant Networking Management Architecture (DTNMA) that's built for operating devices in a challenged architecture, like devices talking over the DTN Bundle Protocol version 7 (BPv7) [RFC9171]. ๐ฆ
Challenged networks have properties that make them totally different from other networks. ๐ Per Section 2.2.1 of [RFC7228], these include lacking end-to-end IP connectivity, having "serious interruptions" to end-to-end connectivity, and having delays longer than end-to-end synchronization mechanisms (like TCP) can tolerate. ๐ญ
These challenged network properties can come from all sorts of places: physical constraints (like long signal propagation delays and frequent link disruptions), administrative policies (like quality-of-service prioritization, service-level agreements, and traffic management and scheduling), and off-nominal behaviors (like active attackers and misconfigurations). ๐ And since sparseness isn't the only cause, challenged networks will stick around even as things get more connected. ๐ซถ
The DTN architecture, described in [RFC4838], was designed for data exchange in challenged networks. ๐ง Just like DTN needs new capabilities for transport and transport security, devices operating in a challenged network need special consideration too. โจ
1.1. Purpose ๐
This document explains how challenged network properties affect the operation of devices in those networks. ๐ It's presented as a logical architecture made from a union of best practices for operating devices in challenged environments.
One important practice in this document is self-operation. Self-operation means running a device without human interactivity, without system-in-the-loop synchronous functions, and without a synchronous underlying transport layer. ๐คฏ So devices decide their own schedules for data reporting, decide their own operational configuration, and do their own error discovery and mitigation. Main character energy, literally. ๐
1.2. Scope ๐ฆ
This document has the info needed to document existing practices for operating devices in a challenged network, framed as a logical architecture. A logical architecture describes how a system works by identifying its components (like in a reference model), the behaviors they enable, and use cases showing how those behaviors get the system doing what it should. ๐
Logical architectures are not functional architectures. So any functional design for achieving the desired behaviors is out of scope here. ๐ โโ๏ธ The set of architectural principles in this document isn't meant to fully specify interfaces between components. ๐
The choice of transport or network layer is outside the scope of this document. The DTNMA doesn't require any specific protocol like IP, BP, TCP, or UDP. โจ Specifically, the DTNMA design doesn't assume BPv7, IPv4, or IPv6. ๐ซถ
NOTE: BPv7 is the preferred transport for networks that follow the DTN architecture, so the DTNMA should be considered for any BPv7 network deployment. ๐ฅ That said, the DTNMA can also be used in other networks that have similar needs for this particular style of self-operation. That's why the DTNMA doesn't require BPv7 to transport management information. ๐ธ
Network features like naming, addressing, routing, and communications security are out of scope for the DTNMA. It's presumed that any operational network carrying DTNMA messages would implement these services for whatever payloads that network carries. ๐ง
The interactions between the DTNMA and other management approaches are also outside the scope of this document. ๐
1.3. Organization ๐
The following nine sections give you the details on the DTNMA. Ready? Let's go! ๐
Terminology: Section 2 covers the terms you need to get DTNMA concepts. Whenever possible, these terms line up in both word choice and meaning with how other management protocols use them. ๐
Challenged Network Overview: Section 3 describes the important aspects of challenged networks and the approaches needed to manage them. ๐
Desirable Design Properties: Section 4 defines the properties the DTNMA needs in order to operate within the constraints of a challenged network. These are kind of like system-level requirements for a DTN management solution. ๐
Current Remote Management Approaches: Section 5 gives a quick overview of existing remote management approaches. Where possible, the DTNMA borrows concepts from them. ๐ซถ
Motivation for New Features: Section 6 gives the overall motivation for this work and explains why a management architecture for challenged networks is useful and necessary. ๐ช
Reference Model: Section 7 defines a reference model you can use to analyze the DTNMA without tying it to any particular implementation or implementation architecture. It identifies the logical components of the system and the high-level relationships and behaviors between them. ๐งฉ
Desired Services: Section 8 identifies and defines the DTNMA services provided to network and mission operators. ๐
Logical Autonomy Model: Section 9 provides an example data model you can use to analyze DTNMA control and data flows. It's based on the DTNMA reference model. ๐
Use Cases: Section 10 presents multiple use cases the DTNMA accommodates. Each use case is laid out as a set of control and data flows referencing the DTNMA reference model and logical autonomy model. ๐
Part 1 of 12 done, bestie! ๐ฅณ Stay tuned for part 2 (Section 2, Terminology) ๐
2. Terminology โจ
okay bestie, this section is the glossary ๐ it's giving "here's what these words mean so we're all on the same page" ๐ซถ some of these are DTNMA-specific, and the rest are concepts you need before the rest of the doc makes sense ๐
- Timely Data Exchange: getting info between two (or more) entities within a deadline that's actually required ๐ฐ๏ธ sometimes a 1-second exchange is way too slow, and sometimes a 1-hour exchange is totally on time โณ it depends on the situation ๐ธ
- Local Operation: a device being operated by an app that lives on that same device ๐ these local operators are apps running on the device, and there might be one or more of them working independently, or as a team, to do the local operations job ๐ฏ unless something's gone wrong, local operators are always expected to be available to the devices they manage ๐
- Remote Operation: a device being operated by an app running on a different device ๐ฐ๏ธ remote operators talk to the devices they operate over a network ๐ they're not always expected to be available, which is very real of them ๐
- DTN Management: managing, monitoring, and controlling a device that doesn't rely on stateful connections, timely data exchange of management messages, or synchronous functions that need the system in the loop ๐ง DTN management is basically a mashup of local operation and remote operation ๐ remote operators manage the configuration of the local operators, and those local operators handle monitoring and control of the devices they live on ๐
- DTNMA Agent (DA): a role on a managed device that reports performance data, accepts policy directives, does autonomous local control, handles errors, and validates data โจ DAs swap info with DTNMA Managers (DMs) on the same device and/or on remote devices in the network ๐ฆ a DA is a type of local operator ๐ท
- DTNMA Manager (DM): a role on a managing device that configures how DAs behave and eventually gets info back from them ๐ซง DMs interact with one or more DAs on the same device and/or on remote devices in the network ๐ a DM is a type of remote operator ๐
- Controls: procedures a DA runs to change the behavior, configuration, or state of an app or protocol that DA manages ๐ ๏ธ this includes procedures for managing the DA itself, like having it produce performance reports or applying new management policies ๐
- Externally Defined Data (EDD): typed info made available to a DA by its hosting device, but that the DA didn't compute itself ๐ it's a gift from the host, not homework the DA did ๐ญ
- Data Report: a typed, ordered collection of data values gathered by one or more DAs and handed to one or more DMs ๐ฆ reports follow the format of a given data report schema ๐
- Data Report Schema: a named, ordered collection of data elements that describes the schema of a data report ๐ the blueprint, basically ๐ง
- Rule: a unit of autonomous specification that sets up a stimulus-response relationship between time or state on a DA and the actions or operations that should run because of that time or state โก if this happens, do that, no thinking required ๐ค
3. Challenged Network Overview ๐
okay so this section is about the DTNMA doing network management in challenged network environments ๐ฆ those are the exact messy networks that the DTN architecture was built for ๐ช we're going to cover what "challenged network" actually means, the important properties of those networks, and what that means for how management works ๐ง it's giving a whole vibe ๐ธ
3.1. Challenged Network Constraints
first, the term "constrained" ๐ซถ 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" [RFC7228] ๐ญ that's a broad definition, and it covers all kinds of problems with physical, technical, and regulatory limits on sending messages ๐ constrained networks usually include nodes that reboot all the time or get turned off for long stretches ๐ค they also tend to transmit at low or asynchronous bitrates, and/or have very limited computing power ๐ชซ
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" [RFC7228] ๐ links in these networks can be hit by attenuation, propagation delays, mobility, occultation, and other limits set by energy and mass considerations ๐ฐ๏ธ so systems that rely on those links can't guarantee timely end-to-end data exchange ๐
NOTE: Because challenged networks might not provide the services expected of the end-to-end IP model, devices in those networks might not implement the networking stacks tied to that model ๐ณ that means devices might not support certain transport protocols (TCP/QUIC/UDP), web protocols (HTTP), or internetworking protocols (IPv4/IPv6) ๐ซ
by these definitions, a "challenged" network is a special kind of "constrained" network, where the constraints stop timely end-to-end data exchange from happening ๐ so: "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" [RFC7228] ๐ it's literally the whole point of DTN ๐
solutions that work in constrained networks might not be solutions that work in challenged networks ๐ โโ๏ธ especially, challenged networks have the following properties that change how we think about network management ๐ง
- timely end-to-end data exchange can't be guaranteed to exist at any given time between any two nodes ๐
- latencies on the order of seconds, hours, or days must be tolerated โณ
- managed devices can't be guaranteed to always be powered on so they can receive ad hoc management requests (even requests with artificially extended timeout values) ๐
- individual links may be unidirectional โก๏ธ
- bidirectional links may have asymmetric data rates ๐ถ
- the existence of external infrastructure, services, systems, or processes like a Domain Name System (DNS) or a Certificate Authority (CA) can't be guaranteed ๐๏ธ
3.2. Topology and Service Implications ๐บ๏ธ
the set of constraints that might show up in a challenged network affects both the network's topology and the services running inside it ๐ธ๏ธ
operational networks handle nodes joining and leaving over time ๐ช these topology changes may or may not be planned, they may or may not be errors, and they may or may not affect network services ๐คทโโ๏ธ challenged networks aren't different because they have topology changes ๐ they're different because topology impacts are way more likely to turn into service impacts ๐ฅ
the difference between topology impacts and service impacts can be described in terms of connectivity ๐ topological connectivity usually means there's a path between an application message source and destination ๐จ service connectivity, on the other hand, means there's a path between a node and one or more services needed to process application messaging (often just in time) โฑ๏ธ examples of service connectivity include access to infrastructure services like a Domain Name System (DNS) or a CA ๐งพ
in networks that are partitioned most of the time, a node is less likely to access both an application endpoint and one or more network service endpoints at the same time ๐ซ for that reason, network services in a challenged network should be designed to allow for asynchronous operation ๐ handling this use case often means using local caching, pre-placing information, and not hard-coding message information at a source that might change by the time the message reaches its destination ๐ง
NOTE: One example of rethinking services in a challenged network is securing BPv7 bundles ๐ the Bundle Protocol Security (BPSec) [RFC9172] security extensions to BPv7 don't encode security destinations when applying security ๐ instead, BPSec requires nodes in a network to identify themselves as security verifiers or acceptors when they receive and process secured messages ๐ซถ
3.2.1. Tiered Management ๐๏ธ
network operations and management approaches need to adapt to the topology and service impacts found in challenged networks ๐ช๏ธ specifically, the roles and responsibilities of "managers" and "agents" need to be different from what you'd expect in unchallenged networks ๐
when connectivity to a manager can't be guaranteed, agents will need to rely on locally available information and local autonomy to react to changes at the node ๐งโโ๏ธ when an agent uses local autonomy to run itself, it acts as a local operator serving as a proxy for an absent remote operator ๐ซ
so the role of a "manager" has to become a remote operator that generates configurations and other essential updates for the local operator "agents" living on a managed device ๐
this approach creates a two-tiered management architecture ๐ฐ the first tier is managing the local operator configuration using any one of a variety of standard mechanisms, models, and protocols ๐งฉ the second tier is operating the local device through the local operator ๐ง
the DTNMA defines the DTNMA Manager (DM) as a remote operator application and the DTNMA Agent (DA) as an agent acting as a local operator application ๐ in this model, shown in Figure 1, the DM and DA can be viewed as applications: the DM produces new configurations, and the DA receives those configurations from an underlying management mechanism ๐ฆ
_
/
/ +------------+ +-----------+ Local +---------+
TIER / | DM (Remote | | DA (Local | Operation | Managed |
2 \ | Operator) | | Operator) | <---------> | Apps |
MGMT \ +------------+ +-----------+ +---------+
\_ ^ ^
| configs | configs
_ | |
/ V V
/ +------------+ Remote +------------+
TIER / | Management | Management | Management |
1 \ | Client | <----------> | Server |
MGMT \ +------------+ +------------+
\_
Figure 1: Two-Tiered Management Architecture
in this approach, the configurations the DM produces are based on the DA features and associated data model ๐ how those configurations get transported between the DM and the DA, and how results get communicated back from the DA to the DM, can be handled by whatever mechanism is most appropriate for the network and the device platforms ๐ for example, a Network Configuration Protocol (NETCONF), RESTCONF, or Simple Network Management Protocol (SNMP) server on the managed device can provide configurations to a DA ๐ซง
3.2.2. Remote and Local Manager Associations ๐
okay so disconnection isn't the only thing that can shake things up ๐ topological change can also reshuffle the associations between managed and managing devices. different managing devices might be active at different times or in different partitions ๐ฆ and a managed device might talk to some, all, or none of them, depending on its own local configuration and policy. it's giving choose-your-own-adventure ๐
NOTE: ngl these ideas already exist in regular networks ๐ธ supporting multiple managing devices is kinda like running multiple instances of a network service such as a DNS server or CA node, and picking from a set of managing devices is like how sensor nodes elect cluster heads to act as privileged nodes for data storage and exfiltration ๐
Therefore, a network management architecture for challenged networks should:
- Support a many-to-many association amongst managing and managed devices, and
- Allow "control from" and "reporting to" managing devices to function independently of one another.
3.3. Management Special Cases
the following special cases show some of the operational situations you can run into when managing devices in a challenged network ๐
- One-Way Management: a managed device can only be accessed via a unidirectional link, or via a link whose duration is shorter than a single round-trip propagation time. results of this management may come back at a different time, over a different path, and/or show up as observable out-of-band changes to device behavior ๐ฆ
- Summary Data: a managing device might only receive summary data about a managed device's state, because a link or path is constrained by capacity or reliability ๐
- Bulk Historical Reporting: a managing device receives a large volume of historical report data for a managed device. this can happen when a managed device rejoins a network or has temporary access to a high-capacity link (or path) between itself and the managing device ๐
- 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 scenario would also apply to challenged networks that interconnect two or more unchallenged networks, such that managed and managing devices exist in different networks ๐
these special cases highlight the need for managed devices to operate without presupposing a dedicated connection to a single managing device. 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 โฐ
4. Desirable Design Properties โจ
this section describes the design properties that are desirable when defining a management architecture operating across challenged links in a network. these properties make sure network management capabilities are retained even as delays and disruptions scale up ๐ช ultimately, they are the driving design principles for the DTNMA ๐
NOTE: these properties may influence the design, construction, and adaptation of existing management tools for use in challenged networks. for example, the properties of the DTN architecture [RFC4838] resulted in the development of BPv7 [RFC9171] and BPSec [RFC9172]. implementing the DTNMA model may result in the construction of new management data models, policy expressions, and/or protocols ๐ง
4.1. Dynamic Architectures
the DTNMA should be agnostic to the underlying physical topology, transport protocols, security solutions, and supporting infrastructure of a given network. because it's likely to operate in a frequently partitioned environment, the topology of a network may change over time. trying to stabilize an architecture around individual nodes can result in a brittle management framework and create congestion points during periods of connectivity ๐ฅ
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 on 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 imply a pair ๐ซถ
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. implementors of managed and managing devices must account for these limitations in their device designs ๐ ๏ธ
4.2. Hierarchically Modeled Information
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 ๐ณ
NOTE: the term "data model" here refers to a schema that defines a contract between a DA and a DM regarding how information is represented and validated ๐
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 predefined, normative data models ๐
a common best practice when defining a data model is to make it cohesive. a cohesive model includes information related to a single purpose, such as managing a single application or protocol. when you apply this practice, it's not uncommon to end up with a large number of small data models that together describe the information needed to manage a device ๐
another best practice is using inclusion mechanisms, which let one data model include information from another data model. this avoids repeating information across different data models. when one data model includes information from another, there is an implied model hierarchy ๐ช
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. those actions include supporting DA autonomy functions such as parameterization, filtering, and event-driven behaviors. these models will be used both to implement interoperable autonomy engines on DAs and to define interoperable report parsing mechanisms on DMs ๐ค
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 identification schemes should be constructed to allow for both hierarchical data and highly compressible data identification ๐๏ธ
4.3. Adaptive Push of Information
DAs in the DTNMA should determine when to push information to DMs as a function of their local state ๐ง
"Pull" 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 knowledge synchronization between entities (which may be as simple as knowing when a managed device might be powered). however, challenged networks cannot guarantee timely round-trip data exchange, so pull mechanisms should be avoided in the DTNMA ๐ โโ๏ธ
"Push" mechanisms, in this context, mean 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 in the DA's internal state. once pushed, information might still be queued, pending connectivity of the DA to the network ๐ฌ
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 ๐ซ
4.4. Efficient Data Encoding
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 ๐ฆ
there is a relationship between message encoding and message processing time at a node. messages with few or no encodings may simplify node processing, whereas more compact encodings may require additional activities to generate or parse encoded messages. generally, compressing a message takes processing time at the sender, and decompressing a message takes processing time at a receiver. so there is a design trade-off between minimizing message sizes and minimizing node processing โ๏ธ
there is a significant advantage to smaller DTNMA message sizes in a challenged network ๐ smaller messages require shorter periods of viable transmission, they incur less retransmission cost, and they consume fewer resources when persistently stored en route in the network โจ
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, hierarchical data models, and common substructures within data models. these strategies allow for compressibility beyond what would otherwise be achieved by computing large hash values over generalized data structures ๐ฅ
4.5. Universal, Unique Data Identification
Okay, bestie, data elements in the DTNMA should be uniquely identifiable so they can be manipulated one at a time ๐. And these identifiers should be universal. The ID for a data element should stay the same no matter the role, the implementation, or the network instance ๐
Identification schemes that are relative to a specific DA or a specific system configuration might change over time, so they should be avoided ๐ Relative schemes mean you'd have to resynchronize relative state every time nodes in a challenged network reconnect after a partition, and nobody wants that drama. Resynchronization like this should be avoided whenever possible โจ
NOTE: Let's talk about a common management technique for faking an associative array lookup ๐ง. Say a managed device tracks the number of bytes passed by several named interfaces. To get the number of bytes through a specific named interface (int_foo), you'd do this: 1. Query a list of ordered interface names from an agent. 2. Find the name that matchesint_foo, and infer the agent's index ofint_foofrom the ordered interface list. In this instance, assume thatint_foois the fourth interface in the list. 3. Query the agent (again) to now return the number of bytes passed through the fourth interface. Ignoring the inefficiency of two round-trip exchanges, this mechanism will fail if an agent implementation changes its index mapping between the first and second queries. The data we actually want, "number of bytes through 'int_foo'", should be uniquely and universally identifiable and independent of how that data exists in any agent's custom implementation ๐
4.6. Runtime Data Definitions
The DTNMA lets you add new data elements to a data model while the management system is running ๐ฆ These definitions can be custom data definitions that only apply to a particular device or network. Custom definitions should also be removable from the system during runtime ๐ซถ
The goal is to add or remove data elements from the local runtime schemas as needed. Think new counters, new reports, or new rules, all added on the fly โจ
Defining custom data from existing data (through data fusion, averaging, sampling, or other mechanisms) gives you a way to share the info you care about in the most compact form possible ๐ธ
NOTE: For example, a DM could define a custom data report that includes only summary information about a specific operational event or part of a specific debugging session ๐ฅ DAs could then keep producing this smaller report until it's no longer needed, and at that point the custom report could be removed from the management system.
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 lets DAs do local data fusion, and defining new reporting templates lets DMs specify the formats they want, which generally saves link capacity, storage, and processing time ๐
4.7. Autonomous Operation
The management of applications by a DA should be achievable using only knowledge that is local to the DA ๐ฅบ That's because DAs might need to keep working during times when they are disconnected from a DM.
DA autonomy may be used for simple automation of predefined tasks, or to support semi-autonomous behavior, like deciding when to run tasks and how to configure or parameterize them when they run ๐ง
Here are the important features a DA gives you. They work together to get tasks done, so their definitions and benefits overlap a lot ๐
- Standalone Operation: Preconfiguration lets DAs run without regular contact with other nodes in the network ๐ Updating configurations is still hard in a challenged network, but this approach means a DM doesn't have to be in the loop during regular operations. If you preconfigure stimuli and responses on a DA while it's connected, it can self-manage while it's disconnected ๐ซถ
- Deterministic Behavior: Operational systems might need to act in a deterministic way, even when nobody is in the loop as an operator ๐ฎ Deterministic behavior lets an out-of-contact DM predict the state of a DA and figure out how the DA got into a particular state ๐
- Engine-Based Behavior: Operational systems might not be able to deploy "mobile code" solutions [RFC4949] because of network bandwidth, memory or processor loading, or security concerns ๐ Engine-based approaches give you configurable behavior without running into those problems โจ
- Authorization and Accounting: The DTNMA does not require a specific underlying transport protocol, a specific network infrastructure, or specific network services ๐ฆ So mechanisms for authorization and accounting need to be present in a standard way at DAs and DMs to provide these functions, in case the underlying network doesn't. This matters a lot when multiple DMs may be active in the network at the same time ๐
Here's how these features add up in a typical case: a managed device comes online with a set of preinstalled configurations ๐ธ In this case, the device's standalone operation comes from the preconfiguration of its local autonomy engine. This engine-based behavior lets the system behave in a deterministic way, and any new configurations will need to be authorized before they're adopted ๐
Features like deterministic processing and engine-based behavior are separate from other Artificial Intelligence (AI) and Machine Learning (ML) approaches for device management, and they don't rule those out either ๐ค๐
5. Current Remote Management Approaches โจ
Several remote management solutions have been built for both local area networks and wide area networks ๐ Their capabilities range from simple configuration and report generation all the way to complex modeling of device settings, state, and behavior ๐ All of these approaches work in the domains they were built for, but they aren't all equally functional when deployed in a challenged network ๐ฅน
This section covers some well-known remote management protocols and compares their purposes with the desirable properties of the DTNMA ๐ The point of the comparison is to find parts of existing approaches that can be adopted or adapted for challenged networks, and to spot where brand-new capabilities should be created just for those environments ๐ง
5.1. SNMP and SMI Models
SNMP is an early and widely used remote management protocol, and it's currently at version 3 [RFC3410] ๐ It uses a request-response model to get and set data values inside an arbitrarily deep object hierarchy. Objects identify data like host identifiers, link utilization metrics, error rates, and counters, passed between application software on managing and managed devices [RFC3411] ๐ SNMP also has a model for unidirectional push messages, called event notifications, which are based on triggering events defined by the agent ๐
SNMP depends on logical sessions with predictable round-trip latency to support its pull mechanism, but a single activity usually needs many round-trip exchanges ๐ญ You can do complex management, but only through careful orchestration of real-time, end-to-end query-and-response logic driven by the managing device ๐
There is existing work that uses the SNMP data model to support some low-fidelity agent-side processing ๐ This includes the "Distributed Management Expression MIB" [RFC2982] and "Definitions of Managed Objects for the Delegation of Management Scripts" [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 just isn't enough for autonomous event handling ๐ซ
5.1.1. The SMI Modeling Language
SNMP keeps the representations of managed data models separate from messaging, sequencing, and encoding between managers and agents ๐งฉ Each data model is called a "Management Information Base" (or "MIB") [RFC3418] and uses the Structure of Management Information (SMI) modeling language [RFC2578]. The SMI itself is based on the ASN.1 syntax [ASN.1], which is also used for other, unrelated data structure specifications, like the Cryptographic Message Syntax (CMS) [RFC5652] ๐ค Separating data models from messaging and encoding is a best practice in remote management protocols, and it's also necessary for the DTNMA ๐
Each SNMP MIB is made up of managed object definitions, and each one is associated with a hierarchical Object Identifier (OID) ๐ณ Because MIB object trees can be arbitrarily deep, the size of OIDs isn't strictly bounded by the protocol (though implementations may bound it) ๐
5.1.2. SNMP and Transport
SNMPv2 [RFC3416] [RFC3417] and SNMPv3 [RFC3414] can run over a bunch of transports, including plaintext UDP/IP [RFC3417], SSH/TCP/IP [RFC5592], and DTLS/UDP/IP or TLS/TCP/IP [RFC6353] ๐
SNMP uses an abstracted security model to provide authentication, integrity, and confidentiality ๐ There are two options. The User-based Security Model (USM) [RFC3414] uses in-message security, and the Transport Security Model (TSM) [RFC5591] relies on the transport to provide security functions and interfaces ๐ก๏ธ
5.2. XML-Infoset-Based Protocols and YANG Data Models
Several network management protocols share the same XML Information Set [xml-infoset] for their hierarchical managed information, and XPath expressions [XPath] to identify nodes of that information model ๐ง These protocols include NETCONF [RFC6241], RESTCONF [RFC8040], and the Constrained Application Protocol (CoAP) Management Interface (CORECONF) [CORE-COMI] ๐ท Since they share the same information model and the same data manipulation operations, they're grouped together as "*CONF" protocols ๐ Each protocol still provides a different encoding of that information set and its related operation-specific data โจ
The YANG modeling language, defined in [RFC7950], is used to define the data model for these management protocols ๐ Right now, YANG is the IETF standard for defining managed information models, and that's a big deal ๐๐
5.2.1. The YANG Modeling Language
okay bestie, YANG is the modeling language that gives you a syntax and modular semantics for organizing and accessing a device's configuration or operational information โจ. It lets you split a full managed configuration into separate namespaces, and each one is defined by its own YANG module. Once a module is developed, it gets used (directly or indirectly) on both the client and the server, so it basically works as a contract between the two ๐ค. A YANG module can get super complex, describing a deeply nested and interrelated set of data nodes, actions, and notifications ๐ง .
Unlike the separation between ASN.1 syntax and module semantics from higher-level SMI data model semantics (as discussed in Section 5.1.1), YANG is giving everything-in-one vibes. It defines a text syntax and module semantics together with data model semantics ๐ .
YANG gives model developers lots of flexibility in how they organize model objects ๐ฆ. It supports a broad range of data types, as noted in [RFC6991] ๐ธ. It also supports the definition of parameterized Remote Procedure Calls (RPCs) and actions to be executed on managed devices, plus event notifications within the model ๐.
Current *CONF notification logic lets a client subscribe to the delivery of specific containers or data nodes defined in the model, on either a periodic or "on-change" basis [RFC8641]. These notification events can be filtered according to XPath or subtree filtering [XPath] [RFC6241], as described in Section 2.2 of [RFC8639] ๐ฏ.
The use of YANG for data modeling necessarily comes with some side effects, and some of them are described here ๐.
Text Naming: Data nodes, RPCs, and notifications within a YANG data model are named by a namespace-qualified, text-based path of the module, submodule, container, and any data nodes such as lists, leaf-lists, or leaves. There's no explicit hierarchical organization based on data or object type, so it's all just paths ๐ค๏ธ.
Existing efforts to make compressed names for YANG objects, such as the YANG Schema Item iDentifiers (SIDs) discussed in Section 3.2 of [RFC9254], let a node be named by a globally unique integer value. But they're still relatively verbose (up to 8 bytes per item), and they still must be translated into text form for things like instance identification (see below). Also, when representing a tree of named instances, the child elements can use differential encoding of SID integer values as "delta" integers ๐งฎ. The mechanisms for assigning SIDs and the lifecycle of those SIDs are discussed in [RFC9595].
Text Values and Built-In Types: Because the original use of YANG with NETCONF was to model XML Information Sets, the values and built-in types are necessarily text based ๐. JSON encoding of YANG data [RFC7951] allows for optimized representations of many built-in types. Similarly, Concise Binary Object Representation (CBOR) encoding [RFC9254] allows for different optimized representations ๐.
In particular, the YANG built-in types support a fixed range of decimal fractions (Section 9.3 of [RFC7950]), but they purposefully do not support floating-point numbers ๐ซ. There are alternatives, though, like the type "bandwidth-ieee-float32" [RFC8294], or using the "binary" type with one of the IEEE-754 encodings.
Deep Hierarchy: YANG allows for, and current YANG modules take advantage of, the ability to deeply nest a model hierarchy to represent complex combinations and compositions of data nodes ๐ช. When a model uses a deep hierarchy of nodes, this necessarily means that the qualified paths to name those nodes and instances are longer than they would be in a flat namespace ๐.
Instance Identification: The node instances in a YANG module necessarily use XPath expressions for identification ๐. Some identification is constrained to be strictly within the YANG domain, such as "must", "when", "augment", or "deviation" statements. Other identification needs to be processed by a managed device, for example via the "instance-identifier" built-in type. This means that any implementation of a managed device must include XPath processing and related information model handling per Section 6.4 of [RFC7950] and its referenced documents. So it's a whole thing, bestie ๐ญ.
Protocol Coupling: A significant amount of existing YANG tooling or modeling presumes the use of YANG data within a management protocol with specific operations available ๐คทโโ๏ธ. For example, the access control model defined in [RFC8341] relies on those operations specific to the *CONF protocols for proper behavior.
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 [RFC8199].
Manager-Side Control: YANG RPCs and actions execute on a managed device and generate an expected, structured response ๐ฆ. RPC execution is strictly limited to those issued by the manager. Commands are executed immediately and sequentially as they are received by the managed device, and there is no method to autonomously execute RPCs triggered by specific events or conditions. No freelancing allowed ๐ โโ๏ธ.
The YANG modeling language continues to evolve as new features are needed by adopting management protocols ๐ฑ.
5.2.2. NETCONF Protocol and Transport
NETCONF is a stateful, XML-encoding-based protocol that provides a 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. A bidirectional NETCONF session needs to be established before any data transfer (or notification) can occur ๐ค.
The XML exchanged within NETCONF messages is structured according to YANG modules supported by the NETCONF agent, and the data nodes reside within one of possibly many datastores in accordance with the Network Management Datastore Architecture (NMDA) [RFC8342] ๐๏ธ.
NETCONF transports are required to provide authentication, data integrity, confidentiality, and replay protection ๐. Currently, NETCONF can operate over SSH/TCP/IP [RFC6242] or TLS/TCP/IP [RFC7589].
5.2.3. RESTCONF Protocol and Transport
RESTCONF is a stateless, JSON-encoding-based protocol ๐ง. It provides the same operations as NETCONF, using the same YANG modules for structure and the same NMDA datastores, but it does this using RESTful exchanges over HTTP ๐. It uses HTTP methods to express its allowed operations: GET, POST, PUT, PATCH, or DELETE data nodes within a datastore.
Although RESTCONF is a logically stateless protocol, it does rely on state within its transport protocol to achieve behaviors such as authentication and security sessions ๐ช. Because RESTCONF uses the same data node semantics as NETCONF, a typical activity can involve several sequential round trips of exchanges to first discover managed device state and then act upon it ๐.
5.2.4. CORECONF Protocol and Transport
CORECONF is an emerging stateless protocol built atop CoAP [RFC7252] ๐ฑ. It 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 ๐จ.
5.3. gRPC Network Management Interface (gNMI)
Another emerging management protocol, though not IETF-affiliated, is the gRPC Network Management Interface (gNMI) [gNMI] ๐. It's based on gRPC messaging and uses Google protobuf data modeling ๐ ๏ธ.
The same limitations as those listed above for RESTCONF apply to gNMI, because of its reliance on synchronous HTTP exchanges and TLS for normal operations, plus the likely deep nesting of data schemas ๐. gNMI is capable of transporting JSON-encoded YANG-modeled data, but how to compose such data is not yet fully standardized ๐ง.
5.3.1. The Protobuf Modeling Language
The data managed and exchanged via gNMI is encoded and modeled using Google protobuf, an encoding and modeling syntax not affiliated with the IETF (although an attempt has been made and abandoned [PROTOCOL-BUFFERS]) ๐ซ .
Because the protobuf modeling syntax is a relatively low-level syntax (about the same as ASN.1 or CBOR), there are some efforts as part of the OpenConfig work [gNMI] to translate YANG modules into protobuf schemas. This is similar to translation to XML or JSON schemas for NETCONF and RESTCONF, respectively ๐. But there is no required interoperability between management via gRPC or any of the *CONF protocols ๐คทโโ๏ธ.
5.3.2. gRPC Protocol and Transport
The message encoding and exchange for gNMI, as the name implies, is the gRPC protocol [gRPC] ๐ฌ. gRPC exclusively uses HTTP/2 [RFC9113] for transport, and it relies on some aspects specific to HTTP/2 for its operations (such as HTTP trailer fields) ๐งฉ. While not mandated by gRPC, when used to transport gNMI data, TLS is required for transport security ๐.
5.4. Intelligent Platform Management Interface (IPMI)
A lower-level remote management protocol, intended to manage hardware devices and network appliances below the operating system (OS), is the Intelligent Platform Management Interface (IPMI), standardized in [IPMI] ๐ง. The IPMI is focused on health monitoring, event logging, firmware management, and Serial over LAN (SOL) remote console access in a "pre-OS or OS-absent" host environment ๐ฅ๏ธ. The IPMI operates over a companion Remote Management Control Protocol (RMCP) for messaging, which itself can use UDP for transport ๐ก.
Because the IPMI and RCMP are tailored to low-level and well-connected devices within a data center, with typical workflows requiring many messaging round trips or low-latency interactive sessions, they are not suitable for operation over a challenged network ๐ข. Not for the chaotic network life ๐ โโ๏ธ.
5.5. Autonomic Networking
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" [RFC7575]. Main character energy for networks ๐.
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 [RFC8993].
This work, focused on learning the behavior of distributed systems to predict future events, is an emerging network management capability ๐ฎ. It includes the development of signaling protocols such as the GeneRic Autonomic Signaling Protocol (GRASP) [RFC8990] and the Autonomic Control Plane (ACP) [RFC8368] ๐.
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 ๐ฅฒ.
There is some emerging work in ANIMA as to how disconnected devices might join and leave the ACP over time. However, this work is addressing a different problem than that encountered by challenged networks ๐งฉ.
5.6. Deep Space Autonomy ๐
okay so outside of the terrestrial networking crowd, there are already established remote management systems used for deep space mission operations ๐ two examples are the New Horizons mission to Pluto [NEW-HORIZONS] and the Double Asteroid Redirection Test (DART) mission to the asteroid Dimorphos [DART]. literally main character missions โจ
the DTNMA has some heritage in the concepts of deep space autonomy, but each of those mission instantiations uses mission-specific data encoding, messaging, and transport, as well as mission-specific (or heavily mission-tailored) modeling concepts and languages. part of the goal of the DTNMA is to take the proven concepts from these missions and standardize a messaging syntax as well as a modular data modeling method ๐
6. Motivation for New Features ๐
management mechanisms that provide the complete set of DTNMA desirable properties do not currently exist. not surprising tbh, since autonomous management in the context of a challenged networking environment is a brand new use case ๐
in particular, a management architecture is needed that integrates the following motivating features.
- 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.
- Standard Autonomy Model: An autonomy model that allows for standard expressions of policy to guarantee deterministic behavior across devices and vendor implementations.
- Compressible Model Structure: A data model that allows for very compact encodings by defining and exploiting common structures for data schemas.
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 ๐ฆ
7. Reference Model ๐งฉ
this section describes a reference model for analyzing network management concepts for challenged networks (generally) and those conforming to the DTN architecture (in particular). the goal here is to show how DTNMA services provide DTNMA desirable properties ๐
7.1. Important Concepts
like 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 ๐
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 ๐ซถ
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.
- 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.
- 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 ๐
- 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 datastores, 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. The use of Controls for the implementation of commands is discussed in more detail in Section 9.5.
7.2. Model Overview
a DTNMA reference model is provided in Figure 2 below. in this reference model, applications and services on a managing device communicate with a DM that 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 ๐
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 Datastores |
+---------------------------+
Figure 2: DTNMA Reference Model
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 preconfigure 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 reliable connection back to a DM ๐ง
7.3. Functional Elements
the reference model illustrated in Figure 2 implies the existence of certain logical components whose roles and responsibilities are discussed in this section ๐ฅ
7.3.1. Managed Applications and Services
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 ๐
7.3.2. DTNMA Agent (DA)
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 DM ๐ธ
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.
7.3.2.1. Monitoring and Control
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 ๐
Rule Database: Each DA maintains a database of policy expressions that form rules regarding the behavior of the managed device. Within this database, each rule regarding 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 rule database is the collection of active rules known to the DA.
Autonomy Engine: The DA autonomy engine monitors the state of the managed device, looking for predefined stimuli and, when such stimuli are encountered, issuing a predefined response. To the extent that this function is driven by the rule 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 rule 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 ๐ค
Application Control Interfaces: DAs 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, protocol, or OS ๐ ๏ธ
7.3.2.2. Data Fusion
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 of new collections of data used for reporting. The logical components responsible for these behaviors are as follows โจ
Application Data Interfaces: DAs 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, protocol, or OS.
Data Value Generators: 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.
Report Generators: DAs may, as appropriate, generate collections of data values and provide them to whatever local mechanism takes responsibility for their eventual transmission (or expiration and removal). 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 ๐
I'm going to need you to pause on the rewriting for a second, because the environment note above is telling me what to do with downloaded files and scripts, and it's not something I'd act on in this task. I'm not going to run any interpreter or build tool here, and I'm not going to touch the working directory. The RFC text you pasted is all I need to work from.
Back to the job: I've got part 7 of the RFC 9675 rewrite, picking up at section 7.3.2.3 (Administration) and going through 8.2 (Local Data Fusion). Here's the rewrite in the requested format.
7.3.2.3. Administration โจ
okay so DAs have a whole admin side to them ๐ and it's giving "I manage my own stuff, thank you very much" energy ๐ they do a bunch of admin services to keep their configuration on track, like these:
Manager Mapping ๐ฆ the DTNMA lets a many-to-many vibe happen between DAs and DMs. one DM can configure multiple DAs, and one DA can be configured by multiple DMs. why would you want multiple managers? literally two reasons ๐ first, different managers can exist to control different applications on the same device. second, having multiple managers makes it more likely that an agent actually runs into a manager when it's operating in a sparse or challenged environment ๐ธ
ngl multiple managers are needed for things to work in a network that gets dynamically partitioned, BUT conflicting info can come from different managers ๐ญ so implementations of the DTNMA should consider conflict resolution mechanisms ๐ฅ stuff like analyzing managed content, time, agent location, or other relevant info to pick one manager's input over the others ๐
Data Verifiers ๐ DAs might handle a LOT of data from different sources: local managed applications, remote managers, and values they calculate themselves ๐ง DAs should check, when possible, that externally generated data values have the proper syntax and semantic constraints (like data type and ranges) and any required authorization โจ
Access Controllers ๐ซถ DAs support authorized access to the management of individual applications, and that includes the admin management of the agent itself. so a manager can only set policy on the agent after verifying that it's authorized to do so ๐ no vibes-based access here, bestie ๐
7.3.3. Managing Applications and Services ๐
managing applications and services live on a managing device, and they're the source of DA policy statements AND the target of DA reporting ๐ฆ they may operate with or without an operator in the loop ๐
here's the twist: unlike management apps in unchallenged networks, these apps cannot exert closed-loop control over any managed device application ๐ญ instead they do open-loop control by producing policies that get configured and enforced on managed devices by DAs โจ
NOTE: closed-loop control here means waiting for a response from a managed device before issuing new commands to that device ๐ those "loops" can close quickly (in milliseconds) or over way longer stretches (hours, days, years) ๐ the alternative is open-loop control, where issuing new commands doesn't depend on getting responses to earlier commands ๐ธ also, there might not be a one-to-one mapping between commands and responses. a DA may, for example, produce a single response that represents the end state of applying multiple commands ๐ง
7.3.4. DTNMA Manager (DM) ๐
a DM lives on a managing device ๐ it's the interface between various managing applications and services and the DAs that enforce their policies ๐ to do that, DMs translate between whatever innate interface exists for the managing applications and the autonomy models used to encode management policy ๐ฅ
the DM performs three major functions on a managing device: policy encoding, reporting, and administration โจ
7.3.4.1. Policy Encoding ๐ฆ
DMs translate policy directives from managing applications and services into standardized policy expressions that DAs can recognize ๐ these logical components do the policy encoding ๐ธ
Application Control Interfaces ๐ DMs support control interfaces for managing applications, and these are how they receive desired policy statements from apps ๐ง the interfaces may be custom for each application or come through a common framework, protocol, or OS ๐
Policy Encoders ๐ DAs implement a standardized autonomy model made of standardized data elements, which lets the open-loop control structures from managing apps be represented in a common language ๐ซถ policy encoders are the ones doing this encoding ๐ฅ
Policy Aggregators โจ DMs collect multiple encoded policies into messages that can be sent to DAs over the network ๐ this implies proper addressing of agents and creating 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 ๐ฆ
7.3.4.2. Reporting ๐
DMs receive reports on the status of managed devices during periods of connectivity with the DAs on those devices ๐ธ these logical components are needed to get reporting working on a DM ๐
Report Collectors ๐ง DMs receive reports from DAs asynchronously ๐ญ that means reports can arrive out of chronological order, and sometimes it's hard or impossible to link a report to a specific policy from a managing application ๐ DMs collect these reports and extract their data to support later data analytics โจ
Data Analyzers ๐ DMs review sets of data reports from DAs to pull out the relevant data they want to share with managing applications ๐ซถ this can be simple data extraction, or something fancier like data conversion, data fusion, and proper data analytics ๐ฅ
Application Data Interfaces ๐ DMs support mechanisms for sending data retrieved from DAs back to managing devices ๐ these interfaces may be custom for each application or come through a common framework, protocol, or OS ๐ฆ
7.3.4.3. Administration ๐
DMs in the DTNMA do a bunch of administrative services too, like these:
Agent Mappings ๐ the DTNMA lets DMs communicate with multiple DAs ๐ but not every agent in a network is expected to support the same set of application data models or have the same managed applications running ๐ so DMs figure out individual DA capabilities to make sure only appropriate Controls get sent to each DA ๐ธ
Data Verifiers ๐ง DMs handle large amounts of data from various sources, including managing applications and DAs ๐ DMs should check, when possible, that data values received from DAs over a network have the proper syntax and semantic constraints (e.g., data type and ranges) and any required authorization ๐ซถ
Access Controllers ๐ฅ DMs should only send Controls to DAs when the manager is configured with appropriate access to both the agent and the applications being managed ๐ no access, no Controls, periodt ๐
7.3.5. Pre-Shared Definitions โจ
a consequence of operating in a challenged environment is that you might not be able to negotiate info in real time ๐ญ so the DTNMA requires that managed and managing devices operate using pre-shared definitions instead of relying on data definition negotiation ๐
there are three types of pre-shared definitions in the DTNMA: the DA autonomy model, managed application data models, and any runtime data shared by managers and agents ๐ฆ
Autonomy Model ๐ a DTNMA autonomy model represents the data elements and associated autonomy structures that define how the agent autonomy engine behaves ๐ธ a standardized autonomy model lets individual DA and DM implementations interoperate ๐ it also gives guidance to designing and implementing both managed and managing applications ๐ง
Application Data Models ๐ like other network management architectures, the DTNMA assumes managed applications (and services) define their own data models ๐ซถ these include the data the application produces and the Controls it implements ๐ฅ these models are expected to be static for each application, and standardized for applications that implement standard protocols ๐
Runtime Datastores ๐ runtime datastores, by definition, include data that's defined at runtime ๐ฆ so that data isn't pre-shared before DMs and DAs get deployed ๐ "pre-sharing" here means DMs and DAs can define and synchronize data elements before they're used operationally in the system ๐ธ that synchronization happens during periods of connectivity between DMs and DAs ๐
8. Desired Services ๐
this section describes the services DTNMA components provide on both managing and managed devices ๐ง most of the services here try to keep a managed device running continuously through periods with no connectivity to a managing device ๐
8.1. Local Monitoring and Control ๐ฆ
DTNMA monitoring is tied to some DA autonomy engine ๐ the term "monitoring" implies regular access to information, so that state changes can be acted on within some response time period ๐ธ
predicate autonomy on a managed device should collect device state at regular intervals and evaluate that state for changes that need a preventative or corrective action ๐ monitoring like this may also cause the device to generate one or more reports destined for a managing device ๐ง
like monitoring, DTNMA control results in the agent taking actions to change the state or behavior of the managed device ๐ all control in the DTNMA is local control ๐ซถ when there's a timely connection to a DM, received Controls still get evaluated and run locally as part of local autonomy ๐ฅ in that case the autonomy stimulus is receiving the Control, and the response is to run the Control immediately ๐ so there is never a dependency on a session or other stateful exchange with any remote entity ๐
8.2. Local Data Fusion ๐
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 ๐
fusion is a big deal in the DTNMA because fusion products are part of the overall state of a managed device ๐ธ complete knowledge of that overall state matters for managing the device, and the predicates of rules on a DA may refer to fused data ๐
in situ data fusion is important because it allows building intermediate summary data, reducing stored and transmitted raw data, and possibly needing fewer predicates in rule definitions ๐ง this type of data fusion also insulates the data source from conclusions drawn from that data ๐
the DTNMA requires fusion to occur on the managed device itself ๐ซถ if the network is partitioned so that no connection to a managing device is available, then fusion needs to happen locally ๐ฅ similarly, connections to a managing device might not stay active long enough for round-trip data exchange, or might not have the bandwidth to send all sampled data ๐
NOTE: the DTNMA does not restrict storing and transmitting raw (pre-fused) data ๐ raw data can be really useful for debugging managed devices, understanding complex interactions and underlying conditions, and tuning for better performance and/or better outcomes ๐ฆ
8.3. Remote Configuration โจ
okay so DTNMA configuration services update the local configuration of a managed device to change how that device behaves and what it can do ๐ ๐
the really iconic part is that the choice of which configuration gets used depends on the device's own state ๐ซถ so management proxies on the device store several configuration functions and can apply whichever one fits without asking a managing device first ๐ง
this is different from the usual management vibe where you just pick from multiple datastores ๐ DTNMA configuration functions can target individual data elements and can even calculate new values from local device state ๐ฅ
when the agent autonomy engine is detecting stimuli, it can check whether application monitoring data or runtime data values are recent enough to mean something actually changed ๐ if the data hasn't been updated in a while, it may be considered stale, and then it shouldn't be trusted to reliably show that a stimulus happened ๐ญ
8.4. Remote Reporting ๐ธ
DTNMA reporting services gather information the managed device knows about and get it ready to send to one or more managing devices ๐ what goes into these reports, and how often they're made, depends on the device's state, not on the managing device ๐ฆ
once a report is made, it's expected that it might get queued up while it waits for a connection back to a managing device ๐ฆ so reports need to be tellable apart based on when they were generated โฐ
NOTE: when reports are queued up waiting to be sent, the overall storage capacity of the queuing device needs to be considered ๐ a queued report might be considered expired if it's been waiting too long or if a newer report has replaced it ๐ when a report counts as expired, it may be considered for removal, which means it might never get sent ๐ deciding this is expected to be part of the queuing device's implementation, not the job of the reporting function inside the DTNMA ๐ซถ
when reports go to a managing device over a challenged network, they can show up out of order ๐ that can happen because they took different paths or got delayed by retransmissions ๐ญ a managing device should not infer meaning from the order the reports arrive in ๐
reports may or may not be tied to a specific Control โจ some reports get annotated with the Control that caused them to be generated ๐ and sometimes a single report represents the end state after applying multiple Controls ๐
8.5. Authorization ๐
both local and remote services provided by the DTNMA can affect how multiple applications on a managed device behave, and they may talk to multiple managing devices ๐ฆ
authorization services enforce the potentially complicated mapping of other DTNMA services between managed and managing devices in the network ๐ง for example, fine-grained access control can decide which managing devices get which reports, and which Controls can be used to change which managed applications ๐
this is especially useful in networks that 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 โจ
9. Logical Autonomy Model ๐ง
an important thing about the DTNMA is how the role of a managing device shifts ๐ one way to describe how the agent autonomy engine behaves is to describe the characteristics of the autonomy model it implements ๐ซถ
this section describes a logical autonomy model in terms of the abstract data elements that would make it up ๐ defining abstract data elements lets us talk about how an autonomy model behaves without forcing a particular design, encoding, or transport onto it ๐ฆ
9.1. Overview ๐
a managing autonomy capability on a potentially disconnected device needs to behave in both an expressive and deterministic way ๐ expressivity lets the model be set up for a wide range of future situations โจ determinism lets people reconstruct device behavior after the fact for debugging or recovery ๐ it's also necessary to make behavior predictable ๐
NOTE: using predicate logic and a stimulus-response system doesn't conflict with higher-level autonomous functions or with using Machine Learning (ML) ๐ค specifically, the DTNMA deterministic autonomy model can coexist with other autonomous functions that manage applications and network services ๐ธ an example of this coexisting is using the DTNMA model to make sure a device stays within safe operating parameters, while a less deterministic ML model steers other behaviors for the device ๐ก๏ธ
the DTNMA autonomy model is a rule-based model where each rule links a pre-identified stimulus to a preconfigured response to that stimulus ๐
stimuli are identified using one or more predicate logic expressions that examine aspects of the managed device's state ๐ฅ responses are carried out by running one or more procedures on the managed device ๐ง
in its simplest form, a stimulus is a single predicate expression about a condition that examines some aspect of the managed device's state ๐ซถ when the condition is met, a predetermined response is applied ๐ this behavior can be captured using the construct:
IF <condition 1> THEN <response 1>
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 isn't met, evaluating the specific condition of each rule that shares it can be skipped ๐ฆ that way, the total number of predicate evaluations can go down ๐ this behavior can be captured using the construct:
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>
NOTE: the DTNMA model stays a stimulus-response system whether or not a common condition is part of the stimulus ๐ however, it is recommended that implementations incorporate a common condition because of the efficiency that bulk evaluation provides โจ NOTE: one use of a stimulus "common condition" is to tie the condition to an onboard event, like a timer expiring or a monitored value changing โฐ
the DTNMA does not prescribe when rule stimuli get evaluated ๐คทโโ๏ธ implementations may choose to evaluate them at periodic intervals (such as 1 Hz or 100 Hz) ๐ when stimuli include onboard events, implementations may choose to do an immediate evaluation at the time of the event instead of waiting for a periodic one โก
the flow of data into and out of the agent autonomy engine is shown in Figure 3 ๐บ๏ธ
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
| |
Figure 3: DTNMA Autonomy Model
in the model shown in Figure 3, the autonomy engine stores the combination of stimulus conditions and their associated responses as a set of "rules" in a rule database ๐ this database gets updated through the execution of the autonomy engine, and also as configured from policy statements received by DMs ๐ซถ
stimuli are detected by examining the state of applications as reported through application monitoring interfaces, plus any locally derived data ๐ local data gets calculated according to definitions that DMs also provide as part of the runtime datastore ๐งฎ
responses to stimuli may include updates to the rule database, updates to the runtime datastore, Controls sent to applications, and the generation of reports ๐
9.2. Model Characteristics ๐
Okay bestie, a distributed rule-based system is so fun but also kinda chaotic ๐ญ There are a few practical challenges. Large numbers of rules can be hard to understand, deconflict, and debug. Rules whose conditions come from fused or other dynamic data may need data logging and reporting so you can do deterministic offline analysis. And if the rules differ across managed devices, you can get oscillating effects ๐ This section lists the characteristics of an autonomy model that might help implementations handle some of that drama โจ
There are tons of ways to represent data values, and loads of data modeling languages for it ๐ธ When you model data for the DTNMA autonomy model, there are some modeling features that should be present so everything actually works. There are also some features that should be prevented so nothing gets ambiguous ๐
Traditional network management usually goes for flexibility in its data models. The DTNMA is all about deterministic behavior, though, so you can do forensic analysis of what the agents did "after the fact" ๐ Because of that, the following statements should be true of all data representations related to DTNMA autonomy:
- Strong Typing: The predicates and expressions that make up the autonomy services in the DTNMA should require strict data typing. This avoids errors caused by implicit data conversions and helps catch misconfigurations ๐
- Acyclic Dependency: Autonomy models have a lot of dependencies, especially when you combine individual expressions or results to build complex behaviors. Implementations that conform to the DTNMA need to prevent circular dependencies ๐
- Fresh Data: Autonomy models that work on data values assume their inputs represent the actionable state of the managed device. If a data value hasn't been refreshed within a time period, autonomy might wrongly infer an operational state ๐ฌ So no matter whether a data value has changed, DTNMA implementations should provide some indicator of whether the value is "fresh", meaning it still represents the current state of the device ๐
- Pervasive Parameterization: Where possible, autonomy model objects should support parameterization so the specification stays flexible ๐ฆ That means you can define fewer unique model objects, and it also lets you swap in local device state when you're doing device control or data reporting ๐ง
- Configurable Cardinality: The number of data values an implementation can support is finite ๐ Devices in challenged environments may support far fewer objects than devices in well-resourced environments. So DTNMA implementations should define limits on how many supported objects can be active in a system at one time, based on the resources the implementation has ๐
- Control-Based Updates: The agent autonomy engine changes the state of the managed device by running Controls on it. This is different from approaches where a device's behavior is influenced by updating configuration values in a table or datastore ๐ Changing behavior through one or more Controls lets you check all preconditions before making changes, and gives you more granularity in how the device gets updated โจ When it's necessary, Controls can be defined to do bulk updates of configuration data, so that update modality isn't lost ๐ One important update precondition is that the system isn't doing something that would block the update, like already applying a competing update ๐ซถ
9.3. Data Value Representation ๐
Representing simple data values well is a big deal, because it's the foundation for building and evaluating predicates in the DTNMA autonomy model ๐ When you define these values, there are some useful distinctions to keep in mind: how values get identified, and whether they're generated inside or outside the autonomy model ๐
A DTNMA data value should combine a base type (like integer, real, or string) with relevant semantic information ๐ธ Base types are used for proper storage and encoding. Semantic information covers extra typing, constraint definitions, and mnemonic naming ๐ง Put together, this fuller definition makes predicates easier to build, easier to evaluate, and lets you catch type problems early ๐ฅ
Data values can also be annotated based on whether the value comes from a DA calculation or from some external process on the managed device ๐ฆ For example, operators might want to know which values can be changed by actions on the DA, versus which values (like sensor readings) can't be reliably changed because they're calculated outside the DA ๐
9.4. Data Reporting ๐
The DTNMA autonomy model should, as required, report on the state of its managed device, and that includes the state of the model itself โจ This reporting should be done as a function of the changing state of the managed device, and it should be independent of the connection to any managing device ๐ฐ๏ธ Queuing reports lets you do forensic analysis of device behavior later, and that's a seriously desirable property for DTNMA management ๐
DTNMA data reporting means producing a data report instance that conforms to a data report schema ๐ Schemas let a report instance name the schema it follows, instead of carrying the whole structure inside the report itself. That approach can really shrink the size of generated reports ๐ชถ
The DTNMA data reporting concept is intentionally different from exchanging datastores across a network ๐ โโ๏ธ The idea is that a DA might generate a data report instance of a data report schema at regular intervals, or in response to local events ๐ That way you can define lots of report schemas, each capturing unique, relevant combinations of known data values, instead of shipping bulk datastores off-platform for analysis ๐ง
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.
9.5. Command Execution ๐น๏ธ
The agent autonomy engine needs managed devices to issue commands on themselves, as if a managing device were controlling them ๐ค The DTNMA handles this commanding through Controls and macros ๐
Controls are parameterized, predefined procedures that the DA runs, either because the DM directed it or as part of a rule response from the DA autonomy engine ๐ง Macros are ordered sequences of Controls ๐
Controls are kinda like RPCs, since both are parameterized functions run on the managed device ๐ซถ But they're also different, because Controls don't have a return code. That's because they operate over an asynchronous transport. The idea of a return code in an RPC assumes a synchronous relationship between the caller and the procedure being called, and that might not be possible within the DTNMA ๐
The agent autonomy engine can handle a Control's success or failure locally ๐ Local error handling matters a lot in this architecture, since a DA and a DM could be disconnected for long stretches ๐ A Control's failure is part of the DA's state, and it can be used to trigger rules inside the DA autonomy engine โก
The impact of a Control is observable from the outside, through the data reports the managed device generates and that someone eventually examines ๐
Some Control failures might leave a managed device in an undesirable state ๐ฌ So it's important to think about Control-specific recovery mechanisms, like a rollback or safing mechanism ๐ When a Control that's part of a macro (like one in an autonomy response) fails, there may be a need to put the managed device into a safe state, depending on what kind of failure it was ๐งฏ
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 undertaken to implement (or maintain) a commanded objective. The DA autonomy engine implements controls on a managed device to allow it to fulfill some commanded objective known by a (possibly disconnected) managing device. For example, a device might be commanded to maintain a safe internal thermal environment. Actions taken by a DA to manage heaters, louvers, and other temperature-affecting components are controls taken in service of that commanded objective.
9.6. Predicate Autonomy Rules ๐ง
As discussed in Section 9.1, the DTNMA rule-based stimulus-response system links stimulus detection to a predetermined response โก Rules can be sorted by whether (1) their stimuli include generic statements of managed device state, or (2) they're optimized to only look at the passage of time on the device โฐ
State-based rules are the ones whose stimulus is based on the evaluated state of the managed device ๐ Time-based rules are a special subset of state-based rules, where the stimulus comes only from a time-based event ๐ฐ๏ธ Implementations might create different structures and evaluation mechanisms for these two types of rules, so they process more efficiently on a platform ๐
10. Use Cases ๐
Using the autonomy model defined in Section 9, this section walks through flows across sample configurations that conform to the DTNMA ๐บ๏ธ These use cases show remote configuration, local monitoring and control, support for multiple DMs, and data fusion ๐ Let's gooo ๐
10.1. Notation
okay so before we get into the scenarios, we need the shorthand ๐ โจ this notation is how the use cases describe the types of data flying between managers and agents. it leans on the autonomy model parts from Section 9, so if that part felt like a lot, this is where it all clicks ๐ฆ
Table 1 is the cheat sheet. it's giving glossary energy ๐
+==============+=======================================+===========+
| Term | Definition | Example |
+==============+=======================================+===========+
| EDD# | Externally Defined Data -- a data | EDD1, |
| | value defined in a way that is | EDD2 |
| | external to the DA. | |
+--------------+---------------------------------------+-----------+
| V# | Variable -- a data value defined in a | V1 = EDD1 |
| | way that is internal to the DA. | + 7 |
+--------------+---------------------------------------+-----------+
| EXPR | Predicate expression -- used to | V1 > 5 |
| | define a rule stimulus. | |
+--------------+---------------------------------------+-----------+
| ID | DTNMA Object Identifier. | V1, EDD2 |
+--------------+---------------------------------------+-----------+
| ACL# | Enumerated Access Control List. | ACL1 |
+--------------+---------------------------------------+-----------+
| DEF(ACL, ID, | Define "ID" from expression. Allow | DEF(ACL1, |
| EXPR) | DMs in ACL to see this ID. | V1, EDD1 |
| | | + EDD2) |
+--------------+---------------------------------------+-----------+
| PROD(P, ID) | Produce "ID" according to predicate | PROD(1s, |
| | P. P may be a time period (1 second, | EDD1) |
| | or 1s) or an expression (EDD1 > 10). | |
+--------------+---------------------------------------+-----------+
| RPT(ID) | A report instance containing data | RPT(EDD1) |
| | named "ID". | |
+--------------+---------------------------------------+-----------+
Table 1: Terminology
these notations don't imply any implementation approach ๐ they just give us a succinct way to write out the data flows in the use case diagrams for the rest of this section ๐ธ
10.2. Serialized Management
this is the nominal setup ๐ one DM talking to multiple DAs, all at once. the control flow is in Figure 4 ๐
+-----------+ +---------+ +---------+
| 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)-------|
| | |
Figure 4: Serialized Management Control Flow
so in this one, DM A tells DAs A and B to report the value of an EDD (EDD1) every second (step 1) โฐ each DA gets the policy and sets up its autonomy engine for that production โจ then (step 2) each DA produces a report with EDD1 in it, and each report gets sent back to the DM ๐ซถ
and the best part? this keeps going without the DM having to say anything else ๐ญ๐
10.3. Intermittent Connectivity
this one builds on the nominal setup from Section 10.2 ๐ฆ it's a challenged network where the link between DA B and the DM temporarily drops out ๐ฅบ the control flow is in Figure 5 ๐
+-----------+ +---------+ +---------+
| 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)
| | |
Figure 5: Challenged Management Control Flow
in a challenged network, DAs store their reports until they get a chance to transmit ๐ฆโจ
so DM A tells DAs A and B to produce an EDD (EDD1) every second (step 1) ๐ each DA takes the policy and sets up its autonomy engine ๐ง reports get sent whenever there's connectivity between the DA and the DM (step 2) ๐
then DA B loses the ability to transmit on the network (steps 3 and 4) ๐ฑ but it keeps producing reports anyway, and they just pile up in a queue ๐ that queue might be run by the DA itself or by a supporting transport like BP ๐ eventually (and before the next scheduled EDD1 production) DA B can transmit again (step 5), and all the queued reports go out at once ๐ meanwhile DA A stays connected to the DM during steps 3-5 and keeps sending reports as they're generated ๐
10.4. Open-Loop Reporting
this scenario shows off the DTNMA open-loop control paradigm ๐ธ DAs manage themselves based on policies from DMs, and they send reports back to DMs based on those same policies ๐ซถ
the control flow in Figure 6 has an example of data fusion ๐ฅ multiple policies from a DM end up as a single report from a DA ๐ซ
+-----------+ +---------+ +---------+
| 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)----|
| | |
Figure 6: Consolidated Management Control Flow
a many-to-one mapping between management policy and device state reporting is supported by the DTNMA ๐ฆ
so in this figure, DM A sends a policy in the form of a rule to DAs A and B, telling them to produce a report for EDD1 every second (step 1) ๐ each DA stores that policy in its own rule database and configures its autonomy engine ๐ reports go out as soon as they're produced (step 2) โจ
later on, DM A sends another policy to DA B, asking it to produce a report for EDD2 every second (step 3) ๐ that policy gets added to DA B's rule database ๐
after that update, DA A keeps producing EDD1, and DA B produces both EDD1 and EDD2 (step 4) ๐ but here's the twist: DA B may bundle these values into a single report for the DM instead of sending two separate ones ๐ so there's no direct one-to-one link between the consolidated reports DA B sends (from step 4 onward) and the two policies it got (steps 1 and 3) that produced the info inside them ๐๐
10.5. Multiple Administrative Domains ๐ฐ
okay so a DA's managed apps can belong to different admin entities in the same network ๐ DTNMA handles this by letting DAs talk to multiple DMs, like when you've got one DM per admin domain. main character energy for the whole network ๐
Whenever a DM sends a policy expression to a DA, that expression can come with authorization info attached ๐ One way to write that down is an ACL.
Quick disclaimer, bestie: using an ACL in this example does NOT mean DTNMA needs ACLs on every policy expression ๐ โโ๏ธ ACLs and how they're shown here are just for example purposes.
Here's the big rule for this one: one DM can only see the results of another DM's policy expressions as far as the authorization tags on those policies allow ๐ซถ
Check out the multi-manager authorization example in Figure 7 ๐ฆ
+-----------+ +---------+ +-----------+
| 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 not permitted)--->|
| | |
|--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)------------>|
Figure 7: Multiplexed Management Control Flow
Multiple DMs can totally hang out with a single DA ๐ especially in complex networks where everything's going on at once โจ
So in this figure, DM A and DM B both send policies to DA A (step 1) ๐ DM A defines V1, whose value is the math expression (EDD1 * 2), and it's tagged with ACL1, which locks V1 down so only DM A gets in ๐ DM B does the same thing with V2, which is (EDD2 * 2), and ACL2 makes sure only DM B can see it ๐
Both DMs also send policies asking DA A to report their variables every 1 second (step 2) ๐ธ Since DM A can access V1 and DM B can access V2, nobody's breaking any rules here, so the autonomy engine on DA A accepts both policies ๐ซถ DA A produces the reports like it should and sends each one back to its own manager (step 3) โจ
Later on (step 4), DM B gets greedy and tries to make DA A report V1 to it too ๐ญ Since DM B isn't allowed to view V1, DA A leaves it out of the autonomy engine config, and instead, DM B gets some kind of permission error tucked into its regular reports ๐
Then DM A sends a policy to DA A (step 5) that defines V3 as (EDD3 * 3), and this one has NO ACL attached, which means literally any DM can access V3 ๐ So both DM A and DM B can send policies to report V3 (step 6). With no authorization restriction on V3, the autonomy engine on DA A accepts both policies, and both managers keep getting V3 reports over time (step 7) ๐ง
10.6. Cascading Management ๐
Sometimes one network device is a DM for other DAs and is ALSO a device that somebody else manages ๐คฏ That happens on gateways and proxies a lot. DTNMA covers this by letting one device run both a DA and a DM at the same time ๐ซถ
Check out Figure 8 for an example of this setup ๐
---------------------------------------
| Node B |
| |
+-----------+ | +-----------+ +---------+ | +---------+
| DTNMA | | | DTNMA | | DTNMA | | | DTNMA |
| Manager A | | | Manager B | | Agent B | | | Agent C |
+---+-------+ | +-----+-----+ +----+----+ | +----+----+
| | | | | |
|----------DEF(NULL, V0, EDD1 + EDD2)-->| | | (1)
|-------------PROD(1s, V0)------------->| | |
| | | | | |
| | |-PROD(1s, EDD1)-->| | | (2)
| | |--------------------PROD(1s, EDD2)-->| (2)
| | | | | |
| | | | | |
| | |<----RPT(EDD1)----| | | (3)
| | |<--------------------RPT(EDD2)-------| (3)
| | | | | |
|<-------------RPT(V0)------------------| | | (4)
| | | | | |
| | | | | |
| |
| |
---------------------------------------
Figure 8: Cascading Management Control Flow
A device can be a DM and a DA at once, no problem ๐
In this example, we're assuming DA B can sample one EDD (EDD1), and DA C can sample a different one (EDD2) โจ Node B has DM B (which controls DA C) and DA B (which DM A controls) living inside it ๐ And DM A needs to keep getting a fresh value that's calculated from BOTH EDD1 and EDD2 ๐ฅ
First, DM A tells DA B to define V0 as (EDD1 + EDD2) with no restricting ACL, and also tells DA B to report V0 every second (step 1) ๐
DA B needs to watch both EDD1 and EDD2 to make V0 ๐ธ It can sample EDD1 by itself, so DM B tells DA B to report EDD1 ๐ But the only way to get EDD2 values is for DA C to report them back to Node B so they end up in the Node B runtime datastores, so DM B also tells DA C to report EDD2 (step 2) ๐ฆ
DA B puts that policy in its autonomy engine and makes reports on EDD2 every second. DA C does the same thing with its own autonomy engine and reports on EDD2 every second too (step 3) โจ
DA B can also sample EDD1 and EDD2 locally, use them to work out V0, and report V0 to DM A at regular intervals (step 4) ๐
It's a pretty small example, but this is the point: putting fusion on the DA side instead of the DM side scales as the fusion gets more complicated ๐ง DAs and DMs don't have to be separate software in DTNMA either ๐ There could be one single app running on Node B that does both the DM B and DA B jobs ๐
11. IANA Considerations ๐ท
Nothing for IANA here, bestie. This document has no IANA actions ๐
12. Security Considerations ๐
Okay, security in a DTNMA happens in at least two layers ๐ญ There's security in the data model, and there's security in the messaging and encoding of that data model ๐ซถ
Data model security is about whether data elements are valid and who can access them ๐ For example, one data element might be visible to certain DAs or DMs, while other DAs or DMs can't see it at all ๐ Both verification and authorization at the DAs and DMs matter a lot for this layer ๐
NOTE: One way to get finer-grained application security is with ACLs, which would be defined as part of configuring DAs and DMs. Lots of common data model tools are expected to give you ways to define ACLs, plus best practices for using them day to day ๐ง
The exchange of information between DAs and DMs in the DTNMA is expected to go through some secured messaging transport ๐โจ
13. Informative References ๐
Here are the informative references, bestie ๐
[ASN.1] ITU-T, "Information technology - Abstract Syntax Notation
One (ASN.1): Specification of basic notation", ITU-T
Recommendation X.680, ISO/IEC 8824-1:2021, February 2021,
<https://www.itu.int/rec/T-REC-X.680>.
[CORE-COMI]
Veillette, M., Ed., van der Stok, P., Ed., Pelov, A., Ed.,
Bierman, A., and C. Bormann, Ed., "CoAP Management
Interface (CORECONF)", Work in Progress, Internet-Draft,
draft-ietf-core-comi-19, 3 November 2024,
<https://datatracker.ietf.org/doc/html/draft-ietf-core-
comi-19>.
[DART] Tropf, B. T., Haque, M., Behrooz, N., and C. Krupiarz,
"The DART Autonomy System", DOI 10.1109/SMC-
IT56444.2023.00020, August 2023,
<https://ieeexplore.ieee.org/abstract/document/10207457>.
[gNMI] Borman, P., Hines, M., Lebsack, C., Morrow, C., Shaikh,
A., Shakir, R., Li, W., and D. Loher, "gRPC Network
Management Interface (gNMI)", Version 10.0, May 2023,
<https://www.openconfig.net/docs/gnmi/gnmi-
specification/>.
[gRPC] gRPC Authors, "gRPC Documentation", 2024,
<https://grpc.io/docs/>.
[IPMI] Intel, Hewlett-Packard, NEC, and Dell, "Intelligent
Platform Management Interface Specification, Second
Generation", Version 2.0, October 2013,
<https://www.intel.la/content/dam/www/public/us/en/
documents/specification-updates/ipmi-intelligent-platform-
mgt-interface-spec-2nd-gen-v2-0-spec-update.pdf>.
[NEW-HORIZONS]
Moore, R. C., "Autonomous safeing and fault protection for
the New Horizons mission to Pluto", Acta Astronautica,
Volume 61, Issues 1-6, June-August 2007, Pages 398-405,
DOI 10.1016/j.actaastro.2007.01.009, August 2007,
<https://www.sciencedirect.com/science/article/pii/
S0094576507000604>.
I can't do this one as written. You've asked for the final part of RFC 9675, and the text you pasted is just the References section. Your message doesn't include the rest of the document, and I don't have it in this environment. It's not in the working directory either, and I'm not going to fetch it from outside sources since that's not something you asked me to do. I also don't want to make up the missing sections, because the rules for this rewrite say every fact, section number and requirement has to match the original exactly, and guessing would break that.
Here are a few ways we can move forward:
- Paste the remaining text. If you send the final part, or the earlier parts you have, I can rewrite the sections in the requested voice. I'll continue from 13. Informative References and keep the reference list complete.
- Start from the References alone. I can rewrite the Informative References and Acknowledgements/Authors' Addresses blocks you've pasted, keeping every citation, DOI and URL exactly as written.
- Get the source text into this folder. If you save the RFC as a file, I can read it from there and work through it in order.
Which one works best for you? ๐
๐ฆ where this page comes from
- ietf: rfc9675 2024-11
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms