Internet-Draft | Information Distribution | March 2023 |
Jiang, et al. | Expires 11 September 2023 | [Page] |
This document analyzes the Information distribution models in the Autonomic Networks that are based on the ANI. Most of instantaneous modes and their requirements have been met by GRASP already. However, in order to effectively support the asynchronous information distribution modes, which is newly described in this document, several new GRASP extensions are defined. This document also describes the corresponding behaviors on processing these new extensions.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 11 September 2023.¶
Copyright (c) 2023 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 Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
In Autonomic Networks [RFC7575], Autonomic Service Agents (ASAs) [RFC8993]running on autonomic nodes constantly exchange information, e.g. control/management signaling or data exchanging among ASAs. The Autonomic Network Infrastructure (ANI) [RFC8993] provides generic support for these ASAs, mostly by GeneRic Autonomic Signaling Protocol (GRASP)[RFC8990]. This document introduces some important and typical use cases and analyzes their information distribution modes. Although most of instantaneous information distribution modes and their requirements have been met by GRASP already, asynchronous information distribution modes need new functions to support. In publishing for retrieval mode, information needs to be stored and re-distribute on-demand; additionally, conflict resolution is also needed when stored information is updated with information from multiple sources.¶
This document defines a series of GRASP extensions in order to support such information distribution mode. This document also describes the corresponding behaviors on processing them.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
In this section, we present some important use cases where information distribution is required and Autonomic Control Plane (ACP) [RFC8994] support is commonly needed.¶
In addition to Internet, carrier network (i.e. wireless mobile networks) is another world-wide networking system. The current architecture of 5G system defined by 3GPP follows a service-based architecture (SBA) where a network function (NF) can dynamically request a network service from another NF(s) when needed. Note that one NF can flexibly associate with multiple other NFs, instead of being physically wired to each other in a static way. NFs communicate with each other over service-based interface (SBI), which is also standardized by 3GPP [3GPP.23.501].¶
To realize an SBA network system, detailed requirements are further defined to specify how NFs should interact with each other with information exchange over the SBI in corresponding 3GPP technical specifications. We now list three services that are closely related to information distribution here.¶
Notice that how the connectivity and trust among different NFs shall be bootstrapped and maintained by the control plane are not specified. In fact, 3GPP only considers the necessary requirements and features of a 3GPP network shall present. Hence, ACP and GRASP could be utilized as a specific solution and promoted to 3GPP.¶
In-network computing recently gets a lot of attentions [The-case-for-in-network-computing-on-demand]. INC improves the utilization of the computing resources in the network; INC also brings the processed results closer to the users, which may potentially improves the QoS of network services.¶
Unlike existing network systems, INC deploys computing tasks directly in the network rather than pushing the tasks to endpoints outside the network. Therefore, a network device is not just a transport device, but a mixture of forwarding, routing and computing. The requires an INC-supported network device having storage by default. Furthermore, computing agents deployed on network nodes will have to communicate with each other by exchanging information. There are several typical applications, where information distribution capability is required, which are summarized below.¶
Clearly, ASAs running on network nodes in ANI are the abstraction of the INC use case. ASAs can be deployed for both scenarios above.¶
The connected Autonomous Driving (AD) vehicles market is driving the evolution of the Internet of Vehicles (IoV) (or Vehicular IoT) and is growing at a five-year compound annual growth rate of 45%, which is 10 times faster than the overall car market. V2X communication is an inevitable enabling technology that connects vehicles to networks, where value-added services can be provided and enhance the functionalities of a vehicle. In this section, we introduce some use cases that will be closely relevant to information distribution in an ANI.¶
Note that there could be different modes to support the potential use cases above. The first mode is that vehicles are not part of the ACP while simply accessing the edge nodes that are part of the ACP using information distribution to provide information required by the vehicles. The second mode is more radical where the vehicles also belong to the part of ACP while a dynamic ACP topology consisting of wireless link connectivity could exist. The latter scenario may further require all entities (both at the network side and the end point side) must be able to establish a trust layer relying on the security mechanism with Bootstrapping Remote Secure Key Infrastructure (BRSKI) [RFC8995].¶
Smart homes are designed to make home life much easier. Smart homes refer to a convenient home setup in which appliances and devices can be remotely controlled from anywhere using a mobile or other network device over an Internet connection. Devices in the smart home are connected over the Internet, allowing users to remotely control functions such as home security access, temperature, lighting, and a home theater. Smart home has considerable business prospects, and many Internet giants are investing in them, such as Amazon, Goolge and Apple. With the development of Internet technology, smart home user experience getting better and better. In this section, we present some use cases that are closely related to information distribution in an ANI.¶
According to the specific uses cases described in last section, this section summarizes the requirements of the use cases as a couple of general information distribution modes. Then in Section 4.3 , it described current gaps of GRASP protocol that could not fully support the distribution modes.¶
In a network (either in an Autonomic Network or any other networks), the way of distributing information could be modeled from the following two dimensions.¶
One dimension is from the perspective of the information distribution participants, there are two categories as below:¶
The other dimension is from the timing perspective, also categoried as two modes as below:¶
Note that in both cases, the total size of transferred information can be larger than the payload size of a single message of a used transport protocol (e.g., Synchronization and Flood messages in GRASP). This document also gives support for bulk data transfer in Section 6.3.¶
In ANI, on top of the general information distribution modes described in Section 4.1 , there are also ASA-level specific requirements of distributing information as the following:¶
As most of instantaneous information distribution modes and their requirements have been met by GRASP already, asynchronous information distribution modes need new functions to be supported. In publishing for retrieval mode, information needs to be stored and re-distribute on-demand; additionally, conflict resolution is also needed when stored information is updated with information from multiple sources.¶
To extend GRASP to support the ASA requirements, some extensions are defined in Section 5 .¶
In fragmentary CDDL, an Un-solicited Synchronization message follows the pattern:¶
A node SHOULD actively send a unicast Un-solicited Synchronization message with the Synchronization data, to another node. This SHOULD be sent to port GRASP_LISTEN_PORT at the destination address, which could be obtained by GRASP Discovery or other possible ways. The synchronization data are in the form of GRASP Option(s) for specific synchronization objective(s).¶
Normal flooding mode has already been supported by GRASP. This section defines a new Selective-Flooding option. Since GRASP is based on CBOR (Concise Binary Object Representation) [RFC8949], the format of the Selective-Flooding option is described in the Concise Data Definition Language (CDDL) [RFC8610] as follows:¶
Selective-Flooding-option = [O_SELECTIVE_FLOOD, +O_MATCH-CONDITION, match-object, action]¶
The option field encapsulates a match-condition option which represents the conditions regarding to continue or discontinue flood the current message. For the match-condition option, the Obj1 and Obj2 are to objects that need to be compared. For example, the Obj1 could be the role of the device and Obj2 could be "RSG". The match rules between the two objects could be greater, less than, within, or contain. The match-object represents of which Obj1 belongs to, it could be the device itself or the neighbor(s) intended to be flooded. The action means, when the match rule applies, the current device just continues flood or discontinues.¶
In fragmentary CDDL, a Subscription Objective Option follows the pattern:¶
This option MAY be included in GRASP M_Synchronization, when included, it means this message is for a subscription to a specific object.¶
In fragmentary CDDL, a Unsubscription Objective Option follows the pattern:¶
This option MAY be included in GRASP M_Synchronization, when included, it means this message is for a un-subscription to a specific object.¶
In fragmentary CDDL, a Publishing Objective Option follows the pattern:¶
This option MAY be included in GRASP M_Synchronization, when included, it means this message is for active delivery of a specific object data.¶
In this section, how a node should behave in order to support the two identified modes of information distribution is discussed. An ANI is a distributed system, so the information distribution module must be implemented in a distributed way as well.¶
In this case, an information sender directly specifies the information receiver(s). The instant information distribution sub-module will be the main element.¶
IID sub-module performs instant information transmission for ASAs running in an ANI. In specific, IID sub-module will have to retrieve the address of the information receiver specified by an ASA, then deliver the information to the receiver. Such a delivery can be done either in a connectionless or a connection-oriented way.¶
Current GRASP provides the capability to support instant P2P synchronization for ASAs. A P2P synchronization is a use case of P2P information transmission. However, as mentioned in Section 3, there are some scenarios where one node needs to transmit some information to another node(s). This is different to synchronization because after transmitting the information, the local status of the information does not have to be the same as the information sent to the receiver. An extension to support instant P2P communication on GRASP is described in Section 5. A node SHOULD send a M_UNSOLIDSYNCH message to the GRASP_LISTEN_PORT of the corresponding node.¶
IID sub-module finishes instant flooding for ASAs in an ANI. Instant flooding is for all ASAs in an ANI. An information sender has to specify a special destination address of the information and broadcast to all interfaces to its neighbors. When another IID sub- module receives such a broadcast, after checking its TTL, it further broadcast the message to the neighbors. In order to avoid flooding storms in an ANI, usually a TTL number is specified, so that after a pre-defined limit, the flooding message will not be further broadcast again.¶
In order to avoid unnecessary flooding, a selective flooding can be done where an information sender wants to send information to multiple receivers at once. An exemplary extension to support selective flooding on GRASP is described in Section 5.¶
When doing this, sending information needs to contain criteria to judge on which interfaces the distributed information should and should not be sent. Specifically, the criteria contain:¶
Sent information must be included in the message with Selective-Flooding-option distributed from the sender. The receiving node reacts by first checking the carried O_MATCH- CONDITION in the message to decide who should consume the message, which could be either the node itself, some neighbors or both. If the node itself is a recipient, action in Selective-Flooding-option is followed; if a neighbor is a recipient, the message is sent accordingly.¶
In asynchronous information distribution, sender(s) and receiver(s) are not immediately specified while they may appear in an asynchronous way. Firstly, AID sub-module enables that the information can be stored in the network; secondly, AID sub-module provides an information publication and subscription (Pub/Sub) mechanism for ASAs.¶
As sketched in the previous section, in general each node requires two modules: 1) Information Storage (IS) module and 2) Event Queue (EQ) module in the information distribution module. Details of the two modules are described in the following sections.¶
IS module handles how to save and retrieve information for ASAs across the network. The IS module uses a syntax to index information, generating the hash index value (e.g. a hash value) of the information and mapping the hash index to a certain node in ANI. Note that, this mechanism can use existing solutions. Specifically, storing information in an ANIMA network should be realized in the following steps.¶
Similarly, Getting information from an ANI should be realized in the following steps.¶
IS module can reuse distributed databases and key value stores like NoSQL, Cassandra, DHT technologies. Storage and retrieval of information are all event-driven responsible by the EQ module.¶
The Event Queue (EQ) module is to help ASAs to publish information to the network and subscribe/unsubscribe to interested information in asynchronous scenarios. Extensions to support information publishing, subscription and unsubscripiton on GRASP are described in Section 5. In an ANI, information generated on network nodes is an event labeled with an event ID, which is semantically related to the topic of the information. Key features of EQ module are summarized as follows.¶
The EQ module on every network node operates as follows.¶
The category of event priority is defined as the following. In general, there are two event types:¶
Event contains the address where the information is stored, after a subscriber is notified, it directly retrieves the information from the given location.¶
In both cases discussed previously, they are limited to distributing messages containing GRASP Objective Options that cannot exceed the GRASP maximum message size of 2048 bytes. This places a limit on the size of data that can be transferred directly in a GRASP message such as a Synchronization or Flood operation for instantaneous information distribution.¶
There are scenarios in autonomic networks where this restriction is a problem. One case is the distribution of network policy in lengthy formats such as YANG or JSON. Another case might be an Autonomic Service Agent (ASA) uploading a log file to the Network Operations Center (NOC). A third case might be a supervisory system downloading a software upgrade to an autonomic node. A related case might be installing the code of a new or updated ASA to a target node.¶
Naturally, an existing solution such as a secure file transfer protocol or secure HTTP might be used for this. Other management protocols such as syslog [RFC5424] or NETCONF [RFC6241] might also be used for related purposes, or might be mapped directly over GRASP. The present document, however, applies to any scenario where it is preferable to re-use the autonomic networking infrastructure itself to transfer a significant amount of data, rather than install and configure an additional mechanism.¶
The node behavior is to use the GRASP Negotiation process to transfer and acknowledge multiple blocks of data in successive negotiation steps, thereby overcoming the GRASP message size limitation. The emphasis is placed on simplicity rather than efficiency, high throughput, or advanced functionality. For example, if a transfer gets out of step or data packets are lost, the strategy is to abort the transfer and try again. In an enterprise network with low bit error rates, and with GRASP running over TCP, this is not considered a serious issue.¶
As for any GRASP operation, the two participants are considered to be Autonomic Service Agents (ASAs) and they communicate using a specific GRASP Objective Option, containing its own name, some flag bits, a loop count, and a value. In bulk transfer, we can model the ASA acting as the source of the transfer as a download server, and the destination as a download client. No changes or extensions are required to GRASP itself, but compared to a normal GRASP negotiation, the communication pattern is slightly asymmetric:¶
The last two steps SHOULD be repeated until the transfer is complete. The server SHOULD signal the end by transferring an empty byte string as the final value. In this case the client responds with a normal end to the negotiation (M_END message with an O_ACCEPT option).¶
Errors of any kind SHOULD be handled with the normal GRASP mechanisms, in particular by an M_END message with an O_DECLINE option in either direction. In this case the GRASP session terminates. It is then the client's choice whether to retry the operation from the start, as a new GRASP session, or to abandon the transfer. The block size must be chosen such that each step does not exceed the GRASP message size limit of 2048 bits.¶
The distribution source authentication could be done at multiple layers:¶
This document defines a new GRASP message named "M_UNSOLIDSYNCH" and a new option named "O_SELECTIVE_FLOOD" which need to be added to the "GRASP Messages and Options" registry defined by [RFC8990]. And this document defines three new GRASP Objectives, "Subscription", "Unsubscription" and "Publishing" which need to be added to the "GRASP Objective Names" .¶
Valuable comments were received from Zoran Despotovic, Brian Carpenter, Michael Richardson, Roland Bless, Mohamed Boucadair, Diego Lopez, Toerless Eckert and other participants in the ANIMA working group.¶
This document was produced using the xml2rfc tool [RFC7991].¶
Actions triggered to the information distribution module will eventually invoke underlying GRASP APIs. Moreover, EQ and IS modules are usually correlated. When an ASA publishes information, not only such an event is translated and sent to EQ module, but also the information is indexed and stored simultaneously. Similarly, when an ASA subscribes information, not only subscribing event is triggered and sent to EQ module, but also the information will be retrieved by IS module at the same time.¶