diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8993.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8993.txt')
-rw-r--r-- | doc/rfc/rfc8993.txt | 1403 |
1 files changed, 1403 insertions, 0 deletions
diff --git a/doc/rfc/rfc8993.txt b/doc/rfc/rfc8993.txt new file mode 100644 index 0000000..8a36453 --- /dev/null +++ b/doc/rfc/rfc8993.txt @@ -0,0 +1,1403 @@ + + + + +Internet Engineering Task Force (IETF) M. Behringer, Ed. +Request for Comments: 8993 +Category: Informational B. Carpenter +ISSN: 2070-1721 Univ. of Auckland + T. Eckert + Futurewei USA + L. Ciavaglia + Nokia + J. Nobre + UFRGS + May 2021 + + + A Reference Model for Autonomic Networking + +Abstract + + This document describes a reference model for Autonomic Networking + for managed networks. It defines the behavior of an autonomic node, + how the various elements in an autonomic context work together, and + how autonomic services can use the infrastructure. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Not all documents + approved by the IESG are candidates for any level of Internet + Standard; see Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc8993. + +Copyright Notice + + Copyright (c) 2021 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) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + +Table of Contents + + 1. Introduction + 2. Network View + 3. Autonomic Network Element + 3.1. Architecture + 3.2. Adjacency Table + 3.3. State Machine + 3.3.1. State 1: Factory Default + 3.3.2. State 2: Enrolled + 3.3.3. State 3: In ACP + 4. Autonomic Networking Infrastructure + 4.1. Naming + 4.2. Addressing + 4.3. Discovery + 4.4. Signaling between Autonomic Nodes + 4.5. Routing + 4.6. Autonomic Control Plane + 4.7. Information Distribution (*) + 5. Security and Trust Infrastructure + 5.1. Public Key Infrastructure + 5.2. Domain Certificate + 5.3. MASA + 5.4. Subdomains (*) + 5.5. Cross-Domain Functionality (*) + 6. Autonomic Service Agents (ASAs) + 6.1. General Description of an ASA + 6.2. ASA Life-Cycle Management + 6.3. Specific ASAs for the Autonomic Networking Infrastructure + 6.3.1. Enrollment ASAs + 6.3.2. ACP ASA + 6.3.3. Information Distribution ASA (*) + 7. Management and Programmability + 7.1. Managing a (Partially) Autonomic Network + 7.2. Intent (*) + 7.3. Aggregated Reporting (*) + 7.4. Feedback Loops to NOC (*) + 7.5. Control Loops (*) + 7.6. APIs (*) + 7.7. Data Model (*) + 8. Coordination between Autonomic Functions (*) + 8.1. Coordination Problem (*) + 8.2. Coordination Functional Block (*) + 9. Security Considerations + 9.1. Protection against Outsider Attacks + 9.2. Risk of Insider Attacks + 10. IANA Considerations + 11. References + 11.1. Normative References + 11.2. Informative References + Acknowledgements + Contributors + Authors' Addresses + +1. Introduction + + The document "Autonomic Networking: Definitions and Design Goals" + [RFC7575] explains the fundamental concepts behind Autonomic + Networking and defines the relevant terms in this space and a high- + level reference model. [RFC7576] provides a gap analysis between + traditional and autonomic approaches. + + This document defines this reference model with more detail to allow + for functional and protocol specifications to be developed in an + architecturally consistent, non-overlapping manner. + + As discussed in [RFC7575], the goal of this work is not to focus + exclusively on fully autonomic nodes or networks. In reality, most + networks will run with some autonomic functions, while the rest of + the network is traditionally managed. This reference model allows + for this hybrid approach. + + For example, it is possible in an existing, non-autonomic network to + enroll devices in a traditional way to bring up a trust + infrastructure with certificates. This trust infrastructure could + then be used to automatically bring up an Autonomic Control Plane + (ACP) and run traditional network operations over the secure and + self-healing ACP. See [RFC8368] for a description of this use case. + + The scope of this model is therefore limited to networks that are to + some extent managed by skilled human operators, loosely referred to + as "professionally managed" networks. Unmanaged networks raise + additional security and trust issues that this model does not cover. + + This document describes the first phase of an Autonomic Networking + solution that is both simple and implementable. It is expected that + the experience from this phase will be used in defining updated and + extended specifications over time. Some topics are considered + architecturally in this document but are not yet reflected in the + implementation specifications. They are marked with an (*). + +2. Network View + + This section describes the various elements in a network with + autonomic functions and explains how these entities work together on + a high level. Subsequent sections explain the detailed inside view + for each of the Autonomic Network elements, as well as the network + functions (or interfaces) between those elements. + + Figure 1 shows the high-level view of an Autonomic Network. It + consists of a number of autonomic nodes, which interact directly with + each other. Those autonomic nodes provide a common set of + capabilities across the network, called the "Autonomic Networking + Infrastructure (ANI)". The ANI provides functions like naming, + addressing, negotiation, synchronization, discovery, and messaging. + + Autonomic functions typically span several, possibly all, nodes in + the network. The atomic entities of an autonomic function are called + the "Autonomic Service Agents (ASAs)", which are instantiated on + nodes. + + +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + : : Autonomic Function 1 : : + : ASA 1 : ASA 1 : ASA 1 : ASA 1 : + +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + : : : + : +- - - - - - - - - - - - - - + : + : : Autonomic Function 2 : : + : : ASA 2 : ASA 2 : : + : +- - - - - - - - - - - - - - + : + : : : + +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + : Autonomic Networking Infrastructure : + +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +--------+ : +--------+ : +--------+ : +--------+ + | Node 1 |--------| Node 2 |--------| Node 3 |----...-----| Node n | + +--------+ : +--------+ : +--------+ : +--------+ + + Figure 1: High-Level View of an Autonomic Network + + In a horizontal view, autonomic functions span across the network, as + well as the ANI. In a vertical view, a node always implements the + ANI, plus it may have one or several ASAs. ASAs may be standalone or + use other ASAs in a hierarchical way. + + Therefore, the ANI is the foundation for autonomic functions. + +3. Autonomic Network Element + + This section explains the general architecture of an Autonomic + Network element (Section 3.1), how it tracks its surrounding + environment in an adjacency table (Section 3.2), and the state + machine that defines the behavior of the network element + (Section 3.3), based on that adjacency table. + +3.1. Architecture + + This section describes an Autonomic Network element and its internal + architecture. The reference model explained in the document + "Autonomic Networking: Definitions and Design Goals" [RFC7575] shows + the sources of information that an ASA can leverage: self-knowledge, + network knowledge (through discovery), Intent (see Section 7.2), and + feedback loops. There are two levels inside an autonomic node: the + level of ASAs and the level of the ANI, with the former using the + services of the latter. Figure 2 illustrates this concept. + + +------------------------------------------------------------+ + | | + | +-----------+ +------------+ +------------+ | + | | Autonomic | | Autonomic | | Autonomic | | + | | Service | | Service | | Service | | + | | Agent 1 | | Agent 2 | | Agent 3 | | + | +-----------+ +------------+ +------------+ | + | ^ ^ ^ | + | - - | - - API level - -| - - - - - - - |- - - | + | V V V | + |------------------------------------------------------------| + | Autonomic Networking Infrastructure | + | - Data structures (ex: certificates, peer information) | + | - Generalized Autonomic Control Plane (GACP) | + | - Autonomic node addressing and naming | + | - Discovery, negotiation and synchronization functions | + | - Distribution of Intent and other information | + | - Aggregated reporting and feedback loops | + | - Routing | + |------------------------------------------------------------| + | Basic Operating System Functions | + +------------------------------------------------------------+ + + Figure 2: Model of an Autonomic Node + + The ANI (lower part of Figure 2) contains node-specific data + structures (for example, trust information about itself and its + peers) as well as a generic set of functions, independent of a + particular usage. This infrastructure should be generic and support + a variety of ASAs (upper part of Figure 2). It contains addressing + and naming of autonomic nodes, discovery, negotiation and + synchronization functions, distribution of information, reporting, + feedback loops, and routing inside the ACP. + + The Generalized ACP (GACP) is the summary of all interactions of the + ANI with other nodes and services. A specific implementation of the + GACP is referred to here as the ACP and described in [RFC8994]. + + The use cases of "Autonomics" (such as self-management, self- + optimization, etc.) are implemented as ASAs. They use the services + and data structures of the underlying ANI, which should be self- + managing. + + The Basic Operating System Functions (lower part of Figure 2) include + the normal OS (e.g., the network stack and security functions). + + Full Autonomic Network (AN) nodes have the full ANI, with the full + functionality described in this document. At a later stage, the + ANIMA Working Group may define a scope for constrained nodes with a + reduced ANI and well-defined minimal functionality. These are + currently out of scope. + +3.2. Adjacency Table + + Autonomic Networking is based on direct interactions between devices + of a domain. The ACP is normally constructed on a hop-by-hop basis. + Therefore, many interactions in the ANI are based on the ANI + adjacency table. There are interactions that provide input into the + adjacency table and other interactions that leverage the information + contained in it. + + The ANI adjacency table contains, at a minimum, information about + adjacent autonomic nodes: Node-ID, IP address in data plane, IP + address in ACP, domain, and certificate. An autonomic node maintains + this adjacency table up to date. The adjacency table only contains + information about other nodes that are capable of Autonomic + Networking; non-autonomic nodes are normally not tracked here. + However, the information is tracked independently of the status of + the peer nodes; specifically, the adjacency table contains + information about non-enrolled nodes of the same and other domains. + The adjacency table may contain information about the validity and + trust level of the adjacent autonomic nodes. + + The adjacency table is fed by the following inputs: + + * Link-local discovery: This interaction happens in the data plane, + using IPv6 link-local addressing only, because this addressing + type is itself autonomic. This way the node learns about all + autonomic nodes around itself. The related Standards Track + documents ([RFC8990], [RFC8995], and [RFC8994]) describe in detail + how link-local discovery is used. + + * Vendor redirect: A new device may receive information on where its + home network is through a vendor-based Manufacturer Authorized + Signing Authority (MASA) (see Section 5.3) redirect; this is + typically a routable address. + + * Non-autonomic input: A node may be configured manually with an + autonomic peer; it could learn about autonomic nodes through DHCP + options, DNS, and other non-autonomic mechanisms. Generally, such + non-autonomic mechanisms require some administrator intervention. + The key purpose is to bypass a non-autonomic device or network. + As this pertains to new devices, it is covered in Appendices A and + B of [RFC8995]. + + The adjacency table defines the behavior of an autonomic node: + + * If the node has not bootstrapped into a domain (i.e., doesn't have + a domain certificate), it rotates through all nodes in the + adjacency table that claim to have a domain and will attempt + bootstrapping through them, one by one. One possible response is + a redirect via a vendor MASA, which will be entered into the + adjacency table (see second bullet above). See [RFC8995] for + details. + + * If the adjacent node has the same domain, it will authenticate + that adjacent node and, if successful, establish the ACP. See + [RFC8994]. + + * Once the node is part of the ACP of a domain, it will use GRASP + [RFC8990] to find the registrar(s) of its domain and potentially + other services. + + * If the node is part of an ACP and has discovered at least one + registrar in its domain via GRASP, it will start the join proxy + ASA and act as a join proxy for neighboring nodes that need to be + bootstrapped. See Section 6.3.1.2 for details. + + * Other behaviors are possible, for example, establishing the ACP + with devices of a subdomain or other domains. These will likely + be controlled by Intent and are outside the scope of this + document. Note that Intent is distributed through the ACP; + therefore, a node can only adapt Intent-driven behavior once it + has joined the ACP. At the moment, the ANIMA Working Group does + not consider providing Intent outside the ACP; this can be + considered later. + + Once a node has joined the ACP, it will also learn the ACP addresses + of its adjacent nodes and add them to the adjacency table to allow + for communication inside the ACP. Further autonomic domain + interactions will now happen inside the ACP. At this moment, only + negotiation and synchronization via GRASP [RFC8990] are defined. + (Note that GRASP runs in the data plane, as an input in building the + adjacency table, as well as inside the ACP.) + + Autonomic functions consist of ASAs. They run logically above the + ANI and may use the adjacency table, the ACP, negotiation and + synchronization through GRASP in the ACP, Intent, and other functions + of the ANI. Since the ANI only provides autonomic interactions + within a domain, autonomic functions can also use any other context + on a node, specifically the global data plane. + +3.3. State Machine + + Autonomic Networking applies during the full life cycle of a node. + This section describes a state machine of an autonomic node + throughout its life. + + A device is normally expected to store its domain-specific identity, + the Local Device Identifier (LDevID) (see Section 5.2), in persistent + storage to be available after a power-cycle event. For device types + that cannot store the LDevID in persistent storage, a power-cycle + event is effectively equivalent to a factory reset. + +3.3.1. State 1: Factory Default + + An autonomic node leaves the factory in this state. In this state, + the node has no domain-specific configuration, specifically no + LDevID, and could be used in any particular target network. It does, + however, have a vendor/manufacturer-specific ID, the Initial Device + Identifier (IDevID) [IDevID]. Nodes without IDevID cannot be + autonomically and securely enrolled into a domain; they require + manual pre-staging, in which case the pre-staging takes them directly + to state 2. + + Transitions: + + * Bootstrap event: The device enrolls into a domain; as part of this + process it receives a domain identity (LDevID). If enrollment is + successful, the next state is state 2. See [RFC8995] for details + on enrollment. + + * Power-cycle event: The device loses all state tables. It remains + in state 1. + +3.3.2. State 2: Enrolled + + An autonomic node is in the "enrolled" state if it has a domain + identity (LDevID) and has currently no ACP channel up. It may have + further configuration or state, for example, if it had been in state + 3 before but lost all its ACP channels. The LDevID can only be + removed from a device through a factory reset, which also removes all + other state from the device. This ensures that a device has no stale + domain-specific state when entering the "enrolled" state from state + 1. + + Transitions: + + * Joining ACP: The device establishes an ACP channel to an adjacent + device. See [RFC8994] for details. Next state: 3. + + * Factory reset: A factory reset removes all configuration and the + domain identity (LDevID) from the device. Next state: 1. + + * Power-cycle event: The device loses all state tables, but not its + domain identity (LDevID). It remains in state 2. + +3.3.3. State 3: In ACP + + In this state, the autonomic node has at least one ACP channel to + another device. The node can now participate in further autonomic + transactions, such as starting ASAs (e.g., it must now enable the + join proxy ASA, to help other devices to join the domain). Other + conditions may apply to such interactions, for example, to serve as a + join proxy, the device must first discover a bootstrap registrar. + + Transitions: + + * Leaving ACP: The device drops the last (or only) ACP channel to an + adjacent device. Next state: 2. + + * Factory reset: A factory reset removes all configuration and the + domain identity (LDevID) from the device. Next state: 1. + + * Power-cycle event: The device loses all state tables but not its + domain identity (LDevID). Next state: 2. + +4. Autonomic Networking Infrastructure + + The ANI provides a layer of common functionality across an Autonomic + Network. It provides the elementary functions and services, as well + as extensions. An autonomic function, comprising of ASAs on nodes, + uses the functions described in this section. + +4.1. Naming + + Inside a domain, each autonomic device should be assigned a unique + name. The naming scheme should be consistent within a domain. Names + are typically assigned by a registrar at bootstrap time and are + persistent over the lifetime of the device. All registrars in a + domain must follow the same naming scheme. + + In the absence of a domain-specific naming scheme, a default naming + scheme should use the same logic as the addressing scheme discussed + in [RFC8994]. The device name is then composed of a Registrar-ID + (for example, taking a Media Access Control (MAC) address of the + registrar) and a device number. An example name would then look like + this: + + 0123-4567-89ab-0001 + + The first three fields are the MAC address, and the fourth field is + the sequential number for the device. + +4.2. Addressing + + ASAs need to communicate with each other, using the autonomic + addressing of the ANI of the node they reside on. This section + describes the addressing approach of the ANI used by ASAs. + + Addressing approaches for the data plane of the network are outside + the scope of this document. These addressing approaches may be + configured and managed in the traditional way or negotiated as a + service of an ASA. One use case for such an autonomic function is + described in [RFC8992]. + + Autonomic addressing is a function of the ANI (lower part of + Figure 2), specifically the ACP. ASAs do not have their own + addresses. They may use either API calls or the autonomic addressing + scheme of the ANI. + + An autonomic addressing scheme has the following requirements: + + * Zero-touch for simple networks: Simple networks should have + complete self-management of addressing and not require any central + address management, tools, or address planning. + + * Low-touch for complex networks: If complex networks require + operator input for autonomic address management, it should be + limited to high-level guidance only, expressed in Intent. + + * Flexibility: The addressing scheme must be flexible enough for + nodes to be able to move around and for the network to grow, + split, and merge. + + * Robustness: It should be as hard as possible for an administrator + to negatively affect addressing (and thus connectivity) in the + autonomic context. + + * Stability: The addressing scheme should be as stable as possible. + However, implementations need to be able to recover from + unexpected address changes. + + * Support for virtualization: Autonomic functions can exist either + at the level of the physical network and physical devices or at + the level of virtual machines, containers, and networks. In + particular, autonomic nodes may support ASAs in virtual entities. + The infrastructure, including the addressing scheme, should be + able to support this architecture. + + * Simplicity: The addressing scheme should be simple to make + engineering easier and to give the human administrator an easy way + to troubleshoot autonomic functions. + + * Scale: The proposed scheme should work in any network of any size. + + * Upgradability: The scheme must be able to support different + addressing concepts in the future. + + The proposed addressing scheme is described in the document "An + Autonomic Control Plane (ACP)" [RFC8994]. + +4.3. Discovery + + Traditionally, most of the information a node requires is provided + through configuration or northbound interfaces. An autonomic + function should rely on such northbound interfaces minimally or not + at all; therefore, it needs to discover peers and other resources in + the network. This section describes various discovery functions in + an Autonomic Network. + + First, discovering nodes and their properties and capabilities is a + core function to establish an autonomic domain is the mutual + discovery of autonomic nodes, primarily adjacent nodes and + secondarily off-link peers. This may, in principle, either leverage + existing discovery mechanisms or use new mechanisms tailored to the + autonomic context. An important point is that discovery must work in + a network with no predefined topology, ideally no manual + configuration of any kind, and with nodes starting up from factory + condition or after any form of failure or sudden topology change. + + Second, network services such as Authentication, Authorization, and + Accounting (AAA) should also be discovered and not configured. + Service discovery is required for such tasks. An Autonomic Network + can leverage existing service discovery functions, use a new + approach, or use a mixture. + + Thus, the discovery mechanism could either be fully integrated with + autonomic signaling (next section) or use an independent discovery + mechanism such as DNS-based Service Discovery or the Service Location + Protocol. This choice could be made independently for each ASA, + although the infrastructure might require some minimal lowest common + denominator (e.g., for discovering the security bootstrap mechanism + or the source of information distribution (Section 4.7)). + + Phase 1 of Autonomic Networking uses GRASP [RFC8990] for discovery. + +4.4. Signaling between Autonomic Nodes + + Autonomic nodes must communicate with each other, for example, to + negotiate and/or synchronize technical objectives (i.e., network + parameters) of any kind and complexity. This requires some form of + signaling between autonomic nodes. Autonomic nodes implementing a + specific use case might choose their own signaling protocol, as long + as it fits the overall security model. However, in the general case, + any pair of autonomic nodes might need to communicate, so there needs + to be a generic protocol for this. A prerequisite for this is that + autonomic nodes can discover each other without any preconfiguration, + as mentioned above. To be generic, discovery and signaling must be + able to handle any sort of technical objective, including ones that + require complex data structures. The document "GeneRic Autonomic + Signaling Protocol (GRASP)" [RFC8990] describes more detailed + requirements for discovery, negotiation, and synchronization in an + Autonomic Network. It also defines a protocol, called GRASP, for + this purpose; GRASP includes an integrated but optional discovery + process. + + GRASP is normally expected to run inside the ACP (see Section 4.6) + and to depend on the ACP for security. It may run insecurely for a + short time during bootstrapping. + + An autonomic node will normally run a single instance of GRASP, used + by multiple ASAs. However, scenarios where multiple instances of + GRASP run in a single node, perhaps with different security + properties, are not excluded. + +4.5. Routing + + All autonomic nodes in a domain must be able to communicate with each + other, and in later phases, they must also be able to communicate + with autonomic nodes outside their own domain. Therefore, an ACP + relies on a routing function. For Autonomic Networks to be + interoperable, they must all support one common routing protocol. + + The routing protocol is defined in the ACP document [RFC8994]. + +4.6. Autonomic Control Plane + + The ACP carries the control protocols in an Autonomic Network. In + the architecture described in this document, it is implemented as an + overlay network. The document "An Autonomic Control Plane (ACP)" + [RFC8994] describes the implementation details suggested in this + document. This document uses the term "overlay" to mean a set of + point-to-point adjacencies congruent with the underlying + interconnection topology. The terminology may not be aligned with a + common usage of the term "overlay" in the routing context. See + [RFC8368] for uses cases for the ACP. + +4.7. Information Distribution (*) + + Certain forms of information require distribution across an autonomic + domain. The distribution of information runs inside the ACP. For + example, Intent is distributed across an autonomic domain, as + explained in [RFC7575]. + + Intent is the policy language of an Autonomic Network (see also + Section 7.2). It is a high-level policy and should change only + infrequently (order of days). Therefore, information such as Intent + should be simply flooded to all nodes in an autonomic domain, and + there is currently no perceived need to have more targeted + distribution methods. Intent is also expected to be monolithic and + flooded as a whole. One possible method for distributing Intent, as + well as other forms of data, is discussed in [GRASP-DISTRIB]. Intent + and information distribution are not part of the ANIMA Working Group + charter. + +5. Security and Trust Infrastructure + + An Autonomic Network is self-protecting. All protocols are secure by + default, without the requirement for the administrator to explicitly + configure security, with the exception of setting up a PKI + infrastructure. + + Autonomic nodes have direct interactions between themselves, which + must be secured. Since an Autonomic Network does not rely on + configuration, it is not an option to configure, for example, pre- + shared keys. A trust infrastructure such as a PKI infrastructure + must be in place. This section describes the principles of this + trust infrastructure. In this first phase of Autonomic Networking, a + device is either 1) within the trust domain and fully trusted or 2) + outside the trust domain and fully untrusted. + + The default method to automatically bring up a trust infrastructure + is defined in the document "Bootstrapping Remote Secure Key + Infrastructure (BRSKI)" [RFC8995]. The ASAs required for this + enrollment process are described in Section 6.3. An autonomic node + must implement the enrollment and join proxy ASAs. The registrar ASA + may be implemented only on a subset of nodes. + +5.1. Public Key Infrastructure + + An autonomic domain uses a PKI model. The root of trust is a + Certification Authority (CA). A registrar acts as a Registration + Authority (RA). + + A minimum implementation of an autonomic domain contains one CA, one + registrar, and network elements. + +5.2. Domain Certificate + + Each device in an autonomic domain uses a domain certificate (LDevID) + to prove its identity. A new device uses its manufacturer-provided + certificate (IDevID) during bootstrap to obtain a domain certificate. + [RFC8995] describes how a new device receives a domain certificate + and defines the certificate format. + +5.3. MASA + + The Manufacturer Authorized Signing Authority (MASA) is a trusted + service for bootstrapping devices. The purpose of the MASA is to + provide ownership tracking of devices in a domain. The MASA provides + audit, authorization, and ownership tokens to the registrar during + the bootstrap process to assist in the authentication of devices + attempting to join an autonomic domain and to allow a joining device + to validate whether it is joining the correct domain. The details + for MASA service, security, and usage are defined in [RFC8995]. + +5.4. Subdomains (*) + + By default, subdomains are treated as different domains. This + implies no trust between a domain and its subdomains and no trust + between subdomains of the same domain. Specifically, no ACP is + built, and Intent is valid only for the domain it is defined for + explicitly. + + In the ANIMA Working Group charter, alternative trust models should + be defined, for example, to allow full or limited trust between + domain and subdomain. + +5.5. Cross-Domain Functionality (*) + + By default, different domains do not interoperate, no ACP is built, + and no trust is implied between them. + + In the future, models can be established where other domains can be + trusted in full or for limited operations between the domains. + +6. Autonomic Service Agents (ASAs) + + This section describes how autonomic services run on top of the ANI. + +6.1. General Description of an ASA + + An ASA is defined in [RFC7575] as "An agent implemented on an + autonomic node that implements an autonomic function, either in part + (in the case of a distributed function) or whole". Thus, it is a + process that makes use of the features provided by the ANI to achieve + its own goals, usually including interaction with other ASAs via + GRASP [RFC8990] or otherwise. Of course, it also interacts with the + specific targets of its function, using any suitable mechanism. + Unless its function is very simple, the ASA will need to handle + overlapping asynchronous operations. It may therefore be a quite + complex piece of software in its own right, forming part of the + application layer above the ANI. ASA design guidelines are available + in [ASA-GUIDELINES]. + + Thus, we can distinguish at least three classes of ASAs: + + * Simple ASAs with a small footprint that could run anywhere. + + * Complex, possibly multi-threaded ASAs that have a significant + resource requirement and will only run on selected nodes. + + * A few 'infrastructure ASAs' that use basic ANI features in support + of the ANI itself, which must run in all autonomic nodes. These + are outlined in the following sections. + + Autonomic nodes, and therefore their ASAs, know their own + capabilities and restrictions, derived from hardware, firmware, or + pre-installed software; they are "self-aware". + + The role of an autonomic node depends on Intent and on the + surrounding network behaviors, which may include forwarding + behaviors, aggregation properties, topology location, bandwidth, + tunnel or translation properties, etc. For example, a node may + decide to act as a backup node for a neighbor, if its capabilities + allow it to do so. + + Following an initial discovery phase, the node's properties and those + of its neighbors are the foundation of the behavior of a specific + node. A node and its ASAs have no pre-configuration for the + particular network in which they are installed. + + Since all ASAs will interact with the ANI, they will depend on + appropriate application programming interfaces (APIs). It is + desirable that ASAs are portable between operating systems, so these + APIs need to be universal. An API for GRASP is described in + [RFC8991]. + + ASAs will, in general, be designed and coded by experts in a + particular technology and use case, not by experts in the ANI and its + components. Also, they may be coded in a variety of programming + languages, in particular, languages that support object constructs as + well as traditional variables and structures. The APIs should be + designed with these factors in mind. + + It must be possible to run ASAs as non-privileged (user space) + processes except for those (such as the infrastructure ASAs) that + necessarily require kernel privilege. Also, it is highly desirable + that ASAs can be dynamically loaded on a running node. + + Since autonomic systems must be self-repairing, it is of great + importance that ASAs are coded using robust programming techniques. + All runtime error conditions must be caught, leading to suitable + minimally disruptive recovery actions, but a complete restart of the + ASA must also be considered. Conditions such as discovery failures + or negotiation failures must be treated as routine, with the ASA + retrying the failed operation, preferably with an exponential back- + off in the case of persistent errors. When multiple threads are + started within an ASA, these threads must be monitored for failures + and hangups, and appropriate action taken. Attention must be given + to garbage collection, so that ASAs never run out of resources. + There is assumed to be no human operator; again, in the worst case, + every ASA must be capable of restarting itself. + + ASAs will automatically benefit from the security provided by the + ANI, specifically by the ACP and by GRASP. However, beyond that, + they are responsible for their own security, especially when + communicating with the specific targets of their function. + Therefore, the design of an ASA must include a security analysis + beyond 'use ANI security'. + +6.2. ASA Life-Cycle Management + + ASAs operating on a given ANI may come from different providers and + pursue different objectives. Management of ASAs and their + interactions with the ANI should follow the same operating principles + and thus comply to a generic life-cycle management model. + + The ASA life cycle provides standard processes to: + + * install ASA: copy the ASA code onto the node and start it. + + * deploy ASA: associate the ASA instance with a (some) managed + network device(s) (or network function). + + * control ASA execution: when and how an ASA executes its control + loop. + + This life cycle will also define which interactions ASAs have with + the ANI in between the different states. The noticeable interactions + are: + + * Self-description of ASA instances at the end of deployment: Its + format needs to define the information required for the management + of ASAs by ANI entities. + + * Control of the ASA control loop during the operation: Signaling + has to carry formatted messages to control ASA execution (at least + starting and stopping the control loop). + +6.3. Specific ASAs for the Autonomic Networking Infrastructure + + The following functions provide essential, required functionality in + an Autonomic Network and are therefore mandatory to implement on + unconstrained autonomic nodes. They are described here as ASAs that + include the underlying infrastructure components, but implementation + details might vary. + + The first three (pledge, join proxy, join registrar) support together + the trust enrollment process described in Section 5. For details see + [RFC8995]. + +6.3.1. Enrollment ASAs + +6.3.1.1. The Pledge ASA + + This ASA includes the function of an autonomic node that bootstraps + into the domain with the help of a join proxy ASA (see below). Such + a node is known as a pledge during the enrollment process. This ASA + must be installed by default on all nodes that require an autonomic + zero-touch bootstrap. + +6.3.1.2. The Join Proxy ASA + + This ASA includes the function of an autonomic node that helps non- + enrolled, adjacent devices to enroll into the domain. This ASA must + be installed on all nodes, although only one join proxy needs to be + active on a given LAN. See also [RFC8995]. + +6.3.1.3. The Join Registrar ASA + + This ASA includes the Join Registrar function in an Autonomic + Network. This ASA does not need to be installed on all nodes, but + only on nodes that implement the Join Registrar function. + +6.3.2. ACP ASA + + This ASA includes the ACP function in an Autonomic Network. In + particular, it acts to discover other potential ACP nodes and to + support the establishment and teardown of ACP channels. This ASA + must be installed on all nodes. For details, see Section 4.6 and + [RFC8994]. + +6.3.3. Information Distribution ASA (*) + + This ASA is currently out of scope in the ANIMA Working Group charter + and is provided here only as background information. + + This ASA includes the information distribution function in an + Autonomic Network. In particular, it acts to announce the + availability of Intent and other information to all other autonomic + nodes. This ASA does not need to be installed on all nodes, but only + on nodes that implement the information distribution function. For + details, see Section 4.7. + + Note that information distribution can be implemented as a function + in any ASA. See [GRASP-DISTRIB] for more details on how information + is suggested to be distributed. + +7. Management and Programmability + + This section describes how an Autonomic Network is managed and + programmed. + +7.1. Managing a (Partially) Autonomic Network + + Autonomic management usually coexists with traditional management + methods in most networks. Thus, autonomic behavior will be defined + for individual functions in most environments. Examples of overlap + are: + + * Autonomic functions can use traditional methods and protocols + (e.g., SNMP and the Network Configuration Protocol (NETCONF)) to + perform management tasks, inside and outside the ACP. + + * Autonomic functions can conflict with behavior enforced by the + same traditional methods and protocols. + + * Traditional functions can use the ACP, for example, if + reachability on the data plane is not (yet) established. + + The autonomic Intent is defined at a high level of abstraction. + However, since it is necessary to address individual managed + elements, autonomic management needs to communicate in lower-level + interactions (e.g., commands and requests). For example, it is + expected that the configuration of such elements be performed using + NETCONF and YANG modules as well as the monitoring be executed + through SNMP and MIBs. + + Conflict can occur between autonomic default behavior, autonomic + Intent, and traditional management methods. Conflict resolution is + achieved in autonomic management through prioritization [RFC7575]. + The rationale is that manual and node-based management have a higher + priority than autonomic management. Thus, the autonomic default + behavior has the lowest priority, then comes the autonomic Intent + (medium priority), and, finally, the highest priority is taken by + node-specific network management methods, such as the use of command- + line interfaces. + +7.2. Intent (*) + + Intent is not covered in the current implementation specifications. + This section discusses a topic for further research. + + This section gives an overview of Intent and how it is managed. + Intent and Policy-Based Network Management (PBNM) is already + described inside the IETF (e.g., Policy Core Information Model + (PCIM)) and in other Standards Development Organizations (SDOs) + (e.g., the Distributed Management Task Force (DMTF)). + + Intent can be described as an abstract, declarative, high-level + policy used to operate an autonomic domain, such as an enterprise + network [RFC7575]. Intent should be limited to high-level guidance + only; thus, it does not directly define a policy for every network + element separately. + + Intent can be refined to lower-level policies using different + approaches. This is expected in order to adapt the Intent to the + capabilities of managed devices. Intent may contain role or function + information, which can be translated to specific nodes [RFC7575]. + One of the possible refinements of the Intent is using Event- + Condition-Action (ECA) rules. + + Different parameters may be configured for Intent. These parameters + are usually provided by the human operator. Some of these parameters + can influence the behavior of specific autonomic functions as well as + the way the Intent is used to manage the autonomic domain. + + Intent is discussed in more detail in [ANIMA-INTENT]. Intent as well + as other types of information are distributed via GRASP; see + [GRASP-DISTRIB]. + +7.3. Aggregated Reporting (*) + + Aggregated reporting is not covered in the current implementation + specifications. This section discusses a topic for further research. + + An Autonomic Network should minimize the need for human intervention. + In terms of how the network should behave, this is done through an + autonomic Intent provided by the human administrator. In an + analogous manner, the reports that describe the operational status of + the network should aggregate the information produced in different + network elements in order to present the effectiveness of autonomic + Intent enforcement. Therefore, reporting in an Autonomic Network + should happen on a network-wide basis [RFC7575]. + + Multiple simultaneous events can occur in an Autonomic Network in the + same way they can happen in a traditional network. However, when + reporting to a human administrator, such events should be aggregated + to avoid notifications about individual managed elements. In this + context, algorithms may be used to determine what should be reported + (e.g., filtering), how it should be reported, and how different + events are related to each other. Besides that, an event in an + individual element can be compensated by changes in other elements to + maintain a network-wide target that is described in the autonomic + Intent. + + Reporting in an Autonomic Network may be at the same abstraction + level as Intent. In this context, the aggregated view of the current + operational status of an Autonomic Network can be used to switch to + different management modes. Despite the fact that autonomic + management should minimize the need for user intervention, some + events may need to be addressed by the actions of a human + administrator. + +7.4. Feedback Loops to NOC (*) + + Feedback loops are required in an Autonomic Network to allow the + intervention of a human administrator or central control systems + while maintaining a default behavior. Through a feedback loop, an + administrator must be prompted with a default action and has the + possibility to acknowledge or override the proposed default action. + + Unidirectional notifications to the Network Operations Center (NOC) + that do not propose any default action and do not allow an override + as part of the transaction are considered like traditional + notification services, such as syslog. They are expected to coexist + with autonomic methods but are not covered in this document. + +7.5. Control Loops (*) + + Control loops are not covered in the current implementation + specifications. This section discusses a topic for further research. + + Control loops are used in Autonomic Networking to provide a generic + mechanism to enable the autonomic system to adapt (on its own) to + various factors that can change the goals that the Autonomic Network + is trying to achieve or how those goals are achieved. For example, + as user needs, business goals, and the ANI itself changes, self- + adaptation enables the ANI to change the services and resources it + makes available to adapt to these changes. + + Control loops operate to continuously observe and collect data that + enables the autonomic management system to understand changes to the + behavior of the system being managed and then provide actions to move + the state of the system being managed toward a common goal. Self- + adaptive systems move decision making from static, pre-defined + commands to dynamic processes computed at runtime. + + Most autonomic systems use a closed control loop with feedback. Such + control loops should be able to be dynamically changed at runtime to + adapt to changing user needs, business goals, and changes in the ANI. + +7.6. APIs (*) + + [RFC8991] defines a conceptual outline for an API for the GeneRic + Autonomic Signaling Protocol (GRASP). This conceptual API is + designed for ASAs to communicate with other ASAs through GRASP. Full + Standards Track API specifications are not covered in the current + implementation specifications. + + Most APIs are static, meaning that they are pre-defined and represent + an invariant mechanism for operating with data. An Autonomic Network + should be able to use dynamic APIs in addition to static APIs. + + A dynamic API retrieves data using a generic mechanism and then + enables the client to navigate the retrieved data and operate on it. + Such APIs typically use introspection and/or reflection. + Introspection enables software to examine the type and properties of + an object at runtime, while reflection enables a program to + manipulate the attributes, methods, and/or metadata of an object. + + APIs must be able to express and preserve the semantics of data + models. For example, software contracts [Meyer97] are based on the + principle that a software-intensive system, such as an Autonomic + Network, is a set of communicating components whose interaction is + based on precisely defined specifications of the mutual obligations + that interacting components must respect. This typically includes + specifying: + + * pre-conditions that must be satisfied before the method can start + execution + + * post-conditions that must be satisfied when the method has + finished execution + + * invariant attributes that must not change during the execution of + the method + +7.7. Data Model (*) + + Data models are not covered in the current implementation + specifications. This section discusses a topic for further research. + + The following definitions of "data model" and "information model" are + adapted from [SUPA-DATA]. + + An information model is a representation of concepts of interest to + an environment in a form that is independent of data repository, data + definition language, query language, implementation language, and + protocol. In contrast, a data model is a representation of concepts + of interest to an environment in a form that is dependent on data + repository, data definition language, query language, implementation + language, and protocol. + + The utility of an information model is to define objects and their + relationships in a technology-neutral manner. This forms a + consensual vocabulary that the ANI and ASAs can use. A data model is + then a technology-specific mapping of all or part of the information + model to be used by all or part of the system. + + A system may have multiple data models. Operational Support Systems, + for example, typically have multiple types of repositories, such as + SQL and NoSQL, to take advantage of the different properties of each. + If multiple data models are required by an autonomic system, then an + information model should be used to ensure that the concepts of each + data model can be related to each other without technological bias. + + A data model is essential for certain types of functions, such as a + Model-Reference Adaptive Control Loop (MRACL). More generally, a + data model can be used to define the objects, attributes, methods, + and relationships of a software system (e.g., the ANI, an autonomic + node, or an ASA). A data model can be used to help design an API, as + well as any language used to interface to the Autonomic Network. + +8. Coordination between Autonomic Functions (*) + + Coordination between autonomic functions is not covered in the + current implementation specifications. This section discusses a + topic for further research. + +8.1. Coordination Problem (*) + + Different autonomic functions may conflict in setting certain + parameters. For example, an energy efficiency function may want to + shut down a redundant link, while a load-balancing function would not + want that to happen. The administrator must be able to understand + and resolve such interactions to steer Autonomic Network performance + to a given (intended) operational point. + + Several interaction types may exist among autonomic functions, for + example: + + * Cooperation: An autonomic function can improve the behavior or + performance of another autonomic function, such as a traffic + forecasting function used by a traffic allocation function. + + * Dependency: An autonomic function cannot work without another one + being present or accessible in the Autonomic Network. + + * Conflict: A metric value conflict is a conflict where one metric + is influenced by parameters of different autonomic functions. A + parameter value conflict is a conflict where one parameter is + modified by different autonomic functions. + + Solving the coordination problem beyond one-by-one cases can rapidly + become intractable for large networks. Specifying a common + functional block on coordination is a first step to address the + problem in a systemic way. The coordination life cycle consists of + three states: + + * At build-time, a "static interaction map" can be constructed on + the relationship of functions and attributes. This map can be + used to (pre-)define policies and priorities for identified + conflicts. + + * At deploy-time, autonomic functions are not yet active/acting on + the network. A "dynamic interaction map" is created for each + instance of each autonomic function on a per-resource basis, + including the actions performed and their relationships. This map + provides the basis to identify conflicts that will happen at + runtime, categorize them, and plan for the appropriate + coordination strategies and mechanisms. + + * At runtime, when conflicts happen, arbitration is driven by the + coordination strategies. Also, new dependencies can be observed + and inferred, resulting in an update of the dynamic interaction + map and adaptation of the coordination strategies and mechanisms. + + Multiple coordination strategies and mechanisms exist and can be + devised. The set ranges from basic approaches (such as random + process or token-based process), to approaches based on time + separation and hierarchical optimization, to more complex approaches + (such as multi-objective optimization and other control theory + approaches and algorithm families). + +8.2. Coordination Functional Block (*) + + A common coordination functional block is a desirable component of + the ANIMA reference model. It provides a means to ensure network + properties and predictable performance or behavior, such as stability + and convergence, in the presence of several interacting autonomic + functions. + + A common coordination function requires: + + * A common description of autonomic functions, their attributes, and + life cycle. + + * A common representation of information and knowledge (e.g., + interaction maps). + + * A common "control/command" interface between the coordination + "agent" and the autonomic functions. + + Guidelines, recommendations, or BCPs can also be provided for aspects + pertaining to the coordination strategies and mechanisms. + +9. Security Considerations + + In this section, we distinguish outsider and insider attacks. In an + outsider attack, all network elements and protocols are securely + managed and operating, and an outside attacker can sniff packets in + transit, inject, and replay packets. In an insider attack, the + attacker has access to an autonomic node or other means (e.g., remote + code execution in the node by exploiting ACP-independent + vulnerabilities in the node platform) to produce arbitrary payloads + on the protected ACP channels. + + If a system has vulnerabilities in the implementation or operation + (configuration), an outside attacker can exploit such vulnerabilities + to become an insider attacker. + +9.1. Protection against Outsider Attacks + + Here, we assume that all systems involved in an Autonomic Network are + secured and operated according to best current practices. These + protection methods comprise traditional security implementation and + operation methods (such as code security, strong randomization + algorithms, strong passwords, etc.) as well as mechanisms specific to + an Autonomic Network (such as a secured MASA service). + + Traditional security methods for both implementation and operation + are outside the scope of this document. + + AN-specific protocols and methods must also follow traditional + security methods, in that all packets that can be sniffed or injected + by an outside attacker are: + + * protected against modification + + * authenticated + + * protected against replay attacks + + * confidentiality protected (encrypted) + + In addition, the AN protocols should be robust against packet drops + and man-in-the-middle attacks. + + How these requirements are met is covered in the AN Standards Track + documents that define the methods used, specifically [RFC8990], + [RFC8994], and [RFC8995]. + + Most AN messages run inside the cryptographically protected ACP. The + unprotected AN messages outside the ACP are limited to a simple + discovery method, defined in Section 2.5.2 of [RFC8990]: the + Discovery Unsolicited Link-Local (DULL) message, with detailed rules + on its usage. + + If AN messages can be observed by a third party, they might reveal + valuable information about network configuration, security + precautions in use, individual users, and their traffic patterns. If + encrypted, AN messages might still reveal some information via + traffic analysis. + +9.2. Risk of Insider Attacks + + An Autonomic Network consists of autonomic devices that form a + distributed self-managing system. Devices within a domain have + credentials issued from a common trust anchor and can use them to + create mutual trust. This means that any device inside a trust + domain can by default use all distributed functions in the entire + autonomic domain in a malicious way. + + An inside attacker, or an outsider in the presence of protocol + vulnerabilities or insecure operation, has the following generic ways + to take control of an Autonomic Network: + + * Introducing a fake device into the trust domain by subverting the + authentication methods. This depends on the correct + specification, implementation, and operation of the AN protocols. + + * Subverting a device that is already part of a trust domain and + modifying its behavior. This threat is not specific to the + solution discussed in this document and applies to all network + solutions. + + * Exploiting potentially yet unknown protocol vulnerabilities in the + AN or other protocols. This is also a generic threat that applies + to all network solutions. + + The above threats are, in principle, comparable to other solutions: + in the presence of design, implementation, or operational errors, + security is no longer guaranteed. However, the distributed nature of + AN, specifically the ACP, increases the threat surface significantly. + For example, a compromised device may have full IP reachability to + all other devices inside the ACP and can use all AN methods and + protocols. + + For the next phase of the ANIMA Working Group, it is therefore + recommended to introduce a subdomain security model to reduce the + attack surface and not expose a full domain to a potential intruder. + Furthermore, additional security mechanisms on the ASA level should + be considered for high-risk autonomic functions. + +10. IANA Considerations + + This document has no IANA actions. + +11. References + +11.1. Normative References + + [IDevID] IEEE, "IEEE Standard for Local and metropolitan area + networks - Secure Device Identity", IEEE 802.1AR, + <https://1.ieee802.org/security/802-1ar>. + + [RFC8990] Bormann, C., Carpenter, B., Ed., and B. Liu, Ed., "GeneRic + Autonomic Signaling Protocol (GRASP)", RFC 8990, + DOI 10.17487/RFC8990, May 2021, + <https://www.rfc-editor.org/info/rfc8990>. + + [RFC8994] Eckert, T., Ed., Behringer, M., Ed., and S. Bjarnason, "An + Autonomic Control Plane (ACP)", RFC 8994, + DOI 10.17487/RFC8994, May 2021, + <https://www.rfc-editor.org/info/rfc8994>. + + [RFC8995] Pritikin, M., Richardson, M., Eckert, T., Behringer, M., + and K. Watsen, "Bootstrapping Remote Secure Key + Infrastructure (BRSKI)", RFC 8995, DOI 10.17487/RFC8995, + May 2021, <https://www.rfc-editor.org/info/rfc8995>. + +11.2. Informative References + + [ANIMA-INTENT] + Du, Z., Jiang, S., Nobre, J. C., Ciavaglia, L., and M. + Behringer, "ANIMA Intent Policy and Format", Work in + Progress, Internet-Draft, draft-du-anima-an-intent-05, 14 + February 2017, + <https://tools.ietf.org/html/draft-du-anima-an-intent-05>. + + [ASA-GUIDELINES] + Carpenter, B., Ciavaglia, L., Jiang, S., and P. Peloso, + "Guidelines for Autonomic Service Agents", Work in + Progress, Internet-Draft, draft-ietf-anima-asa-guidelines- + 00, 14 November 2020, <https://tools.ietf.org/html/draft- + ietf-anima-asa-guidelines-00>. + + [GRASP-DISTRIB] + Liu, B., Ed., Xiao, X., Ed., Hecker, A., Jiang, S., + Despotovic, Z., and B. Carpenter, "Information + Distribution over GRASP", Work in Progress, Internet- + Draft, draft-ietf-anima-grasp-distribution-02, 8 March + 2021, <https://tools.ietf.org/html/draft-ietf-anima-grasp- + distribution-02>. + + [Meyer97] Meyer, B., "Object-Oriented Software Construction (2nd + edition)", Prentice Hall, ISBN 978-0136291558, 1997. + + [RFC7575] Behringer, M., Pritikin, M., Bjarnason, S., Clemm, A., + Carpenter, B., Jiang, S., and L. Ciavaglia, "Autonomic + Networking: Definitions and Design Goals", RFC 7575, + DOI 10.17487/RFC7575, June 2015, + <https://www.rfc-editor.org/info/rfc7575>. + + [RFC7576] Jiang, S., Carpenter, B., and M. Behringer, "General Gap + Analysis for Autonomic Networking", RFC 7576, + DOI 10.17487/RFC7576, June 2015, + <https://www.rfc-editor.org/info/rfc7576>. + + [RFC8368] Eckert, T., Ed. and M. Behringer, "Using an Autonomic + Control Plane for Stable Connectivity of Network + Operations, Administration, and Maintenance (OAM)", + RFC 8368, DOI 10.17487/RFC8368, May 2018, + <https://www.rfc-editor.org/info/rfc8368>. + + [RFC8991] Carpenter, B., Liu, B., Ed., Wang, W., and X. Gong, + "GeneRic Autonomic Signaling Protocol Application Program + Interface (GRASP API)", RFC 8991, DOI 10.17487/RFC8991, + May 2021, <https://www.rfc-editor.org/info/rfc8991>. + + [RFC8992] Jiang, S., Ed., Du, Z., Carpenter, B., and Q. Sun, + "Autonomic IPv6 Edge Prefix Management in Large-Scale + Networks", RFC 8992, DOI 10.17487/RFC8992, May 2021, + <https://www.rfc-editor.org/info/rfc8992>. + + [SUPA-DATA] + Halpern, J. and J. Strassner, "Generic Policy Data Model + for Simplified Use of Policy Abstractions (SUPA)", Work in + Progress, Internet-Draft, draft-ietf-supa-generic-policy- + data-model-04, 18 June 2017, <https://tools.ietf.org/html/ + draft-ietf-supa-generic-policy-data-model-04>. + +Acknowledgements + + The following people provided feedback and input to this document: + Sheng Jiang, Roberta Maglione, Jonathan Hansford, Jason Coleman, and + Artur Hecker. Useful reviews were made by Joel Halpern, Radia + Perlman, Tianran Zhou, and Christian Hopps. + +Contributors + + Significant contributions to this document were made by John + Strassner (Huawei), Bing Liu (Huawei), and Pierre Peloso (Nokia). + +Authors' Addresses + + Michael H. Behringer (editor) + + Email: Michael.H.Behringer@gmail.com + + + Brian Carpenter + School of Computer Science + University of Auckland + PB 92019 + Auckland 1142 + New Zealand + + Email: brian.e.carpenter@gmail.com + + + Toerless Eckert + Futurewei USA + 2330 Central Expy + Santa Clara, CA 95050 + United States of America + + Email: tte+ietf@cs.fau.de + + + Laurent Ciavaglia + Nokia + Villarceaux + 91460 Nozay + France + + Email: laurent.ciavaglia@nokia.com + + + Jéferson Campos Nobre + Federal University of Rio Grande do Sul (UFRGS) + Av. Bento Gonçalves, 9500 + Porto Alegre-RS + 91501-970 + Brazil + + Email: jcnobre@inf.ufrgs.br |