rfc9984.original   rfc9984.txt 
Network Working Group A. Huang-Feng Internet Engineering Task Force (IETF) A. Huang-Feng
Internet-Draft P. Francois Request for Comments: 9984 P. Francois
Intended status: Standards Track INSA-Lyon Category: Standards Track INSA-Lyon
Expires: 19 June 2026 K. Watsen ISSN: 2070-1721 K. Watsen
Watsen Networks Watsen Networks
16 December 2025 May 2026
YANG Groupings for UDP Clients and UDP Servers YANG Groupings for UDP Clients and UDP Servers
draft-ietf-netconf-udp-client-server-10
Abstract Abstract
This document defines two YANG 1.1 modules with reusable groupings This document defines two YANG 1.1 modules with reusable groupings
for managing UDP clients and UDP servers. for managing UDP clients and UDP servers.
Notes to the RFC editor
This note is to be removed before publishing as an RFC.
Please replace "RFC XXXX" with the assigned RFC number prior to
publication. Note that there are also several occurrences of "RFC
XXXX" in the YANG modules.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
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 This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 19 June 2026. 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/rfc9984.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2026 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 (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language
1.2. Adherence to the NMDA . . . . . . . . . . . . . . . . . . 3 1.2. Adherence to the NMDA
1.3. Conventions . . . . . . . . . . . . . . . . . . . . . . . 3 1.3. Conventions
2. The "ietf-udp-client" Module . . . . . . . . . . . . . . . . 3 2. The "ietf-udp-client" Module
2.1. Data Model Overview . . . . . . . . . . . . . . . . . . . 3 2.1. Data Model Overview
2.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Example Usage
2.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 5 2.3. YANG Module
3. The "ietf-udp-server" Module . . . . . . . . . . . . . . . . 7 3. The "ietf-udp-server" Module
3.1. Data Model Overview . . . . . . . . . . . . . . . . . . . 7 3.1. Data Model Overview
3.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 8 3.2. Example Usage
3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 9 3.3. YANG Module
4. Security Considerations . . . . . . . . . . . . . . . . . . . 11 4. Security Considerations
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 5. IANA Considerations
5.1. URI . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.1. The "IETF XML Registry"
5.2. YANG Module Name . . . . . . . . . . . . . . . . . . . . 12 5.2. The "YANG Module Names" Registry
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 6. References
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 6.1. Normative References
7.1. Normative References . . . . . . . . . . . . . . . . . . 12 6.2. Informative References
7.2. Informative References . . . . . . . . . . . . . . . . . 13 Acknowledgements
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses
1. Introduction 1. Introduction
This document defines two YANG 1.1 [RFC7950] modules with reusable This document defines two YANG 1.1 [RFC7950] modules with reusable
groupings for managing UDP clients and UDP servers [RFC768]. These groupings for managing UDP clients and UDP servers [RFC768]. These
modules may be used directly (e.g., define a specific UDP client or modules may be used directly (e.g., define a specific UDP client or
UDP server) or in conjunction with the configuration defined for UDP server) or in conjunction with the configuration defined for
higher level protocols that depend on UDP. higher-level protocols that depend on UDP.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
1.2. Adherence to the NMDA 1.2. Adherence to the NMDA
This document is compliant with the Network Management Datastore This document is compliant with the Network Management Datastore
Architecture (NMDA) [RFC8342]. It does not define any protocol Architecture (NMDA) [RFC8342]. It does not define any protocol-
accessible nodes that are "config false". accessible nodes that are "config false".
1.3. Conventions 1.3. Conventions
Various examples in this document use the XML [W3C.REC-xml-20081126] Various examples in this document use the XML [W3C.REC-xml-20081126]
encoding. Other encodings, such as JSON [RFC8259], could encoding. Other encodings, such as JSON [RFC8259], could
alternatively be used. alternatively be used.
2. The "ietf-udp-client" Module 2. The "ietf-udp-client" Module
This section defines a YANG 1.1 module called "ietf-udp-client". This section defines a YANG 1.1 module called "ietf-udp-client".
This YANG module defines the "udp-client" grouping for providing UDP This YANG module defines the "udp-client" grouping for providing UDP
clients with remote server information. clients with remote server information.
Section 2.1 provides the overview of the YANG module. An example of Section 2.1 provides the overview of the YANG module. An example of
usage is illustrated in Section 2.2, while Section 2.3 defines the usage is illustrated in Section 2.2. Section 2.3 defines the YANG
YANG module itself. module itself.
2.1. Data Model Overview 2.1. Data Model Overview
This section provides an overview of the features and the grouping This section provides an overview of the features and the grouping
defined in the "ietf-udp-client" YANG module. defined in the "ietf-udp-client" YANG module.
2.1.1. Features 2.1.1. Features
The "ietf-udp-client" module defines the following "feature" The "ietf-udp-client" module defines the following "feature"
statement: statement:
Features: Features:
+-- local-binding +-- local-binding
The diagram above uses syntax that is similar to but not defined in The diagram above uses syntax that is similar to the syntax used in
[RFC8340]; but the syntax from the diagram is not defined in
[RFC8340]. [RFC8340].
This feature indicates that the client supports configuring local This feature indicates that the client supports configuring local
bindings (i.e., the local address and local port number) for UDP bindings (i.e., the local address and local port number) for UDP
clients. clients.
2.1.2. The "udp-client" Grouping 2.1.2. The "udp-client" Grouping
The following tree diagram [RFC8340] illustrates the tree structure The following tree diagram [RFC8340] illustrates the tree structure
of the "udp-client" grouping: of the "udp-client" grouping:
skipping to change at page 4, line 22 skipping to change at line 150
The description of these parameters is provided below: The description of these parameters is provided below:
* The "remote-address", which is mandatory, may be configured as an * The "remote-address", which is mandatory, may be configured as an
IPv4 address, an IPv6 address, or a hostname. The resolved IPv4 address, an IPv6 address, or a hostname. The resolved
address should be compatible with the local address family, if address should be compatible with the local address family, if
also provided. also provided.
* The "remote-port" is defined with neither a "default" nor a * The "remote-port" is defined with neither a "default" nor a
"mandatory" statement. YANG modules using this grouping SHOULD "mandatory" statement. YANG modules using this grouping SHOULD
refine the grouping with a "default" statement, when the port refine the grouping with a "default" statement when the port
number is well-known (e.g., a port number allocated by IANA), or number is well-known (e.g., a port number allocated by IANA) or
with a "mandatory" statement, if a port number needs to always be with a "mandatory" statement if a port number needs to always be
configured. This MAY be ignored when the port number is neither configured. This MAY be ignored when the port number is neither
well-known nor mandatory to configure, such as might be the case well-known nor mandatory to configure, such as might be the case
when this grouping is used by another grouping. when this grouping is used by another grouping.
* The "local-address", which is enabled by the "local-binding" * The "local-address", which is enabled by the "local-binding"
feature, may be configured as an IPv4 address, an IPv6 address, or feature, may be configured as an IPv4 address, an IPv6 address, or
a wildcard value. In normal operation, the local and configured a wildcard value. In normal operation, the local and configured
remote addresses SHOULD be from the same address family. remote addresses SHOULD be from the same address family.
Differences between address families may occur in abnormal or Differences between address families may occur in abnormal or
error conditions and are therefore allowed to be reported. error conditions; therefore, they are allowed to be reported.
* The "local-port", which depends on the "local-binding" feature, is * The "local-port", which depends on the "local-binding" feature, is
not mandatory. Its default value is "0", indicating that the not mandatory. Its default value is "0", indicating that the
operating system can select an arbitrary port number. operating system can select an arbitrary port number.
2.2. Example Usage 2.2. Example Usage
This section presents an example of usage of the "udp-client" This section presents an example of usage of the "udp-client"
grouping. grouping.
skipping to change at page 5, line 17 skipping to change at line 185
<udp-client xmlns="urn:ietf:params:xml:ns:yang:ietf-udp-client"> <udp-client xmlns="urn:ietf:params:xml:ns:yang:ietf-udp-client">
<remote-address>www.example.com</remote-address> <remote-address>www.example.com</remote-address>
<remote-port>10000</remote-port> <remote-port>10000</remote-port>
<local-address>192.0.2.2</local-address> <local-address>192.0.2.2</local-address>
<local-port>12345</local-port> <local-port>12345</local-port>
</udp-client> </udp-client>
2.3. YANG Module 2.3. YANG Module
This module imports types defined in [I-D.ietf-netmod-rfc6991-bis]. This module imports types defined in [RFC9911].
<CODE BEGINS> file "ietf-udp-client@2025-12-16.yang" <CODE BEGINS> file "ietf-udp-client@2026-05-13.yang"
module ietf-udp-client { module ietf-udp-client {
yang-version 1.1; yang-version 1.1;
namespace namespace "urn:ietf:params:xml:ns:yang:ietf-udp-client";
"urn:ietf:params:xml:ns:yang:ietf-udp-client";
prefix udpc; prefix udpc;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 9911: Common YANG Data Types"; "RFC 9911: Common YANG Data Types";
} }
organization "IETF NETCONF (Network Configuration) Working Group"; organization
"IETF NETCONF (Network Configuration) Working Group";
contact contact
"WG Web: <https://datatracker.ietf.org/group/netconf/> "WG Web: <https://datatracker.ietf.org/group/netconf/>
WG List: <mailto:netconf@ietf.org> WG List: <mailto:netconf@ietf.org>
Authors: Alex Huang Feng Authors: Alex Huang Feng
<mailto:alex.huang-feng@insa-lyon.fr> <mailto:alex.huang-feng@insa-lyon.fr>
Pierre Francois Pierre Francois
<mailto:pierre.francois@insa-lyon.fr>"; <mailto:pierre.francois@insa-lyon.fr>";
description description
"Defines a generic grouping for UDP-based client applications. "Defines a generic grouping for UDP-based client applications.
Copyright (c) 2025 IETF Trust and the persons identified as Copyright (c) 2026 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or
modification, is permitted pursuant to, and subject to the license without modification, is permitted pursuant to, and subject to
terms contained in, the Revised BSD License set forth in Section the license terms contained in, the Revised BSD License set
4.c of the IETF Trust's Legal Provisions Relating to IETF Documents forth in Section 4.c of the IETF Trust's Legal Provisions
(https://trustee.ietf.org/license-info). Relating to IETF Documents
(https://trustee.ietf.org/license-info).
All revisions of IETF and IANA published modules can be found All revisions of IETF and IANA published modules can be found
at the YANG Parameters registry group at the YANG Parameters registry group
(https://www.iana.org/assignments/yang-parameters). (https://www.iana.org/assignments/yang-parameters).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC 9984; see
the RFC itself for full legal notices. the RFC itself for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as 'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here."; they appear in all capitals, as shown here.";
revision 2025-12-16 { revision 2026-05-13 {
description description
"Initial revision"; "Initial revision";
reference reference
"RFC XXXX: YANG Groupings for UDP Clients and UDP Servers"; "RFC 9984: YANG Groupings for UDP Clients and UDP Servers";
} }
feature local-binding { feature local-binding {
description description
"Indicates that the UDP client supports configuring local "Indicates that the UDP client supports configuring local
bindings (i.e., the local address and local port number) bindings (i.e., the local address and local port number)
for UDP clients."; for UDP clients.";
} }
grouping udp-client { grouping udp-client {
description description
"A reusable grouping for UDP clients. "A reusable grouping for UDP clients.
Note that this grouping uses fairly typical descendant Note that this grouping uses fairly typical descendant
node names such that a stack of 'uses' statements will node names such that a stack of 'uses' statements will
have name conflicts. It is intended that the consuming have name conflicts. It is intended that the consuming
data model will resolve the issue (e.g., by wrapping data model will resolve the issue (e.g., by wrapping
the 'uses' statement in a container called the 'uses' statement in a container called
'udp-client-parameters'). This model purposely does 'udp-client-parameters'). This module purposely does
not do this itself so as to provide maximum flexibility not do this itself so as to provide maximum flexibility
to consuming models."; to consuming models.";
leaf remote-address { leaf remote-address {
type inet:host; type inet:host;
mandatory true; mandatory true;
description description
"The IP address or hostname of the remote UDP server."; "The IP address or hostname of the remote UDP server.";
} }
leaf remote-port { leaf remote-port {
type inet:port-number; type inet:port-number;
description description
"The port number of the remote UDP server."; "The port number of the remote UDP server.";
} }
leaf local-address { leaf local-address {
if-feature "local-binding"; if-feature "local-binding";
type inet:ip-address; type inet:ip-address;
description description
"The local IP address to bind to when sending UDP "The local IP address to bind to when sending UDP
datagrams to the remote server. INADDR_ANY ('0.0.0.0') or datagrams to the remote server. INADDR_ANY ('0.0.0.0') or
INADDR6_ANY ('0:0:0:0:0:0:0:0' a.k.a. '::') may be used INADDR6_ANY ('0:0:0:0:0:0:0:0' a.k.a. '::') may be used
so that the client can bind to any IPv4 or IPv6 address. so that the client can bind to any IPv4 or IPv6 address.
In normal operation, the local and configured In normal operation, the local and configured
remote addresses SHOULD be from the same address family. remote addresses SHOULD be from the same address family.
Differences between address families may occur in Differences between address families may occur in
abnormal or error conditions and are therefore allowed to abnormal or error conditions; therefore, they are allowed to
be reported."; be reported.";
} }
leaf local-port { leaf local-port {
if-feature "local-binding"; if-feature "local-binding";
type inet:port-number; type inet:port-number;
default "0"; default "0";
description description
"The local port number to bind to when sending UDP "The local port number to bind to when sending UDP
datagrams to the remote server. The port number '0', datagrams to the remote server. The port number '0',
which is the default value, indicates that any available which is the default value, indicates that any available
local port number may be used."; local port number may be used.";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
3. The "ietf-udp-server" Module 3. The "ietf-udp-server" Module
This section defines a YANG 1.1 module called "ietf-udp-server". This section defines a YANG 1.1 module called "ietf-udp-server".
This YANG module defines the "udp-server" grouping for managing UDP This YANG module defines the "udp-server" grouping for managing UDP
servers. servers.
Section 3.1 provides an overview of the "ietf-udp-server" YANG Section 3.1 provides an overview of the "ietf-udp-server" YANG
module. An example of usage is illustrated in Section 3.2 while module. An example of usage is illustrated in Section 3.2.
Section 3.3 defines the YANG module itself. Section 3.3 defines the YANG module itself.
3.1. Data Model Overview 3.1. Data Model Overview
This section provides an overview of the grouping defined in the This section provides an overview of the grouping defined in the
"ietf-udp-server" module. "ietf-udp-server" module.
3.1.1. The "udp-server" Grouping 3.1.1. The "udp-server" Grouping
The following tree diagram [RFC8340] illustrates the structure of The following tree diagram [RFC8340] illustrates the tree structure
"udp-server" grouping: of "udp-server" grouping:
module: ietf-udp-server module: ietf-udp-server
grouping udp-server: grouping udp-server:
+-- local-bind* [local-address] +-- local-bind* [local-address]
+-- local-address inet:ip-address +-- local-address inet:ip-address
+-- local-port? inet:port-number +-- local-port? inet:port-number
The description of these parameters is provided below: The description of these parameters is provided below:
* The "local-address", which is mandatory, may be configured as an * The "local-address", which is mandatory, may be configured as an
IPv4 address, an IPv6 address, or a wildcard value. IPv4 address, an IPv6 address, or a wildcard value.
* The "local-port" is defined with neither a "default" nor a * The "local-port" is defined with neither a "default" nor a
"mandatory" statement. YANG modules using this grouping SHOULD "mandatory" statement. YANG modules using this grouping SHOULD
refine the grouping with a "default" statement, when the port refine the grouping with a "default" statement when the port
number is well-known (e.g., a port number allocated by IANA), or number is well-known (e.g., a port number allocated by IANA) or
with a "mandatory" statement, if a port number needs to always be with a "mandatory" statement if a port number needs to always be
configured. This MAY be ignored when the port number is neither configured. This MAY be ignored when the port number is neither
well-known nor mandatory to configure, such as might be the case well-known nor mandatory to configure, such as might be the case
when this grouping is used by another grouping. when this grouping is used by another grouping.
3.2. Example Usage 3.2. Example Usage
This section presents two examples of usage of the "udp-server" This section presents two examples of usage of the "udp-server"
grouping. grouping.
This following shows an example of a server configured for listening The following shows an example of a server configured for listening
to an IPv4 address: to an IPv4 address:
<!-- The outermost element below doesn't exist in the data model. --> <!-- The outermost element below doesn't exist in the data model. -->
<!-- It simulates if the "grouping" were a "container" instead. --> <!-- It simulates if the "grouping" were a "container" instead. -->
<udp-server xmlns="urn:ietf:params:xml:ns:yang:ietf-udp-server"> <udp-server xmlns="urn:ietf:params:xml:ns:yang:ietf-udp-server">
<local-bind> <local-bind>
<local-address>192.0.2.2</local-address> <local-address>192.0.2.2</local-address>
<local-port>49152</local-port> <local-port>49152</local-port>
</local-bind> </local-bind>
</udp-server> </udp-server>
This following shows an example of a server configured to listen to The following shows an example of a server configured for listening
an IPv4 and IPv6 together: to an IPv4 and IPv6 together:
<!-- The outermost element below doesn't exist in the data model. --> <!-- The outermost element below doesn't exist in the data model. -->
<!-- It simulates if the "grouping" were a "container" instead. --> <!-- It simulates if the "grouping" were a "container" instead. -->
<udp-server xmlns="urn:ietf:params:xml:ns:yang:ietf-udp-server"> <udp-server xmlns="urn:ietf:params:xml:ns:yang:ietf-udp-server">
<local-bind> <local-bind>
<local-address>192.0.2.2</local-address> <local-address>192.0.2.2</local-address>
<local-port>49152</local-port> <local-port>49152</local-port>
</local-bind> </local-bind>
<local-bind> <local-bind>
<local-address>2001:db8::0</local-address> <local-address>2001:db8::0</local-address>
<local-port>49153</local-port> <local-port>49153</local-port>
</local-bind> </local-bind>
</udp-server> </udp-server>
3.3. YANG Module 3.3. YANG Module
The "ietf-udp-server" imports types defined in This module imports types defined in [RFC9911].
[I-D.ietf-netmod-rfc6991-bis].
<CODE BEGINS> file "ietf-udp-server@2025-12-16.yang" <CODE BEGINS> file "ietf-udp-server@2026-05-13.yang"
module ietf-udp-server { module ietf-udp-server {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-udp-server"; namespace "urn:ietf:params:xml:ns:yang:ietf-udp-server";
prefix udps; prefix udps;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 9911: Common YANG Data Types"; "RFC 9911: Common YANG Data Types";
} }
skipping to change at page 9, line 49 skipping to change at line 406
"WG Web: <https://datatracker.ietf.org/group/netconf/> "WG Web: <https://datatracker.ietf.org/group/netconf/>
WG List: <mailto:netconf@ietf.org> WG List: <mailto:netconf@ietf.org>
Authors: Alex Huang Feng Authors: Alex Huang Feng
<mailto:alex.huang-feng@insa-lyon.fr> <mailto:alex.huang-feng@insa-lyon.fr>
Pierre Francois Pierre Francois
<mailto:pierre.francois@insa-lyon.fr>"; <mailto:pierre.francois@insa-lyon.fr>";
description description
"Defines a generic grouping for UDP-based server applications. "Defines a generic grouping for UDP-based server applications.
Copyright (c) 2025 IETF Trust and the persons identified as Copyright (c) 2026 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or
modification, is permitted pursuant to, and subject to the license without modification, is permitted pursuant to, and subject to
terms contained in, the Revised BSD License set forth in Section the license terms contained in, the Revised BSD License set
4.c of the IETF Trust's Legal Provisions Relating to IETF Documents forth in Section 4.c of the IETF Trust's Legal Provisions
(https://trustee.ietf.org/license-info). Relating to IETF Documents
(https://trustee.ietf.org/license-info).
All revisions of IETF and IANA published modules can be found All revisions of IETF and IANA published modules can be found
at the YANG Parameters registry group at the YANG Parameters registry group
(https://www.iana.org/assignments/yang-parameters). (https://www.iana.org/assignments/yang-parameters).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC 9984; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2025-12-16 { revision 2026-05-13 {
description description
"Initial revision"; "Initial revision";
reference reference
"RFC XXXX: YANG Groupings for UDP Clients and UDP Servers"; "RFC 9984: YANG Groupings for UDP Clients and UDP Servers";
} }
grouping udp-server { grouping udp-server {
description description
"Provides a reusable grouping for managing UDP servers. "A reusable grouping for managing UDP servers.
Note that this grouping uses fairly typical descendant Note that this grouping uses fairly typical descendant
node names such that a stack of 'uses' statements will node names such that a stack of 'uses' statements will
have name conflicts. It is intended that the consuming have name conflicts. It is intended that the consuming
data model will resolve the issue (e.g., by wrapping data model will resolve the issue (e.g., by wrapping
the 'uses' statement in a container called the 'uses' statement in a container called
'udp-server-parameters'). This model purposely does 'udp-server-parameters'). This module purposely does
not do this itself so as to provide maximum flexibility not do this itself so as to provide maximum flexibility
to consuming models."; to consuming models.";
list local-bind { list local-bind {
key "local-address"; key "local-address";
min-elements 1; min-elements 1;
description description
"A list of bind (listen) points for this server "A list of bind (listen) points for this server
instance. A server instance may have multiple instance. A server instance may have multiple
bind points to support, e.g., the same port number in bind points to support, e.g., the same port number in
different address families or different port numbers different address families or different port numbers
in the same address family."; in the same address family.";
leaf local-address { leaf local-address {
type inet:ip-address; type inet:ip-address;
mandatory true; mandatory true;
description description
"The local IP address to listen on for incoming "The local IP address to listen on for incoming
UDP datagrams. INADDR_ANY ('0.0.0.0') or UDP datagrams. INADDR_ANY ('0.0.0.0') or
INADDR6_ANY ('0:0:0:0:0:0:0:0' a.k.a. '::') may be used INADDR6_ANY ('0:0:0:0:0:0:0:0' a.k.a. '::') may be used
so that the server can listen to any IPv4 or IPv6 address."; so that the server can listen to any IPv4 or IPv6
address.";
} }
leaf local-port { leaf local-port {
type inet:port-number; type inet:port-number;
description description
"The local port number to listen on for incoming UDP "The local port number to listen on for incoming UDP
datagrams."; datagrams.";
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
4. Security Considerations 4. Security Considerations
This section uses the template described in Section 3.7 of This section uses the template described in Section 3.7.1 of
[I-D.ietf-netmod-rfc8407bis]. [RFC9907].
The "ietf-udp-client" and "ietf-udp-server" YANG modules defines a The "ietf-udp-client" and "ietf-udp-server" YANG modules define a
data model that is designed to be accessed via YANG-based management data model that is designed to be accessed via YANG-based management
protocols, such as NETCONF [RFC6241] and RESTCONF [RFC8040]. These protocols, such as Network Configuration Protocol (NETCONF) [RFC6241]
YANG-based management protocols (1) have to use a secure transport and RESTCONF [RFC8040]. These YANG-based management protocols (1)
layer (e.g., SSH [RFC6242], TLS [RFC8446], and QUIC [RFC9000]) and have to use a secure transport layer (e.g., SSH [RFC4252], TLS
(2) have to use mutual authentication. [RFC8446], and QUIC [RFC9000]) and (2) have to use mutual
authentication.
The Network Configuration Access Control Model (NACM) [RFC8341] The Network Configuration Access Control Model (NACM) [RFC8341]
provides the means to restrict access for particular NETCONF or provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content. RESTCONF protocol operations and content.
These YANG modules define a set of identities, types, and groupings. These YANG modules define a set of identities, types, and groupings.
These nodes are intended to be reused by other YANG modules. The These nodes are intended to be reused by other YANG modules. The
modules by themselves do not expose any data nodes that are writable, modules by themselves do not expose any data nodes that are writable,
data nodes that contain read-only state, or RPCs. As such, there are data nodes that contain read-only state, or RPCs. As such, there are
no additional security issues related to the YANG module that need to no additional security issues related to the YANG modules that need
be considered. to be considered.
Modules that use the groupings that are defined in this document Modules that use the groupings that are defined in this document
should identify the corresponding security considerations. For should identify the corresponding security considerations. For
example, reusing some of these groupings will expose privacy-related example, reusing some of these groupings will expose privacy-related
information (e.g., 'remote-address', 'remote-port', 'local-address', information (e.g., 'remote-address', 'remote-port', 'local-address',
or 'local-port'). or 'local-port').
5. IANA Considerations 5. IANA Considerations
This document describes the URIs from IETF XML Registry and the This document describes the URIs from the "IETF XML Registry" and the
registration of a two new YANG module names registration of two new YANG module names.
5.1. URI 5.1. The "IETF XML Registry"
IANA is requested to assign two new URIs from the IETF XML Registry IANA has assigned two new URIs from the "IETF XML Registry"
[RFC3688]: [RFC3688]:
URI: urn:ietf:params:xml:ns:yang:ietf-udp-client URI: urn:ietf:params:xml:ns:yang:ietf-udp-client
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.
URI: urn:ietf:params:xml:ns:yang:ietf-udp-server
Registrant Contact: The IESG.
XML: N/A; the requested URI is an XML namespace.
5.2. YANG Module Name
This document also requests IANA to register the following YANG
modules in the YANG Module Names registry [RFC6020] within the "YANG
Parameters" registry group:
name: ietf-udp-client URI: urn:ietf:params:xml:ns:yang:ietf-udp-server
namespace: urn:ietf:params:xml:ns:yang:ietf-udp-client Registrant Contact: The IESG.
prefix: udpc XML: N/A; the requested URI is an XML namespace.
maintained by IANA? N
reference: RFC XXXX
name: ietf-udp-server 5.2. The "YANG Module Names" Registry
namespace: urn:ietf:params:xml:ns:yang:ietf-udp-server
prefix: udps
maintained by IANA? N
reference: RFC XXXX
6. Acknowledgements IANA has registered the following YANG modules in the "YANG Module
Names" registry [RFC6020] within the "YANG Parameters" registry
group:
The authors would like to thank Mohamed Boucadair, Ran Chen, Benoit Name: ietf-udp-client
Claise, Mahesh Jethanandani, Qiufang Ma, Jürgen Schönwälder, Ketan Maintained by IANA? N
Talaulikar, Eric Vyncke, Paul Wouters and Qin Wu for their review and Namespace: urn:ietf:params:xml:ns:yang:ietf-udp-client
valuable comments. Prefix: udpc
Reference: RFC 9984
7. References Name: ietf-udp-server
Maintained by IANA? N
Namespace: urn:ietf:params:xml:ns:yang:ietf-udp-server
Prefix: udps
Reference: RFC 9984
7.1. Normative References 6. References
[I-D.ietf-netmod-rfc6991-bis] 6.1. Normative References
Schönwälder, J., "Common YANG Data Types", Work in
Progress, Internet-Draft, draft-ietf-netmod-rfc6991-bis-
18, 23 June 2025, <https://datatracker.ietf.org/doc/html/
draft-ietf-netmod-rfc6991-bis-18>.
[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>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
skipping to change at page 13, line 36 skipping to change at line 574
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
Access Control Model", STD 91, RFC 8341, Access Control Model", STD 91, RFC 8341,
DOI 10.17487/RFC8341, March 2018, DOI 10.17487/RFC8341, March 2018,
<https://www.rfc-editor.org/info/rfc8341>. <https://www.rfc-editor.org/info/rfc8341>.
7.2. Informative References [RFC9911] Schönwälder, J., Ed., "Common YANG Data Types", RFC 9911,
DOI 10.17487/RFC9911, December 2025,
<https://www.rfc-editor.org/info/rfc9911>.
[I-D.ietf-netmod-rfc8407bis] 6.2. Informative References
Bierman, A., Boucadair, M., and Q. Wu, "Guidelines for
Authors and Reviewers of Documents Containing YANG Data [RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH)
Models", Work in Progress, Internet-Draft, draft-ietf- Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252,
netmod-rfc8407bis-28, 5 June 2025, January 2006, <https://www.rfc-editor.org/info/rfc4252>.
<https://datatracker.ietf.org/doc/html/draft-ietf-netmod-
rfc8407bis-28>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>.
[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>.
[RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
Interchange Format", STD 90, RFC 8259, Interchange Format", STD 90, RFC 8259,
DOI 10.17487/RFC8259, December 2017, DOI 10.17487/RFC8259, December 2017,
<https://www.rfc-editor.org/info/rfc8259>. <https://www.rfc-editor.org/info/rfc8259>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
skipping to change at page 14, line 36 skipping to change at line 616
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", RFC 9000, Multiplexed and Secure Transport", RFC 9000,
DOI 10.17487/RFC9000, May 2021, DOI 10.17487/RFC9000, May 2021,
<https://www.rfc-editor.org/info/rfc9000>. <https://www.rfc-editor.org/info/rfc9000>.
[RFC9907] Bierman, A., Boucadair, M., Ed., and Q. Wu, "Guidelines
for Authors and Reviewers of Documents Containing YANG
Data Models", BCP 216, RFC 9907, DOI 10.17487/RFC9907,
March 2026, <https://www.rfc-editor.org/info/rfc9907>.
[W3C.REC-xml-20081126] [W3C.REC-xml-20081126]
Bray, T., Paoli, J., Sperberg-McQueen, C.M., Maler, E., Bray, T., Ed., Paoli, J., Ed., Sperberg-McQueen, C.M.,
and F. Yergeau, "Extensible Markup Language (XML) 1.0 Ed., Maler, E., Ed., and F. Yergeau, Ed., "Extensible
(Fifth Edition)", World Wide Web Consortium Markup Language (XML) 1.0 (Fifth Edition)", W3C
Recommendation REC-xml-20081126, November 2008, Recommendation, 26 November 2008,
<https://www.w3.org/TR/2008/REC-xml-20081126/>. <https://www.w3.org/TR/2008/REC-xml-20081126/>. Latest
version available at <https://www.w3.org/TR/xml/>.
Acknowledgements
The authors would like to thank Mohamed Boucadair, Ran Chen, Benoit
Claise, Mahesh Jethanandani, Qiufang Ma, Jürgen Schönwälder, Ketan
Talaulikar, Éric Vyncke, Paul Wouters, and Qin Wu for their reviews
and valuable comments.
Authors' Addresses Authors' Addresses
Alex Huang Feng Alex Huang Feng
INSA-Lyon INSA-Lyon
Lyon Lyon
France France
Email: alex.huang-feng@insa-lyon.fr Email: alex.huang-feng@insa-lyon.fr
Pierre Francois Pierre Francois
INSA-Lyon INSA-Lyon
Lyon Lyon
France France
Email: pierre.francois@insa-lyon.fr Email: pierre.francois@insa-lyon.fr
Kent Watsen Kent Watsen
Watsen Networks Watsen Networks
Email: kent+ietf@watsen.net Email: kent+ietf@watsen.net
 End of changes. 73 change blocks. 
211 lines changed or deleted 197 lines changed or added

This html diff was produced by rfcdiff 1.48.