| < draft-ietf-netconf-udp-notif-00.txt | draft-ietf-netconf-udp-notif-01.txt > | |||
|---|---|---|---|---|
| NETCONF G. Zheng | NETCONF G. Zheng | |||
| Internet-Draft T. Zhou | Internet-Draft T. Zhou | |||
| Intended status: Standards Track Huawei | Intended status: Standards Track Huawei | |||
| Expires: April 6, 2021 T. Graf | Expires: 6 May 2021 T. Graf | |||
| Swisscom | Swisscom | |||
| P. Francois | P. Francois | |||
| INSA-Lyon | INSA-Lyon | |||
| P. Lucente | P. Lucente | |||
| NTT | NTT | |||
| October 3, 2020 | 2 November 2020 | |||
| UDP-based Transport for Configured Subscriptions | UDP-based Transport for Configured Subscriptions | |||
| draft-ietf-netconf-udp-notif-00 | draft-ietf-netconf-udp-notif-01 | |||
| Abstract | Abstract | |||
| This document describes an UDP-based notification mechanism to | This document describes an UDP-based notification mechanism to | |||
| collect data from networking devices. A shim header is proposed to | collect data from networking devices. A shim header is proposed to | |||
| facilitate the streaming of data directly from line cards to a | facilitate the streaming of data directly from line cards to a | |||
| collector. The objective is to rely on a lightweight approach to | collector. The objective is to rely on a lightweight approach to | |||
| allow for higher frequency and better transit performance compared to | allow for higher frequency and better transit performance compared to | |||
| already established notification mechanisms. | already established notification mechanisms. | |||
| skipping to change at page 1, line 47 ¶ | skipping to change at page 1, line 47 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 6, 2021. | This Internet-Draft will expire on 6 May 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
| carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
| to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
| include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
| the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Configured Subscription to UDP-Notif . . . . . . . . . . . . 4 | 2. Configured Subscription to UDP-Notif . . . . . . . . . . . . 4 | |||
| 3. UDP-Based Transport . . . . . . . . . . . . . . . . . . . . . 4 | 3. UDP-Based Transport . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1. Design Overview . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Design Overview . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.2. Format of the UDP-Notif Message Header . . . . . . . . . 5 | 3.2. Format of the UDP-Notif Message Header . . . . . . . . . 5 | |||
| 3.3. Options . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.3. Options . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3.1. Fragmentation Option . . . . . . . . . . . . . . . . 6 | 3.3.1. Segmentation Option . . . . . . . . . . . . . . . . . 7 | |||
| 3.4. Data Encoding . . . . . . . . . . . . . . . . . . . . . . 7 | 3.4. Data Encoding . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4. Congestion Control . . . . . . . . . . . . . . . . . . . . . 8 | 4. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.1. Congestion Control . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. A YANG Data Model for Management of UDP-Notif . . . . . . . . 8 | 4.2. Message Size . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 4.3. Reliability . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 5. A YANG Data Model for Management of UDP-Notif . . . . . . . . 9 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 6. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 12 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 14 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 11.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 13 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | 10.2. Informative References . . . . . . . . . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
| 1. Introduction | 1. Introduction | |||
| Sub-Notif [RFC8639] defines a mechanism that lets a collector | Sub-Notif [RFC8639] defines a mechanism that lets a collector | |||
| subscribe to the publication of YANG-defined data maintained in a | subscribe to the publication of YANG-defined data maintained in a | |||
| YANG [RFC7950] datastore. The mechanism separates the management and | YANG [RFC7950] datastore. The mechanism separates the management and | |||
| control of subscriptions from the transport used to deliver the data. | control of subscriptions from the transport used to deliver the data. | |||
| Three transport mechanisms, namely NETCONF transport [RFC8640], | Three transport mechanisms, namely NETCONF transport [RFC8640], | |||
| RESTCONF transport [RFC8650], and HTTPS transport | RESTCONF transport [RFC8650], and HTTPS transport | |||
| [I-D.ietf-netconf-https-notif] have been defined so far for such | [I-D.ietf-netconf-https-notif] have been defined so far for such | |||
| notification messages. | notification messages. | |||
| While powerful in its features and general in their architecture, the | While powerful in their features and general in their architecture, | |||
| currently available transport mechanisms need to be complemented to | the currently available transport mechanisms need to be complemented | |||
| support data publications at high velocity from devices that feature | to support data publications at high velocity from devices that | |||
| a distributed architecture. The currently available transports are | feature a distributed architecture. The currently available | |||
| based on TCP and lack the efficiency needed to continuously send | transports are based on TCP and lack the efficiency needed to | |||
| notifications at high velocity. | continuously send notifications at high velocity. | |||
| This document specifies a transport option for Sub-Notif that | This document specifies a transport option for Sub-Notif that | |||
| leverages UDP. Specifically, it facilitates the distributed data | leverages UDP. Specifically, it facilitates the distributed data | |||
| collection mechanism described in | collection mechanism described in | |||
| [I-D.unyte-netconf-distributed-notif]. In the case of data | [I-D.ietf-netconf-distributed-notif]. In the case of data | |||
| originating from multiple line cards, centralized designs require | originating from multiple line cards, centralized designs require | |||
| data to be internally forwarded from those line cards to the push | data to be internally forwarded from those line cards to the push | |||
| server, presumably on a route processor, which then combines the | server, presumably on a route processor, which then combines the | |||
| individual data items into a single consolidated stream. The | individual data items into a single consolidated stream. The | |||
| centralized data collection mechanism can result in a performance | centralized data collection mechanism can result in a performance | |||
| bottleneck, especially when large amounts of data are involved. | bottleneck, especially when large amounts of data are involved. | |||
| What is needed is the support for a mechanism that allows for | What is needed is the support for a mechanism that allows for | |||
| directly pushing multiple substreams, e.g. one from each line card, | directly pushing multiple substreams, e.g. one from each line card, | |||
| without passing them through an additional processing stage for | without passing them through an additional processing stage for | |||
| internal consolidation. The proposed UDP-based transport allows for | internal consolidation. The proposed UDP-based transport allows for | |||
| such a distributed data collection approach. | such a distributed data collection approach. | |||
| o Firstly, a UDP approach reduces the burden of maintaining a large | * Firstly, a UDP approach reduces the burden of maintaining a large | |||
| amount of active TCP connections at the collector, notably in | amount of active TCP connections at the collector, notably in | |||
| cases where it collects data from the line cards of a large amount | cases where it collects data from the line cards of a large amount | |||
| of networking devices. | of networking devices. | |||
| o Secondly, as no connection state needs to be maintained, UDP | * Secondly, as no connection state needs to be maintained, UDP | |||
| encapsulation can be easily implemented by the hardware of the | encapsulation can be easily implemented by the hardware of the | |||
| publication streamer, which will further improve performance. | publication streamer, which will further improve performance. | |||
| o Ultimately, such advantages allow for a larger data analysis | * Ultimately, such advantages allow for a larger data analysis | |||
| feature set, as more voluminous, finer grained data sets can be | feature set, as more voluminous, finer grained data sets can be | |||
| streamed to the collector. | streamed to the collector. | |||
| The transport described in this document can be used for transmitting | The transport described in this document can be used for transmitting | |||
| notification messages over both IPv4 and IPv6. | notification messages over both IPv4 and IPv6. | |||
| This document describes the notification mechanism. It is intended | This document describes the notification mechanism. It is intended | |||
| to be used in conjunction with [RFC8639], extended by | to be used in conjunction with [RFC8639], extended by | |||
| [I-D.unyte-netconf-distributed-notif]. | [I-D.ietf-netconf-distributed-notif]. | |||
| Section 2 describes the control of the proposed transport mechanism. | Section 2 describes the control of the proposed transport mechanism. | |||
| Section 3 details the notification mechanism and message format. | Section 3 details the notification mechanism and message format. | |||
| Section 4 discusses congestion control. Section 5 covers the | Section 4.1 discusses congestion control. Section 4 covers the | |||
| applicability of the proposed mechanism. | applicability of the proposed mechanism. | |||
| 2. Configured Subscription to UDP-Notif | 2. Configured Subscription to UDP-Notif | |||
| This section describes how the proposed mechanism can be controlled | This section describes how the proposed mechanism can be controlled | |||
| using subscription channels based on NETCONF or RESTCONF. | using subscription channels based on NETCONF or RESTCONF. | |||
| Following the usual approach of Sub-Notif, configured subscriptions | Following the usual approach of Sub-Notif, configured subscriptions | |||
| contain the location information of all the receivers, including the | contain the location information of all the receivers, including the | |||
| IP address and the port number, so that the publisher can actively | IP address and the port number, so that the publisher can actively | |||
| skipping to change at page 4, line 29 ¶ | skipping to change at page 4, line 29 ¶ | |||
| flowing. Then, the notifications can be sent immediately without | flowing. Then, the notifications can be sent immediately without | |||
| delay. All the subscription state notifications, as defined in | delay. All the subscription state notifications, as defined in | |||
| [RFC8639], MUST be encapsulated in separate notification messages. | [RFC8639], MUST be encapsulated in separate notification messages. | |||
| 3. UDP-Based Transport | 3. UDP-Based Transport | |||
| In this section, we specify the UDP-Notif Transport behaviour. | In this section, we specify the UDP-Notif Transport behaviour. | |||
| Section 3.1 describes the general design of the solution. | Section 3.1 describes the general design of the solution. | |||
| Section 3.2 specifies the UDP-Notif message format. Section 3.3 | Section 3.2 specifies the UDP-Notif message format. Section 3.3 | |||
| describes a generic optional sub TLV format. Section 3.3.1 uses such | describes a generic optional sub TLV format. Section 3.3.1 uses such | |||
| options to provide a fragmentation solution for large UDP-Notif | options to provide a segmentation solution for large UDP-Notif | |||
| message payloads. Section 3.4 describes the encoding of the message | message payloads. Section 3.4 describes the encoding of the message | |||
| payload. | payload. | |||
| 3.1. Design Overview | 3.1. Design Overview | |||
| As specified in Sub-Notif, the telemetry data is encapsulated in the | As specified in Sub-Notif, the telemetry data is encapsulated in the | |||
| NETCONF/RESTCONF notification message, which is then encapsulated and | NETCONF/RESTCONF notification message, which is then encapsulated and | |||
| carried using transport protocols such as TLS or HTTP2. Figure 1 | carried using transport protocols such as TLS or HTTP2. Figure 1 | |||
| illustrates the the structure of an UDP-Notif message. | illustrates the the structure of an UDP-Notif message. | |||
| o The Message Header contains information that facilitate the | * The Message Header contains information that facilitate the | |||
| message transmission before deserializing the notification | message transmission before deserializing the notification | |||
| message. | message. | |||
| o Notification Message is the encoded content that the publication | * Notification Message is the encoded content that the publication | |||
| stream transports. The common encoding methods include GPB [1], | stream transports. The common encoding methods include, CBOR | |||
| CBOR [RFC7049], JSON, and XML. | [RFC7049], JSON, and XML. | |||
| [I-D.ietf-netconf-notification-messages] describes the structure | [I-D.ietf-netconf-notification-messages] describes the structure | |||
| of the Notification Message for single notifications and bundled | of the Notification Message for single notifications and bundled | |||
| notifications. | notifications. | |||
| +-------+ +--------------+ +--------------+ | +-------+ +--------------+ +--------------+ | |||
| | UDP | | Message | | Notification | | | UDP | | Message | | Notification | | |||
| | | | Header | | Message | | | | | Header | | Message | | |||
| +-------+ +--------------+ +--------------+ | +-------+ +--------------+ +--------------+ | |||
| Figure 1: UDP-Notif Message Overview | Figure 1: UDP-Notif Message Overview | |||
| 3.2. Format of the UDP-Notif Message Header | 3.2. Format of the UDP-Notif Message Header | |||
| The UDP-Notif Message Header contains information that facilitate the | The UDP-Notif Message Header contains information that facilitate the | |||
| message transmission before deserializing the notification message. | message transmission before deserializing the notification message. | |||
| The data format is shown in Figure 2. | The data format is shown in Figure 2. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-------+-------+---------------+-------------------------------+ | +-----+-+-------+---------------+-------------------------------+ | |||
| | Vers. | ET | Header Len | Message Length | | | Ver |S| ET | Header Len | Message Length | | |||
| +-------+-------+---------------+-------------------------------+ | +-----+-+-------+---------------+-------------------------------+ | |||
| | Message-Generator-ID | | | Observation-Domain-ID | | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| | Message ID | | | Message-ID | | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| ~ Options ~ | ~ Options ~ | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| Figure 2: UDP-Notif Message Header Format | Figure 2: UDP-Notif Message Header Format | |||
| The Message Header contains the following field: | The Message Header contains the following field: | |||
| o Version represents the PDU (Protocol Data Unit) encoding version. | * Ver represents the PDU (Protocol Data Unit) encoding version. The | |||
| The initial version value is 0. | initial version value is 0. | |||
| o ET is a 4 bit identifier to indicate the encoding type used for | ||||
| the Notification Message. 16 types of encoding can be expressed: | ||||
| * 0: GPB; | * S represents the space of encoding type specified in the ET field. | |||
| When S is unset, ET represents the standard encoding types as | ||||
| defined in this document. When S is set, ET represents a private | ||||
| space to be freely used for non standard encodings. | ||||
| * 1: CBOR; | * ET is a 4 bit identifier to indicate the encoding type used for | |||
| the Notification Message. 16 types of encoding can be expressed. | ||||
| When the S bit is unset, the following values apply: | ||||
| * 2: JSON; | - 0: CBOR; | |||
| * 3: XML; | - 1: JSON; | |||
| * others are reserved. | - 2: XML; | |||
| - others are reserved. | ||||
| o Header Length is the length of the message header in octets, | * Header Len is the length of the message header in octets, | |||
| including both the fixed header and the options. | including both the fixed header and the options. | |||
| o Message Length is the total length of the message within one UDP | * Message Length is the total length of the message within one UDP | |||
| datagram, measured in octets, including the message header. | datagram, measured in octets, including the message header. | |||
| o Message-Generator-ID is a 32-bit identifier of the process which | * Observation-Domain-ID is a 32-bit identifier of the Observation | |||
| created the notification message. This allows disambiguation of | Domain that led to the production of the notification message, as | |||
| an information source, such as the identification of different | defined in [I-D.ietf-netconf-notification-messages]. This allows | |||
| line cards sending the notification messages. The source IP | disambiguation of an information source, such as the | |||
| address of the UDP datagrams SHOULD NOT be interpreted as the | identification of different line cards sending the notification | |||
| identifier for the host that originated the UDP-Notif message. | messages. The source IP address of the UDP datagrams SHOULD NOT | |||
| Indeed, the streamer sending the UDP-Notif message could be a | be interpreted as the identifier for the host that originated the | |||
| relay for the actual source of data carried within UDP-Notif | UDP-Notif message. Indeed, the streamer sending the UDP-Notif | |||
| messages. | message could be a relay for the actual source of data carried | |||
| within UDP-Notif messages. | ||||
| o The Message ID is generated continuously by the sender of UDP- | * The Message ID is generated continuously by the sender of UDP- | |||
| Notif messages. Different subscribers share the same Message ID | Notif messages. Different subscribers share the same Message ID | |||
| sequence. | sequence. | |||
| o Options is a variable-length field in the TLV format. When the | * Options is a variable-length field in the TLV format. When the | |||
| Header Length is larger than 12 octets, which is the length of the | Header Length is larger than 12 octets, which is the length of the | |||
| fixed header, Options TLVs follow directly after the fixed message | fixed header, Options TLVs follow directly after the fixed message | |||
| header (i.e., Message ID). The details of the options are | header (i.e., Message ID). The details of the options are | |||
| described in the following section. | described in the following section. | |||
| 3.3. Options | 3.3. Options | |||
| All the options are defined with the following format, illustrated in | All the options are defined with the following format, illustrated in | |||
| Figure 3. | Figure 3. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +---------------+---------------+-------------------------------- | +---------------+---------------+-------------------------------- | |||
| | Type | Length | Variable-length data | | Type | Length | Variable-length data | |||
| +---------------+---------------+-------------------------------- | +---------------+---------------+-------------------------------- | |||
| Figure 3: Generic Option Format | Figure 3: Generic Option Format | |||
| o Type: 1 octet describing the option type; | * Type: 1 octet describing the option type; | |||
| o Length: 1 octet of the TLV Length, including the Type and Length | * Length: 1 octet representing the total number of octets in the | |||
| fields; | TLV, including the Type and Length fields; | |||
| o Variable-length data: 0 or more octets of TLV Value. | * Variable-length data: 0 or more octets of TLV Value. | |||
| 3.3.1. Fragmentation Option | 3.3.1. Segmentation Option | |||
| The UDP payload length is limited to 65535. Application level | The UDP payload length is limited to 65535. Application level | |||
| headers will make the actual payload shorter. Even though binary | headers will make the actual payload shorter. Even though binary | |||
| encodings such as GPB and CBOR may not require more space than what | encodings such as CBOR may not require more space than what is left, | |||
| is left, more voluminous encodings such as JSON and XML may suffer | more voluminous encodings such as JSON and XML may suffer from this | |||
| from this size limitation. Although IPv4 and IPv6 senders can | size limitation. Although IPv4 and IPv6 senders can fragment | |||
| fragment outgoing packets exceeding their Maximum Transmission | outgoing packets exceeding their Maximum Transmission Unit(MTU), | |||
| Unit(MTU), fragmented IP packets may not be desired for operational | fragmented IP packets may not be desired for operational and | |||
| and performance reasons. | performance reasons. | |||
| Consequently, implementations of the mechanism SHOULD provide a | Consequently, implementations of the mechanism SHOULD provide a | |||
| configurable max-fragment-size option to control the maximum size of | configurable max-segment-size option to control the maximum size of a | |||
| a payload. | payload. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +---------------+---------------+ | +---------------+---------------+-----------------------------+-+ | |||
| | Type | Length | | | Type | Length | Segment Number |L| | |||
| +-------------------------------+---------------+-------------+-+ | +---------------+---------------+-----------------------------+-+ | |||
| | Fragment Number |L| | ||||
| +-------------------------------------------------------------+-+ | ||||
| Figure 4: Fragmentation Option Format | Figure 4: Segmentation Option Format | |||
| The Fragmentation Option is to be included when the message content | The Segmentation Option is to be included when the message content is | |||
| is fragmented into multiple pieces. Different fragments of one | segmented into multiple pieces. Different segments of one message | |||
| message share the same Message ID. An illustration is provided in | share the same Message ID. An illustration is provided in Figure 4. | |||
| Figure 4. The fields of this TLV are: | The fields of this TLV are: | |||
| o Type: indicates Fragmentation Option. The Type value is to be | * Type: Generic option field which indicates a Segmentation Option. | |||
| asigned. | The Type value is to be asigned. | |||
| o Length: is a fixed value of 6 octets. | * Length: Generic option field which indicates the length of this | |||
| option. It is a fixed value of 4 octets for the Segmentation | ||||
| Option. | ||||
| o Fragment Number: indicates the sequence number of the current | * Segment Number: 15-bit value indicating the sequence number of the | |||
| fragment. | current segment. The first segment of a segmented message has a | |||
| Segment Number value of 0. | ||||
| o L: is a flag to indicate whether the current fragment is the last | * L: is a flag to indicate whether the current segment is the last | |||
| one. When 0 is set, the current fragment is not the last one, | one of the message. When 0 is set, the current segment is not the | |||
| hence more fragments are expected. When 1 is set, the current | last one. When 1 is set, the current segment is the last one, | |||
| fragment is the last one. | meaning that the total number of segments used to transport this | |||
| message is the value of the current Segment Number + 1. | ||||
| An implementation of this specification MUST NOT rely on IP | ||||
| fragmentation by default to carry large messages. An implementation | ||||
| of this specification MUST either restrict the size of individual | ||||
| messages carried over this protocol, or support the segmentation | ||||
| option. | ||||
| 3.4. Data Encoding | 3.4. Data Encoding | |||
| UDP-Notif message data can be encoded in GPB, CBOR, XML or JSON | UDP-Notif message data can be encoded in CBOR, XML or JSON format. | |||
| format. It is conceivable that additional encodings may be supported | It is conceivable that additional encodings may be supported in the | |||
| in the future. This can be accomplished by augmenting the | future. This can be accomplished by augmenting the subscription data | |||
| subscription data model with additional identity statements used to | model with additional identity statements used to refer to requested | |||
| refer to requested encodings. | encodings. | |||
| Implementation MAY support multiple encoding methods per | Implementation MAY support multiple encoding methods per | |||
| subscription. When bundled notifications are supported between the | subscription. When bundled notifications are supported between the | |||
| publisher and the receiver, only subscribed notifications with the | publisher and the receiver, only subscribed notifications with the | |||
| same encoding can be bundled in a given message. | same encoding can be bundled in a given message. | |||
| 4. Congestion Control | 4. Applicability | |||
| Congestion control mechanisms that respond to congestion by reducing | In this section, we provide an applicability statement for the | |||
| traffic rates and establish a degree of fairness between flows that | proposed mechanism, following the recommendations of [RFC8085]. | |||
| share the same path are vital to the stable operation of the Internet | ||||
| [RFC2914]. While efficient, UDP has no built-in congestion control | ||||
| mechanism. Because streaming telemetry can generate unlimited | ||||
| amounts of data, transferring this data over UDP may be considered | ||||
| problematic. It is not recommended to use the proposed mechanism | ||||
| over congestion-sensitive network paths. The only environments where | ||||
| UDP-Notif is expected to be used are managed networks. The | ||||
| deployments require that the network path has been explicitly | ||||
| provisioned to handle the traffic through traffic engineering | ||||
| mechanisms, such as rate limiting or capacity reservations. The UDP- | ||||
| Notif Message ID can be used to deduce congestion based on packet | ||||
| loss detection. Hence the collector can notify the device to use a | ||||
| lower streaming rate. The interaction to control the streaming rate | ||||
| on the device is out of the scope of this document. | ||||
| 5. Applicability | The proposed mechanism falls in the category of UDP applications | |||
| "designed for use within the network of a single network operator or | ||||
| on networks of an adjacent set of cooperating network operators, to | ||||
| be deployed in controlled environments". Implementations of the | ||||
| proposed mechanism should thus follow the recommendations in place | ||||
| for such specific applications. In the following, we discuss | ||||
| recommendations on congestion control, message size guildelines, | ||||
| reliability considerations. | ||||
| 4.1. Congestion Control | ||||
| The proposed application falls into the category of applications | ||||
| performing transfer of large amounts of data. It is expected that | ||||
| the operator using the solution configures QoS on its related flows. | ||||
| As per [RFC8085], such applications MAY choose not to implement any | ||||
| form of congestion control, but follow the following principles. | ||||
| It is NOT RECOMMENDED to use the proposed mechanism over congestion- | ||||
| sensitive network paths. The only environments where UDP-Notif is | ||||
| expected to be used are managed networks. The deployments require | ||||
| that the network path has been explicitly provisioned to handle the | ||||
| traffic through traffic engineering mechanisms, such as rate limiting | ||||
| or capacity reservations. | ||||
| Implementation of the proposal SHOULD NOT push unlimited amounts of | ||||
| traffic by default, and SHOULD require the users to explicitely | ||||
| configure such a mode of operation. | ||||
| Burst mitigation through packet pacing is RECOMMENDED. Disabling | ||||
| burst mitigation SHOULD require the users to explicitely configure | ||||
| such a mode of operation. | ||||
| Applications SHOULD monitor packet losses and provide means to the | ||||
| user for retrieving information on such losses. The UDP-Notif | ||||
| Message ID can be used to deduce congestion based on packet loss | ||||
| detection. Hence the collector can notify the device to use a lower | ||||
| streaming rate. The interaction to control the streaming rate on the | ||||
| device is out of the scope of this document. | ||||
| 4.2. Message Size | ||||
| [RFC8085] recommends not to rely on IP fragmentation for messages | ||||
| whose size result in IP packets exceeding the MTU along the path. | ||||
| The segmentation option of the current specification permits to | ||||
| perform segmentation of the UDP Notif message content so as to not | ||||
| have to rely on IP fragmentation. Implementation of the current | ||||
| specification SHOULD allow for the configuration of the MTU. | ||||
| 4.3. Reliability | ||||
| The target application for UDP-Notif is the collection of data-plane | The target application for UDP-Notif is the collection of data-plane | |||
| information. The lack of reliability of the data streaming mechanism | information. The lack of reliability of the data streaming mechanism | |||
| is thus considered acceptable as the mechanism is to be used in | is thus considered acceptable as the mechanism is to be used in | |||
| controlled environments, mitigating the risk of information loss, | controlled environments, mitigating the risk of information loss, | |||
| while allowing for publication of very large amounts of data. | while allowing for publication of very large amounts of data. | |||
| Moreover, in this context, sporadic events when incomplete data | Moreover, in this context, sporadic events when incomplete data | |||
| collection is provided is not critical for the proper management of | collection is provided is not critical for the proper management of | |||
| the network. | the network, as information collected for the devices through the | |||
| means of the proposed mechanism is to be often refreshed. | ||||
| 6. A YANG Data Model for Management of UDP-Notif | A collector implementation for this protocol SHOULD deal with | |||
| potential loss of packets carrying a part of segmented payload, by | ||||
| discarding packets that were actually received, but cannot be re- | ||||
| assembled as a complete message within a given amount of time. This | ||||
| time SHOULD be configurable. | ||||
| 5. A YANG Data Model for Management of UDP-Notif | ||||
| The YANG model defined in Section 9 has two leafs augmented into one | The YANG model defined in Section 9 has two leafs augmented into one | |||
| place of Sub-Notif [RFC8639], plus one identity. | place of Sub-Notif [RFC8639], plus one identity. | |||
| module: ietf-udp-subscribed-notifications | module: ietf-udp-subscribed-notifications | |||
| augment /sn:subscriptions/sn:subscription/sn:receivers/sn:receiver: | augment /sn:subscriptions/sn:subscription/sn:receivers/sn:receiver: | |||
| +--rw address inet:ip-address | +--rw address inet:ip-address | |||
| +--rw port inet:port-number | +--rw port inet:port-number | |||
| +--rw enable-fragment? boolean | +--rw enable-fragment? boolean | |||
| +--rw max-fragment-size? uint32 | +--rw max-fragment-size? uint32 | |||
| 7. YANG Module | 6. YANG Module | |||
| <CODE BEGINS> file "ietf-udp-notif@2020-04-27.yang" | ||||
| module ietf-udp-notif { | ||||
| yang-version 1.1; | ||||
| namespace | ||||
| "urn:ietf:params:xml:ns:yang:ietf-udp-notif"; | ||||
| prefix un; | ||||
| import ietf-subscribed-notifications { | ||||
| prefix sn; | ||||
| reference | ||||
| "RFC 8639: Subscription to YANG Notifications"; | ||||
| } | ||||
| import ietf-inet-types { | ||||
| prefix inet; | ||||
| reference | ||||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| organization "IETF NETCONF (Network Configuration) Working Group"; | ||||
| contact | ||||
| "WG Web: <http:/tools.ietf.org/wg/netconf/> | ||||
| WG List: <mailto:netconf@ietf.org> | ||||
| Authors: Guangying Zheng | <CODE BEGINS> file "ietf-udp-notif@2020-04-27.yang" | |||
| <mailto:zhengguangying@huawei.com> | module ietf-udp-notif { | |||
| Tianran Zhou | yang-version 1.1; | |||
| <mailto:zhoutianran@huawei.com> | namespace | |||
| Thomas Graf | "urn:ietf:params:xml:ns:yang:ietf-udp-notif"; | |||
| <mailto:thomas.graf@swisscom.com> | prefix un; | |||
| Pierre Francois | import ietf-subscribed-notifications { | |||
| <mailto:pierre.francois@insa-lyon.fr> | prefix sn; | |||
| Paolo Lucente | reference | |||
| <mailto:paolo@ntt.net>"; | "RFC 8639: Subscription to YANG Notifications"; | |||
| } | ||||
| import ietf-inet-types { | ||||
| prefix inet; | ||||
| reference | ||||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| description | organization "IETF NETCONF (Network Configuration) Working Group"; | |||
| "Defines UDP-Notif as a supported transport for subscribed | contact | |||
| event notifications. | "WG Web: <http:/tools.ietf.org/wg/netconf/> | |||
| WG List: <mailto:netconf@ietf.org> | ||||
| Copyright (c) 2018 IETF Trust and the persons identified as authors | Authors: Guangying Zheng | |||
| of the code. All rights reserved. | <mailto:zhengguangying@huawei.com> | |||
| Tianran Zhou | ||||
| <mailto:zhoutianran@huawei.com> | ||||
| Thomas Graf | ||||
| <mailto:thomas.graf@swisscom.com> | ||||
| Pierre Francois | ||||
| <mailto:pierre.francois@insa-lyon.fr> | ||||
| Paolo Lucente | ||||
| <mailto:paolo@ntt.net>"; | ||||
| Redistribution and use in source and binary forms, with or without | description | |||
| modification, is permitted pursuant to, and subject to the license | "Defines UDP-Notif as a supported transport for subscribed | |||
| terms contained in, the Simplified BSD License set forth in Section | event notifications. | |||
| 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents | ||||
| (https://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see the RFC | Copyright (c) 2018 IETF Trust and the persons identified as authors | |||
| of the code. All rights reserved. | ||||
| itself for full legal notices."; | Redistribution and use in source and binary forms, with or without | |||
| modification, is permitted pursuant to, and subject to the license | ||||
| terms contained in, the Simplified BSD License set forth in Section | ||||
| 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents | ||||
| (https://trustee.ietf.org/license-info). | ||||
| revision 2020-04-27 { | This version of this YANG module is part of RFC XXXX; see the RFC | |||
| description | ||||
| "Initial version"; | ||||
| reference | ||||
| "RFC XXXX: UDP-based Notifications for Streaming Telemetry"; | ||||
| } | ||||
| identity udp-notif { | itself for full legal notices."; | |||
| base sn:transport; | ||||
| description | ||||
| "UDP-Notif is used as transport for notification messages | ||||
| and state change notifications."; | ||||
| } | ||||
| identity encode-cbor { | revision 2020-04-27 { | |||
| base sn:encoding; | description | |||
| description | "Initial version"; | |||
| "Encode data using CBOR as described in RFC 7049."; | reference | |||
| reference | "RFC XXXX: UDP-based Notifications for Streaming Telemetry"; | |||
| "RFC 7049: Concise Binary Object Representation"; | } | |||
| } | ||||
| identity encode-gpb { | identity udp-notif { | |||
| base sn:encoding; | base sn:transport; | |||
| description | description | |||
| "Encode data using GPB."; | "UDP-Notif is used as transport for notification messages | |||
| } | and state change notifications."; | |||
| } | ||||
| grouping target-receiver { | identity encode-cbor { | |||
| description | base sn:encoding; | |||
| "Provides a reusable description of a UDP-Notif target receiver."; | description | |||
| leaf address { | "Encode data using CBOR as described in RFC 7049."; | |||
| type inet:ip-address; | reference | |||
| mandatory true; | "RFC 7049: Concise Binary Object Representation"; | |||
| description | } | |||
| "IP address of target UDP-Notif receiver, which can be an | ||||
| IPv4 address or an IPV6 address."; | ||||
| } | ||||
| leaf port { | ||||
| type inet:port-number; | ||||
| mandatory true; | ||||
| description | ||||
| "Port number of target UDP-Notif receiver, if not specified, | ||||
| the system should use default port number."; | ||||
| } | grouping target-receiver { | |||
| description | ||||
| "Provides a reusable description of a UDP-Notif target receiver."; | ||||
| leaf address { | ||||
| type inet:ip-address; | ||||
| mandatory true; | ||||
| description | ||||
| "IP address of target UDP-Notif receiver, which can be an | ||||
| IPv4 address or an IPV6 address."; | ||||
| } | ||||
| leaf port { | ||||
| type inet:port-number; | ||||
| mandatory true; | ||||
| description | ||||
| "Port number of target UDP-Notif receiver, if not specified, | ||||
| the system should use default port number."; | ||||
| } | ||||
| leaf enable-fragment { | leaf enable-fragment { | |||
| type boolean; | type boolean; | |||
| default false; | default false; | |||
| description | description | |||
| "The switch for the fragment feature. When disabled, the | "The switch for the fragment feature. When disabled, the | |||
| publisher will not allow fragment for a very large data"; | publisher will not allow fragment for a very large data"; | |||
| } | } | |||
| leaf max-fragment-size { | leaf max-fragment-size { | |||
| when "../enable-fragment = true"; | when "../enable-fragment = true"; | |||
| type uint32; | type uint32; | |||
| description "UDP-Notif provides a configurable max-fragment-size | description "UDP-Notif provides a configurable max-fragment-size | |||
| to control the size of each message."; | to control the size of each message."; | |||
| } | } | |||
| } | } | |||
| augment "/sn:subscriptions/sn:subscription/sn:receivers/sn:receiver" { | augment "/sn:subscriptions/sn:subscription/sn:receivers/sn:receiver" { | |||
| description | description | |||
| "This augmentation allows UDP-Notif specific parameters to be | "This augmentation allows UDP-Notif specific parameters to be | |||
| exposed for a subscription."; | exposed for a subscription."; | |||
| uses target-receiver; | uses target-receiver; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 8. IANA Considerations | 7. IANA Considerations | |||
| This RFC requests that IANA assigns one UDP port number in the | This RFC requests that IANA assigns one UDP port number in the | |||
| "Registered Port Numbers" range with the service name "udp-notif". | "Registered Port Numbers" range with the service name "udp-notif". | |||
| This port will be the default port for the UDP-based notification | This port will be the default port for the UDP-based notification | |||
| Streaming Telemetry (UDP-Notif) for NETCONF and RESTCONF. Below is | Streaming Telemetry (UDP-Notif) for NETCONF and RESTCONF. Below is | |||
| the registration template following the rules of [RFC6335]. | the registration template following the rules of [RFC6335]. | |||
| Service Name: udp-notif | Service Name: udp-notif | |||
| Transport Protocol(s): UDP | Transport Protocol(s): UDP | |||
| skipping to change at page 11, line 51 ¶ | skipping to change at page 13, line 4 ¶ | |||
| Transport Protocol(s): UDP | Transport Protocol(s): UDP | |||
| Assignee: IESG <iesg@ietf.org> | Assignee: IESG <iesg@ietf.org> | |||
| Contact: IETF Chair <chair@ietf.org> | Contact: IETF Chair <chair@ietf.org> | |||
| Description: UDP-based Publication Streaming Telemetry | Description: UDP-based Publication Streaming Telemetry | |||
| Reference: RFC XXXX | Reference: RFC XXXX | |||
| Port Number: PORT-X | Port Number: PORT-X | |||
| IANA is requested to assign a new URI from the IETF XML Registry | IANA is requested to assign a new URI from the IETF XML Registry | |||
| [RFC3688]. The following URI is suggested: | [RFC3688]. The following URI is suggested: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-udp-notif | URI: urn:ietf:params:xml:ns:yang:ietf-udp-notif | |||
| Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
| XML: N/A; the requested URI is an XML namespace. | XML: N/A; the requested URI is an XML namespace. | |||
| This document also requests a new YANG module name in the YANG Module | This document also requests a new YANG module name in the YANG Module | |||
| Names registry [RFC7950] with the following suggestion: | Names registry [RFC7950] with the following suggestion: | |||
| name: ietf-udp-notif | name: ietf-udp-notif | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-udp-notif | namespace: urn:ietf:params:xml:ns:yang:ietf-udp-notif | |||
| prefix: un | prefix: un | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 9. Security Considerations | 8. Security Considerations | |||
| TBD | TBD | |||
| 10. Acknowledgements | 9. Acknowledgements | |||
| The authors of this documents would like to thank Alexander Clemm, | The authors of this documents would like to thank Alexander Clemm, | |||
| Eric Voit, Huiyang Yang, Kent Watsen, Mahesh Jethanandani, Stephane | Eric Voit, Huiyang Yang, Kent Watsen, Mahesh Jethanandani, Stephane | |||
| Frenot, Timothy Carey, Tim Jenkins, and Yunan Gu for their | Frenot, Timothy Carey, Tim Jenkins, and Yunan Gu for their | |||
| constructive suggestions for improving this document. | constructive suggestions for improving this document. | |||
| 11. References | 10. References | |||
| 11.1. Normative References | 10.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, | [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, | |||
| RFC 2914, DOI 10.17487/RFC2914, September 2000, | RFC 2914, DOI 10.17487/RFC2914, September 2000, | |||
| <https://www.rfc-editor.org/info/rfc2914>. | <https://www.rfc-editor.org/info/rfc2914>. | |||
| skipping to change at page 13, line 43 ¶ | skipping to change at page 14, line 47 ¶ | |||
| October 2013, <https://www.rfc-editor.org/info/rfc7049>. | October 2013, <https://www.rfc-editor.org/info/rfc7049>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| [RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage | ||||
| Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, | ||||
| March 2017, <https://www.rfc-editor.org/info/rfc8085>. | ||||
| [RFC8639] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard, | [RFC8639] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard, | |||
| E., and A. Tripathy, "Subscription to YANG Notifications", | E., and A. Tripathy, "Subscription to YANG Notifications", | |||
| RFC 8639, DOI 10.17487/RFC8639, September 2019, | RFC 8639, DOI 10.17487/RFC8639, September 2019, | |||
| <https://www.rfc-editor.org/info/rfc8639>. | <https://www.rfc-editor.org/info/rfc8639>. | |||
| [RFC8640] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard, | [RFC8640] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard, | |||
| E., and A. Tripathy, "Dynamic Subscription to YANG Events | E., and A. Tripathy, "Dynamic Subscription to YANG Events | |||
| and Datastores over NETCONF", RFC 8640, | and Datastores over NETCONF", RFC 8640, | |||
| DOI 10.17487/RFC8640, September 2019, | DOI 10.17487/RFC8640, September 2019, | |||
| <https://www.rfc-editor.org/info/rfc8640>. | <https://www.rfc-editor.org/info/rfc8640>. | |||
| [RFC8650] Voit, E., Rahman, R., Nilsen-Nygaard, E., Clemm, A., and | [RFC8650] Voit, E., Rahman, R., Nilsen-Nygaard, E., Clemm, A., and | |||
| A. Bierman, "Dynamic Subscription to YANG Events and | A. Bierman, "Dynamic Subscription to YANG Events and | |||
| Datastores over RESTCONF", RFC 8650, DOI 10.17487/RFC8650, | Datastores over RESTCONF", RFC 8650, DOI 10.17487/RFC8650, | |||
| November 2019, <https://www.rfc-editor.org/info/rfc8650>. | November 2019, <https://www.rfc-editor.org/info/rfc8650>. | |||
| 11.2. Informative References | 10.2. Informative References | |||
| [I-D.ietf-netconf-distributed-notif] | ||||
| Zhou, T., Zheng, G., Voit, E., Graf, T., and P. Francois, | ||||
| "Subscription to Distributed Notifications", Work in | ||||
| Progress, Internet-Draft, draft-ietf-netconf-distributed- | ||||
| notif-01, June 2020, <https://tools.ietf.org/html/draft- | ||||
| ietf-netconf-distributed-notif-01>. | ||||
| [I-D.ietf-netconf-https-notif] | [I-D.ietf-netconf-https-notif] | |||
| Jethanandani, M. and K. Watsen, "An HTTPS-based Transport | Jethanandani, M. and K. Watsen, "An HTTPS-based Transport | |||
| for Configured Subscriptions", draft-ietf-netconf-https- | for Configured Subscriptions", Work in Progress, Internet- | |||
| notif-04 (work in progress), July 2020. | Draft, draft-ietf-netconf-https-notif-04, 27 July 2020, | |||
| <http://www.ietf.org/internet-drafts/draft-ietf-netconf- | ||||
| https-notif-04.txt>. | ||||
| [I-D.ietf-netconf-notification-messages] | [I-D.ietf-netconf-notification-messages] | |||
| Voit, E., Jenkins, T., Birkholz, H., Bierman, A., and A. | Voit, E., Jenkins, T., Birkholz, H., Bierman, A., and A. | |||
| Clemm, "Notification Message Headers and Bundles", draft- | Clemm, "Notification Message Headers and Bundles", Work in | |||
| ietf-netconf-notification-messages-08 (work in progress), | Progress, Internet-Draft, draft-ietf-netconf-notification- | |||
| November 2019. | messages-08, 17 November 2019, <http://www.ietf.org/ | |||
| internet-drafts/draft-ietf-netconf-notification-messages- | ||||
| [I-D.unyte-netconf-distributed-notif] | 08.txt>. | |||
| Zhou, T., Zheng, G., Voit, E., Graf, T., and P. Francois, | ||||
| "Subscription to Distributed Notifications", draft-unyte- | ||||
| netconf-distributed-notif-00 (work in progress), June | ||||
| 2020. | ||||
| 11.3. URIs | ||||
| [1] https://developers.google.com/protocol-buffers/ | ||||
| Authors' Addresses | Authors' Addresses | |||
| Guangying Zheng | Guangying Zheng | |||
| Huawei | Huawei | |||
| 101 Yu-Hua-Tai Software Road | 101 Yu-Hua-Tai Software Road | |||
| Nanjing, Jiangsu | Nanjing | |||
| Jiangsu, | ||||
| China | China | |||
| Email: zhengguangying@huawei.com | Email: zhengguangying@huawei.com | |||
| Tianran Zhou | Tianran Zhou | |||
| Huawei | Huawei | |||
| 156 Beiqing Rd., Haidian District | 156 Beiqing Rd., Haidian District | |||
| Beijing | Beijing | |||
| China | China | |||
| skipping to change at page 15, line 4 ¶ | skipping to change at page 16, line 20 ¶ | |||
| Email: zhengguangying@huawei.com | Email: zhengguangying@huawei.com | |||
| Tianran Zhou | Tianran Zhou | |||
| Huawei | Huawei | |||
| 156 Beiqing Rd., Haidian District | 156 Beiqing Rd., Haidian District | |||
| Beijing | Beijing | |||
| China | China | |||
| Email: zhoutianran@huawei.com | Email: zhoutianran@huawei.com | |||
| Thomas Graf | Thomas Graf | |||
| Swisscom | Swisscom | |||
| Binzring 17 | Binzring 17 | |||
| Zuerich 8045 | CH- Zuerich 8045 | |||
| Switzerland | Switzerland | |||
| Email: thomas.graf@swisscom.com | Email: thomas.graf@swisscom.com | |||
| Pierre Francois | Pierre Francois | |||
| INSA-Lyon | INSA-Lyon | |||
| Lyon | Lyon | |||
| France | France | |||
| Email: pierre.francois@insa-lyon.fr | Email: pierre.francois@insa-lyon.fr | |||
| Paolo Lucente | Paolo Lucente | |||
| NTT | NTT | |||
| Siriusdreef 70-72 | Siriusdreef 70-72 | |||
| Hoofddorp, WT 2132 | Hoofddorp, WT 2132 | |||
| NL | Netherlands | |||
| Email: paolo@ntt.net | Email: paolo@ntt.net | |||
| End of changes. 83 change blocks. | ||||
| 271 lines changed or deleted | 323 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||