| module ietf-tcp-common { |
| yang-version 1.1; |
| namespace "urn:ietf:params:xml:ns:yang:ietf-tcp-common"; |
| prefix tcpcmn; |
| |
| organization |
| "IETF NETCONF (Network Configuration) Working Group and the |
| IETF TCP Maintenance and Minor Extensions (TCPM) Working Group"; |
| |
| contact |
| "WG Web: https://datatracker.ietf.org/wg/netconf |
| https://datatracker.ietf.org/wg/tcpm |
| WG List: NETCONF WG list <mailto:netconf@ietf.org> |
| TCPM WG list <mailto:tcpm@ietf.org> |
| Authors: Kent Watsen <mailto:kent+ietf@watsen.net> |
| Michael Scharf |
| <mailto:michael.scharf@hs-esslingen.de>"; |
| |
| description |
| "This module defines reusable groupings for TCP commons that |
| can be used as a basis for specific TCP common instances. |
| |
| Copyright (c) 2023 IETF Trust and the persons identified |
| as authors of the code. All rights reserved. |
| |
| 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 Revised |
| 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). |
| |
| This version of this YANG module is part of RFC DDDD |
| (https://www.rfc-editor.org/info/rfcDDDD); see the RFC |
| itself for full legal notices. |
| |
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', |
| 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', |
| 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document |
| are to be interpreted as described in BCP 14 (RFC 2119) |
| (RFC 8174) when, and only when, they appear in all |
| capitals, as shown here."; |
| |
| revision 2023-04-17 { |
| description |
| "Initial version"; |
| reference |
| "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; |
| } |
| |
| // Features |
| |
| feature keepalives-supported { |
| description |
| "Indicates that keepalives are supported."; |
| } |
| |
| // Groupings |
| grouping tcp-common-grouping { |
| description |
| "A reusable grouping for configuring TCP parameters common |
| to TCP connections as well as the operating system as a |
| whole."; |
| container keepalives { |
| if-feature "keepalives-supported"; |
| presence |
| "Indicates that keepalives are enabled. This statement is |
| present so the mandatory descendant nodes do not imply that |
| this node must be configured."; |
| description |
| "Configures the keep-alive policy, to proactively test the |
| aliveness of the TCP peer. An unresponsive TCP peer is |
| dropped after approximately (idle-time + max-probes |
| * probe-interval) seconds."; |
| reference |
| "RFC 9293: |
| Transmission Control Protocol (TCP), Section 3.8.4.."; |
| leaf idle-time { |
| type uint16 { |
| range "1..max"; |
| } |
| units "seconds"; |
| mandatory true; |
| description |
| "Sets the amount of time after which if no data has been |
| received from the TCP peer, a TCP-level probe message |
| will be sent to test the aliveness of the TCP peer. |
| Two hours (7200 seconds) is safe value, per RFC 1122."; |
| reference |
| "RFC 1122: |
| Requirements for Internet Hosts -- Communication Layers"; |
| } |
| leaf max-probes { |
| type uint16 { |
| range "1..max"; |
| } |
| mandatory true; |
| description |
| "Sets the maximum number of sequential keep-alive probes |
| that can fail to obtain a response from the TCP peer |
| before assuming the TCP peer is no longer alive."; |
| } |
| leaf probe-interval { |
| type uint16 { |
| range "1..max"; |
| } |
| units "seconds"; |
| mandatory true; |
| description |
| "Sets the time interval between failed probes. The interval |
| SHOULD be significantly longer than one second in order to |
| avoid harm on a congested link."; |
| } |
| } // container keepalives |
| } // grouping tcp-common-grouping |
| |
| } |