roman | c1d2b09 | 2023-02-02 08:58:27 +0100 | [diff] [blame] | 1 | module ietf-tcp-common { |
| 2 | yang-version 1.1; |
| 3 | namespace "urn:ietf:params:xml:ns:yang:ietf-tcp-common"; |
| 4 | prefix tcpcmn; |
| 5 | |
| 6 | organization |
| 7 | "IETF NETCONF (Network Configuration) Working Group and the |
| 8 | IETF TCP Maintenance and Minor Extensions (TCPM) Working Group"; |
| 9 | |
| 10 | contact |
| 11 | "WG Web: https://datatracker.ietf.org/wg/netconf |
| 12 | https://datatracker.ietf.org/wg/tcpm |
| 13 | WG List: NETCONF WG list <mailto:netconf@ietf.org> |
| 14 | TCPM WG list <mailto:tcpm@ietf.org> |
| 15 | Authors: Kent Watsen <mailto:kent+ietf@watsen.net> |
| 16 | Michael Scharf |
| 17 | <mailto:michael.scharf@hs-esslingen.de>"; |
| 18 | |
| 19 | description |
| 20 | "This module defines reusable groupings for TCP commons that |
| 21 | can be used as a basis for specific TCP common instances. |
| 22 | |
roman | 7fdc84d | 2023-06-06 13:14:53 +0200 | [diff] [blame] | 23 | Copyright (c) 2023 IETF Trust and the persons identified |
roman | c1d2b09 | 2023-02-02 08:58:27 +0100 | [diff] [blame] | 24 | as authors of the code. All rights reserved. |
| 25 | |
| 26 | Redistribution and use in source and binary forms, with |
| 27 | or without modification, is permitted pursuant to, and |
| 28 | subject to the license terms contained in, the Revised |
| 29 | BSD License set forth in Section 4.c of the IETF Trust's |
| 30 | Legal Provisions Relating to IETF Documents |
| 31 | (https://trustee.ietf.org/license-info). |
| 32 | |
| 33 | This version of this YANG module is part of RFC DDDD |
| 34 | (https://www.rfc-editor.org/info/rfcDDDD); see the RFC |
| 35 | itself for full legal notices. |
| 36 | |
| 37 | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', |
| 38 | 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', |
| 39 | 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document |
| 40 | are to be interpreted as described in BCP 14 (RFC 2119) |
| 41 | (RFC 8174) when, and only when, they appear in all |
| 42 | capitals, as shown here."; |
| 43 | |
roman | 7fdc84d | 2023-06-06 13:14:53 +0200 | [diff] [blame] | 44 | revision 2023-04-17 { |
roman | c1d2b09 | 2023-02-02 08:58:27 +0100 | [diff] [blame] | 45 | description |
| 46 | "Initial version"; |
| 47 | reference |
| 48 | "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; |
| 49 | } |
| 50 | |
| 51 | // Features |
| 52 | |
| 53 | feature keepalives-supported { |
| 54 | description |
| 55 | "Indicates that keepalives are supported."; |
| 56 | } |
| 57 | |
| 58 | // Groupings |
roman | c1d2b09 | 2023-02-02 08:58:27 +0100 | [diff] [blame] | 59 | grouping tcp-common-grouping { |
| 60 | description |
| 61 | "A reusable grouping for configuring TCP parameters common |
| 62 | to TCP connections as well as the operating system as a |
| 63 | whole."; |
| 64 | container keepalives { |
| 65 | if-feature "keepalives-supported"; |
| 66 | presence |
| 67 | "Indicates that keepalives are enabled. This statement is |
| 68 | present so the mandatory descendant nodes do not imply that |
| 69 | this node must be configured."; |
| 70 | description |
| 71 | "Configures the keep-alive policy, to proactively test the |
| 72 | aliveness of the TCP peer. An unresponsive TCP peer is |
| 73 | dropped after approximately (idle-time + max-probes |
| 74 | * probe-interval) seconds."; |
roman | 7fdc84d | 2023-06-06 13:14:53 +0200 | [diff] [blame] | 75 | reference |
| 76 | "RFC 9293: |
| 77 | Transmission Control Protocol (TCP), Section 3.8.4.."; |
roman | c1d2b09 | 2023-02-02 08:58:27 +0100 | [diff] [blame] | 78 | leaf idle-time { |
| 79 | type uint16 { |
| 80 | range "1..max"; |
| 81 | } |
| 82 | units "seconds"; |
| 83 | mandatory true; |
| 84 | description |
| 85 | "Sets the amount of time after which if no data has been |
| 86 | received from the TCP peer, a TCP-level probe message |
| 87 | will be sent to test the aliveness of the TCP peer. |
| 88 | Two hours (7200 seconds) is safe value, per RFC 1122."; |
| 89 | reference |
| 90 | "RFC 1122: |
| 91 | Requirements for Internet Hosts -- Communication Layers"; |
| 92 | } |
| 93 | leaf max-probes { |
| 94 | type uint16 { |
| 95 | range "1..max"; |
| 96 | } |
| 97 | mandatory true; |
| 98 | description |
| 99 | "Sets the maximum number of sequential keep-alive probes |
| 100 | that can fail to obtain a response from the TCP peer |
| 101 | before assuming the TCP peer is no longer alive."; |
| 102 | } |
| 103 | leaf probe-interval { |
| 104 | type uint16 { |
| 105 | range "1..max"; |
| 106 | } |
| 107 | units "seconds"; |
| 108 | mandatory true; |
| 109 | description |
| 110 | "Sets the time interval between failed probes. The interval |
| 111 | SHOULD be significantly longer than one second in order to |
| 112 | avoid harm on a congested link."; |
| 113 | } |
| 114 | } // container keepalives |
| 115 | } // grouping tcp-common-grouping |
| 116 | |
| 117 | } |