draft-ietf-netconf-tcp-client-server-00.txt   draft-ietf-netconf-tcp-client-server-01.txt 
NETCONF Working Group K. Watsen NETCONF Working Group K. Watsen
Internet-Draft Watsen Networks Internet-Draft Watsen Networks
Intended status: Standards Track M. Scharf Intended status: Standards Track M. Scharf
Expires: November 18, 2019 Hochschule Esslingen Expires: December 9, 2019 Hochschule Esslingen
May 17, 2019 June 7, 2019
YANG Groupings for TCP Clients and TCP Servers YANG Groupings for TCP Clients and TCP Servers
draft-ietf-netconf-tcp-client-server-00 draft-ietf-netconf-tcp-client-server-01
Abstract Abstract
This document defines three YANG modules: the first defines a This document defines three YANG modules: the first defines a
grouping for configuring a generic TCP client, the second defines a grouping for configuring a generic TCP client, the second defines a
grouping for configuring a generic TCP server, and the third defines grouping for configuring a generic TCP server, and the third defines
a grouping common to the TCP clients and TCP servers. a grouping common to the TCP clients and TCP servers.
Editorial Note (To be removed by RFC Editor) Editorial Note (To be removed by RFC Editor)
This draft contains many placeholder values that need to be replaced This draft contains many placeholder values that need to be replaced
with finalized values at the time of publication. This note with finalized values at the time of publication. This note
summarizes all of the substitutions that are needed. No other RFC summarizes all of the substitutions that are needed. No other RFC
Editor instructions are specified elsewhere in this document. Editor instructions are specified elsewhere in this document.
Artwork in this document contains placeholder values for the date of Artwork in this document contains placeholder values for the date of
publication of this draft. Please apply the following replacement: publication of this draft. Please apply the following replacement:
o "2019-05-17" --> the publication date of this draft o "2019-06-07" --> the publication date of this draft
The following Appendix section is to be removed prior to publication: The following Appendix section is to be removed prior to publication:
o Appendix A. Change Log o Appendix A. Change Log
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 November 18, 2019. This Internet-Draft will expire on December 9, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are 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 . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. The TCP Client Model . . . . . . . . . . . . . . . . . . . . 3 3. The TCP Client Model . . . . . . . . . . . . . . . . . . . . 3
3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 3 3.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 3
3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 4 3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 4
4. The TCP Server Model . . . . . . . . . . . . . . . . . . . . 7 4. The TCP Server Model . . . . . . . . . . . . . . . . . . . . 7
4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 7 4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 7
4.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 7 4.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 7
4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 7 4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 8
5. The TCP Common Model . . . . . . . . . . . . . . . . . . . . 10 5. The TCP Common Model . . . . . . . . . . . . . . . . . . . . 11
5.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 10 5.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 11
5.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 10 5.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 12
5.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 11 5.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 12
6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 6. Security Considerations . . . . . . . . . . . . . . . . . . . 15
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
7.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 14 7.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 16
7.2. The YANG Module Names Registry . . . . . . . . . . . . . 15 7.2. The YANG Module Names Registry . . . . . . . . . . . . . 16
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.1. Normative References . . . . . . . . . . . . . . . . . . 15 8.1. Normative References . . . . . . . . . . . . . . . . . . 16
8.2. Informative References . . . . . . . . . . . . . . . . . 16 8.2. Informative References . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 18
A.1. 00 to 01 . . . . . . . . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
1. Introduction 1. Introduction
This document defines three YANG 1.1 [RFC7950] modules: the first This document defines three YANG 1.1 [RFC7950] modules: the first
defines a grouping for configuring a generic TCP client, the second defines a grouping for configuring a generic TCP client, the second
defines a grouping for configuring a generic TCP server, and the defines a grouping for configuring a generic TCP server, and the
third defines a grouping common to the TCP clients and TCP servers. third defines a grouping common to the TCP clients and TCP servers.
It is intended that these groupings will be used either standalone, It is intended that these groupings will be used either standalone,
for TCP-based protocols, as part of a stack of protocol-specific for TCP-based protocols, as part of a stack of protocol-specific
skipping to change at page 3, line 31 skipping to change at page 3, line 38
3.1. Tree Diagram 3.1. Tree Diagram
This section provides a tree diagram [RFC8340] for the "ietf-tcp- This section provides a tree diagram [RFC8340] for the "ietf-tcp-
client" module. client" module.
module: ietf-tcp-client module: ietf-tcp-client
grouping tcp-client-grouping grouping tcp-client-grouping
+-- remote-address inet:host +-- remote-address inet:host
+-- remote-port? inet:port-number +-- remote-port? inet:port-number
+-- local-address? inet:ip-address +-- local-address? inet:ip-address {local-binding-supported}?
+-- local-port? inet:port-number +-- local-port? inet:port-number {local-binding-supported}?
+-- keepalives! +-- keepalives! {keepalives-supported}?
+-- idle-time uint16 +-- idle-time uint16
+-- max-probes uint16 +-- max-probes uint16
+-- probe-interval uint16 +-- probe-interval uint16
3.2. Example Usage 3.2. Example Usage
This section presents an example showing the tcp-client-grouping This section presents an example showing the tcp-client-grouping
populated with some data. populated with some data.
<tcp-client xmlns="urn:ietf:params:xml:ns:yang:ietf-tcp-client"> <tcp-client xmlns="urn:ietf:params:xml:ns:yang:ietf-tcp-client">
skipping to change at page 4, line 21 skipping to change at page 4, line 21
<idle-time>15</idle-time> <idle-time>15</idle-time>
<max-probes>3</max-probes> <max-probes>3</max-probes>
<probe-interval>30</probe-interval> <probe-interval>30</probe-interval>
</keepalives> </keepalives>
</tcp-client> </tcp-client>
3.3. YANG Module 3.3. YANG Module
The ietf-tcp-client YANG module references [RFC6991]. The ietf-tcp-client YANG module references [RFC6991].
<CODE BEGINS> file "ietf-tcp-client@2019-05-17.yang" <CODE BEGINS> file "ietf-tcp-client@2019-06-07.yang"
module ietf-tcp-client { module ietf-tcp-client {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-tcp-client"; namespace "urn:ietf:params:xml:ns:yang:ietf-tcp-client";
prefix tcpc; prefix tcpc;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
skipping to change at page 5, line 28 skipping to change at page 5, line 28
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC (https://www.rfc-editor.org/info/rfcXXXX); see the RFC
itself for full legal notices.; itself for full legal notices.;
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
are to be interpreted as described in BCP 14 (RFC 2119) are to be interpreted as described in BCP 14 (RFC 2119)
(RFC 8174) when, and only when, they appear in all (RFC 8174) when, and only when, they appear in all
capitals, as shown here."; capitals, as shown here.";
revision 2019-05-17 { revision 2019-06-07 {
description description
"Initial version"; "Initial version";
reference reference
"RFC XXXX: YANG Groupings for TCP Clients and TCP Servers"; "RFC XXXX: YANG Groupings for TCP Clients and TCP Servers";
} }
// Features // Features
feature local-binding-supported {
description
"Indicates that the server supports configuring local bindings,
the 'local-address' and 'local-port' nodes.";
}
feature tcp-client-keepalives { feature tcp-client-keepalives {
description description
"Per socket TCP keepalive parameters are configurable for "Per socket TCP keepalive parameters are configurable for
TCP clients on the server implementing this feature."; TCP clients on the server implementing this feature.";
} }
// Groupings // Groupings
grouping tcp-client-grouping { grouping tcp-client-grouping {
description description
skipping to change at page 6, line 34 skipping to change at page 6, line 40
type inet:port-number; type inet:port-number;
default "0"; default "0";
description description
"The IP port number for the remote peer to establish a "The IP port number for the remote peer to establish a
connection with. An invalid default value (0) is used connection with. An invalid default value (0) is used
(instead of 'mandatory true') so that as application (instead of 'mandatory true') so that as application
level data model may 'refine' it with an application level data model may 'refine' it with an application
specific default port number value."; specific default port number value.";
} }
leaf local-address { leaf local-address {
if-feature "local-binding-supported";
type inet:ip-address; type inet:ip-address;
description description
"The local IP address/interface (VRF?) to bind to for when "The local IP address/interface (VRF?) to bind to for when
connecting to the remote peer. INADDR_ANY ('0.0.0.0') or connecting to the remote peer. INADDR_ANY ('0.0.0.0') or
INADDR6_ANY ('0:0:0:0:0:0:0:0' a.k.a. '::') MAY be used to INADDR6_ANY ('0:0:0:0:0:0:0:0' a.k.a. '::') MAY be used to
explicitly indicate the implicit default, that the server explicitly indicate the implicit default, that the server
can bind to any IPv4 or IPv6 addresses, respectively."; can bind to any IPv4 or IPv6 addresses, respectively.";
} }
leaf local-port { leaf local-port {
if-feature "local-binding-supported";
type inet:port-number; type inet:port-number;
default "0"; default "0";
description description
"The local IP port number to bind to for when connecting "The local IP port number to bind to for when connecting
to the remote peer. The port number '0', which is the to the remote peer. The port number '0', which is the
default value, indicates that any available local port default value, indicates that any available local port
number may be used."; number may be used.";
} }
uses tcpcmn:tcp-connection-grouping { uses tcpcmn:tcp-connection-grouping {
augment "keepalives" { augment "keepalives" {
skipping to change at page 7, line 25 skipping to change at page 7, line 33
4. The TCP Server Model 4. The TCP Server Model
4.1. Tree Diagram 4.1. Tree Diagram
This section provides a tree diagram [RFC8340] for the "ietf-tcp- This section provides a tree diagram [RFC8340] for the "ietf-tcp-
server" module. server" module.
module: ietf-tcp-server module: ietf-tcp-server
grouping tcp-server-grouping grouping tcp-server-grouping
+-- local-address inet:ip-address +-- local-address inet:ip-address
+-- local-port? inet:port-number +-- local-port? inet:port-number
+-- keepalives! +-- keepalives! {keepalives-supported}?
+-- idle-time uint16 | +-- idle-time uint16
+-- max-probes uint16 | +-- max-probes uint16
+-- probe-interval uint16 | +-- probe-interval uint16
+-- external-endpoint-values! {external-endpoints}?
+-- address inet:ip-address
+-- port? inet:port-number
4.2. Example Usage 4.2. Example Usage
This section presents an example showing the tcp-server-grouping This section presents an example showing the tcp-server-grouping
populated with some data. populated with some data.
<tcp-server xmlns="urn:ietf:params:xml:ns:yang:ietf-tcp-server"> <tcp-server xmlns="urn:ietf:params:xml:ns:yang:ietf-tcp-server">
<local-address>10.20.30.40</local-address> <local-address>10.20.30.40</local-address>
<local-port>7777</local-port> <local-port>7777</local-port>
<keepalives> <keepalives>
<idle-time>15</idle-time> <idle-time>15</idle-time>
<max-probes>3</max-probes> <max-probes>3</max-probes>
<probe-interval>30</probe-interval> <probe-interval>30</probe-interval>
</keepalives> </keepalives>
</tcp-server> </tcp-server>
4.3. YANG Module 4.3. YANG Module
The ietf-tcp-server YANG module references [RFC6991]. The ietf-tcp-server YANG module references [RFC6991].
<CODE BEGINS> file "ietf-tcp-server@2019-05-17.yang" <CODE BEGINS> file "ietf-tcp-server@2019-06-07.yang"
module ietf-tcp-server { module ietf-tcp-server {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-tcp-server"; namespace "urn:ietf:params:xml:ns:yang:ietf-tcp-server";
prefix tcps; prefix tcps;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
skipping to change at page 9, line 4 skipping to change at page 9, line 18
Redistribution and use in source and binary forms, with Redistribution and use in source and binary forms, with
or without modification, is permitted pursuant to, and or without modification, is permitted pursuant to, and
subject to the license terms contained in, the Simplified subject to the license terms contained in, the Simplified
BSD License set forth in Section 4.c of the IETF Trust's BSD License set forth in Section 4.c of the IETF Trust's
Legal Provisions Relating to IETF Documents Legal Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX This version of this YANG module is part of RFC XXXX
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC (https://www.rfc-editor.org/info/rfcXXXX); see the RFC
itself for full legal notices.; itself for full legal notices.;
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
are to be interpreted as described in BCP 14 (RFC 2119) are to be interpreted as described in BCP 14 (RFC 2119)
(RFC 8174) when, and only when, they appear in all (RFC 8174) when, and only when, they appear in all
capitals, as shown here."; capitals, as shown here.";
revision 2019-05-17 { revision 2019-06-07 {
description description
"Initial version"; "Initial version";
reference reference
"RFC XXXX: YANG Groupings for TCP Clients and TCP Servers"; "RFC XXXX: YANG Groupings for TCP Clients and TCP Servers";
} }
// Features // Features
feature tcp-server-keepalives { feature tcp-server-keepalives {
description description
"Per socket TCP keepalive parameters are configurable for "Per socket TCP keepalive parameters are configurable for
TCP servers on the server implementing this feature."; TCP servers on the server implementing this feature.";
} }
feature external-endpoints {
description
"Per socket TCP keepalive parameters are configurable for
TCP servers on the server implementing this feature.";
}
// Groupings // Groupings
grouping tcp-server-grouping { grouping tcp-server-grouping {
description description
"A reusable grouping for configuring a TCP server. "A reusable grouping for configuring a TCP server.
Note that this grouping uses fairly typical descendent Note that this grouping uses fairly typical descendent
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
skipping to change at page 9, line 40 skipping to change at page 10, line 13
"A reusable grouping for configuring a TCP server. "A reusable grouping for configuring a TCP server.
Note that this grouping uses fairly typical descendent Note that this grouping uses fairly typical descendent
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
'tcp-server-parameters'). This model purposely does 'tcp-server-parameters'). This model 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 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
TCL client connections. INADDR_ANY (0.0.0.0) or TCP client connections. INADDR_ANY (0.0.0.0) or
INADDR6_ANY (0:0:0:0:0:0:0:0 a.k.a. ::) MUST be INADDR6_ANY (0:0:0:0:0:0:0:0 a.k.a. ::) MUST be
used when the server is to listen on all IPv4 or used when the server is to listen on all IPv4 or
IPv6 addresses, respectively."; IPv6 addresses, respectively.";
} }
leaf local-port { leaf local-port {
type inet:port-number; type inet:port-number;
default "0"; default "0";
description description
"The local port number to listen on for incoming TCP "The local port number to listen on for incoming TCP
client connections. An invalid default value (0) client connections. An invalid default value (0)
skipping to change at page 10, line 21 skipping to change at page 10, line 41
an application specific default port number value."; an application specific default port number value.";
} }
uses tcpcmn:tcp-connection-grouping { uses tcpcmn:tcp-connection-grouping {
augment "keepalives" { augment "keepalives" {
if-feature "tcp-server-keepalives"; if-feature "tcp-server-keepalives";
description description
"Add an if-feature statement so that implementations "Add an if-feature statement so that implementations
can choose to support TCP server keepalives."; can choose to support TCP server keepalives.";
} }
} }
container external-endpoint-values {
if-feature external-endpoints;
presence
"Indicates that external endpoint values are configured.";
description
"External endpoint values described the values used by
an external system that terminates connections before
passing them onto server. Such systems may include,
e.g., a network address translator (NAT) or a load
balancer (LB).
These values have no effect on the local operation of
this server, but MAY be used by the application when
sending messages including response contact information
(e.g., URL).";
leaf address {
type inet:ip-address;
mandatory true;
description
"The external IP address used to listen for incoming
TCP client connections that are forwarded to this
server.";
}
leaf port {
type inet:port-number;
default "0";
description
"The external port number used to listen for incoming
TCP client connections that are forwarded to this
server. An invalid default value (0) is used (instead
of 'mandatory true') so that an application level data
model may 'refine' it with an application specific
default port number value.";
}
}
} }
} }
<CODE ENDS> <CODE ENDS>
5. The TCP Common Model 5. The TCP Common Model
5.1. Tree Diagram 5.1. Tree Diagram
This section provides a tree diagram [RFC8340] for the "ietf-tcp- This section provides a tree diagram [RFC8340] for the "ietf-tcp-
common" module. common" module.
module: ietf-tcp-common module: ietf-tcp-common
grouping tcp-common-grouping grouping tcp-common-grouping
+-- keepalives! +-- keepalives! {keepalives-supported}?
+-- idle-time uint16 +-- idle-time uint16
+-- max-probes uint16 +-- max-probes uint16
+-- probe-interval uint16 +-- probe-interval uint16
grouping tcp-connection-grouping grouping tcp-connection-grouping
+-- keepalives! +-- keepalives! {keepalives-supported}?
+-- idle-time uint16 +-- idle-time uint16
+-- max-probes uint16 +-- max-probes uint16
+-- probe-interval uint16 +-- probe-interval uint16
5.2. Example Usage 5.2. Example Usage
This section presents an example showing the tcp-common-grouping This section presents an example showing the tcp-common-grouping
populated with some data. populated with some data.
<tcp-common xmlns="urn:ietf:params:xml:ns:yang:ietf-tcp-common"> <tcp-common xmlns="urn:ietf:params:xml:ns:yang:ietf-tcp-common">
skipping to change at page 11, line 17 skipping to change at page 12, line 22
<idle-time>15</idle-time> <idle-time>15</idle-time>
<max-probes>3</max-probes> <max-probes>3</max-probes>
<probe-interval>30</probe-interval> <probe-interval>30</probe-interval>
</keepalives> </keepalives>
</tcp-common> </tcp-common>
5.3. YANG Module 5.3. YANG Module
The ietf-tcp-common YANG module references [RFC6991]. The ietf-tcp-common YANG module references [RFC6991].
<CODE BEGINS> file "ietf-tcp-common@2019-05-17.yang" <CODE BEGINS> file "ietf-tcp-common@2019-06-07.yang"
module ietf-tcp-common { module ietf-tcp-common {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-tcp-common"; namespace "urn:ietf:params:xml:ns:yang:ietf-tcp-common";
prefix tcpcmn; prefix tcpcmn;
organization organization
"IETF NETCONF (Network Configuration) Working Group and the "IETF NETCONF (Network Configuration) Working Group and the
IETF TCP Maintenance and Minor Extensions (TCPM) Working Group"; IETF TCP Maintenance and Minor Extensions (TCPM) Working Group";
contact contact
skipping to change at page 12, line 4 skipping to change at page 13, line 9
Redistribution and use in source and binary forms, with Redistribution and use in source and binary forms, with
or without modification, is permitted pursuant to, and or without modification, is permitted pursuant to, and
subject to the license terms contained in, the Simplified subject to the license terms contained in, the Simplified
BSD License set forth in Section 4.c of the IETF Trust's BSD License set forth in Section 4.c of the IETF Trust's
Legal Provisions Relating to IETF Documents Legal Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX This version of this YANG module is part of RFC XXXX
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC (https://www.rfc-editor.org/info/rfcXXXX); see the RFC
itself for full legal notices.; itself for full legal notices.;
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
are to be interpreted as described in BCP 14 (RFC 2119) are to be interpreted as described in BCP 14 (RFC 2119)
(RFC 8174) when, and only when, they appear in all (RFC 8174) when, and only when, they appear in all
capitals, as shown here."; capitals, as shown here.";
revision 2019-05-17 { revision 2019-06-07 {
description description
"Initial version"; "Initial version";
reference reference
"RFC XXXX: YANG Groupings for TCP Clients and TCP Servers"; "RFC XXXX: YANG Groupings for TCP Clients and TCP Servers";
} }
// Features
feature keepalives-supported {
description
"Indicates that keepalives are supported.";
}
// Groupings // Groupings
grouping tcp-common-grouping { grouping tcp-common-grouping {
description description
"A reusable grouping for configuring TCP parameters common "A reusable grouping for configuring TCP parameters common
to TCP connections as well as the operating system as a to TCP connections as well as the operating system as a
whole."; whole.";
container keepalives { container keepalives {
if-feature "keepalives-supported";
presence "Indicates that keepalives are enabled."; presence "Indicates that keepalives are enabled.";
description description
"Configures the keep-alive policy, to proactively test the "Configures the keep-alive policy, to proactively test the
aliveness of the TCP peer. An unresponsive TCP peer is aliveness of the TCP peer. An unresponsive TCP peer is
dropped after approximately (idle-time * 60) + (max-probes dropped after approximately (idle-time * 60) + (max-probes
* probe-interval) seconds."; * probe-interval) seconds.";
leaf idle-time { leaf idle-time {
type uint16 { type uint16 {
range "1..max"; range "1..max";
} }
skipping to change at page 16, line 29 skipping to change at page 18, line 5
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[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>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
Appendix A. Change Log
A.1. 00 to 01
o Added 'local-binding-supported' feature to TCP-client model.
o Added 'keepalives-supported' feature to TCP-common model.
o Added 'external-endpoint-values' container and 'external-
endpoints' feature to TCP-server model.
Authors' Addresses Authors' Addresses
Kent Watsen Kent Watsen
Watsen Networks Watsen Networks
EMail: kent+ietf@watsen.net EMail: kent+ietf@watsen.net
Michael Scharf Michael Scharf
Hochschule Esslingen - University of Applied Sciences Hochschule Esslingen - University of Applied Sciences
 End of changes. 28 change blocks. 
38 lines changed or deleted 111 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/