idnits 2.17.1 draft-ietf-ippm-stamp-yang-07.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 437 has weird spacing: '...sion-id uin...' == Line 440 has weird spacing: '...sion-id uin...' -- The document date (30 March 2021) is 1123 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group G. Mirsky 3 Internet-Draft X. Min 4 Intended status: Standards Track ZTE Corp. 5 Expires: 1 October 2021 W.S. Luo 6 Ericsson 7 30 March 2021 9 Simple Two-way Active Measurement Protocol (STAMP) Data Model 10 draft-ietf-ippm-stamp-yang-07 12 Abstract 14 This document specifies the data model for implementations of 15 Session-Sender and Session-Reflector for Simple Two-way Active 16 Measurement Protocol (STAMP) mode using YANG. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on 1 October 2021. 35 Copyright Notice 37 Copyright (c) 2021 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 42 license-info) in effect on the date of publication of this document. 43 Please review these documents carefully, as they describe your rights 44 and restrictions with respect to this document. Code Components 45 extracted from this document must include Simplified BSD License text 46 as described in Section 4.e of the Trust Legal Provisions and are 47 provided without warranty as described in the Simplified BSD License. 49 Table of Contents 51 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 52 1.1. Conventions used in this document . . . . . . . . . . . . 2 53 1.1.1. Requirements Language . . . . . . . . . . . . . . . . 3 54 2. Scope, Model, and Applicability . . . . . . . . . . . . . . . 3 55 2.1. Data Model Parameters . . . . . . . . . . . . . . . . . . 3 56 2.1.1. STAMP-Sender . . . . . . . . . . . . . . . . . . . . 3 57 2.1.2. STAMP-Reflector . . . . . . . . . . . . . . . . . . . 4 58 3. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 4 59 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 5 60 3.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 10 61 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 62 5. Security Considerations . . . . . . . . . . . . . . . . . . . 31 63 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 32 64 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 65 7.1. Normative References . . . . . . . . . . . . . . . . . . 32 66 7.2. Informative References . . . . . . . . . . . . . . . . . 33 67 Appendix A. Example of STAMP Session Configuration . . . . . . . 34 68 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 70 1. Introduction 72 The Simple Two-way Active Measurement Protocol (STAMP) [RFC8762] can 73 be used to measure performance parameters of IP networks such as 74 latency, jitter, and packet loss by sending test packets and 75 monitoring their experience in the network. The STAMP protocol 76 [RFC8762] in unauthenticated mode is on-wire compatible with STAMP 77 Light, discussed in Appendix I [RFC5357]. The STAMP Light is known 78 to have many implementations though no common management framework 79 being defined, thus leaving some aspects of test packet processing to 80 interpretation. As one of the goals of STAMP is to support these 81 variations, this document presents their analysis; describes common 82 STAMP and STAMP model while allowing for STAMP extensions in the 83 future. This document defines the STAMP data model and specifies it 84 formally, using the YANG data modeling language [RFC7950]. 86 This version of the interfaces data model conforms to the Network 87 Management Datastore Architecture (NMDA) defined in [RFC8342]. 89 1.1. Conventions used in this document 90 1.1.1. Requirements Language 92 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 93 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 94 "OPTIONAL" in this document are to be interpreted as described in BCP 95 14 [RFC2119] [RFC8174] when, and only when, they appear in all 96 capitals, as shown here. 98 2. Scope, Model, and Applicability 100 The scope of this document includes a model of the STAMP as defined 101 in [RFC8762]. 103 o----------------------------------------------------------o 104 | Config client | 105 o----------------------------------------------------------o 106 || || 107 || NETCONF/RESTCONF || 108 || || 109 o----------------------o o-------------------------o 110 | Config server | | Config server | 111 | | | | 112 +----------------------+ +-------------------------+ 113 | STAMP Session-Sender | <--- STAMP---> | STAMP Session-Reflector | 114 +----------------------+ +-------------------------+ 116 Figure 1: STAMP Reference Model 118 2.1. Data Model Parameters 120 This section describes containers within the STAMP data model. 122 2.1.1. STAMP-Sender 124 The stamp-session-sender container holds items that are related to 125 the configuration of the stamp Session-Sender logical entity. 127 The stamp-session-sender-state container holds information about the 128 state of the particular STAMP test session. 130 RPCs stamp-sender-start and stamp-sender-stop respectively start and 131 stop the referenced session by the session-id of the STAMP. 133 2.1.1.1. Controls for Test Session and Performance Metric Calculation 135 The data model supports several scenarios for a STAMP Session-Sender 136 to execute test sessions and calculate performance metrics: 138 * The test mode in which the test packets are sent unbound in time 139 as defined by the parameter 'interval' in the stamp-session-sender 140 container frequency is referred to as continuous mode. 141 Performance metrics in the continuous mode are calculated at a 142 period defined by the parameter 'measurement-interval'. 144 * The test mode that has a specific number of the test packets 145 configured for the test session in the 'number-of-packets' 146 parameter is referred to as a periodic mode. The STAMP-Sender MAY 147 repeat the test session with the same parameters. The 'repeat' 148 parameter defines the number of tests and the 'repeat-interval' - 149 the interval between the consecutive tests. The performance 150 metrics are calculated after each test session when the interval 151 defined by the 'session-timeout' expires. 153 2.1.2. STAMP-Reflector 155 The stamp-session-reflector container holds items that are related to 156 the configuration of the STAMP Session-Reflector logical entity. 158 The stamp-session-refl-state container holds Session-Reflector state 159 data for the particular STAMP test session. 161 3. Data Model 163 Creating STAMP data model presents a number of challenges and among 164 them is the identification of a test-session at Session-Reflector. A 165 Session-Reflector MAY require only as little as its IP and UDP port 166 number in received STAMP-Test packet to spawn new test session. More 167 so, to test processing of Class-of-Service along the same route in 168 Equal Cost Multi-Path environment Session-Sender may perform STAMP 169 test sessions concurrently using the same source IP address, source 170 UDP port number, destination IP address, and destination UDP port 171 number. Thus the only parameter that can be used to differentiate 172 these test sessions would be DSCP value. The DSCP field may get re- 173 marked along the path, and without the use of [RFC7750] that will go 174 undetected, but by using five-tuple instead of four-tuple as a key, 175 we can ensure that STAMP test packets that are considered as 176 different test sessions follow the same path even in ECMP 177 environments. 179 3.1. Tree Diagrams 181 This section presents a simplified graphical representation of the 182 STAMP data model using a YANG tree diagram [RFC8340]. 184 module: ietf-stamp 185 +--rw stamp 186 | +--rw stamp-session-sender {session-sender}? 187 | | +--rw sender-enable? boolean 188 | | +--rw test-session* [session-id] 189 | | +--rw session-id uint32 190 | | +--rw test-session-enable? boolean 191 | | +--rw number-of-packets? union 192 | | +--rw packet-padding-size? uint32 193 | | +--rw interval? uint32 194 | | +--rw session-timeout? uint32 195 | | +--rw measurement-interval? uint32 196 | | +--rw repeat? union 197 | | +--rw repeat-interval? uint32 198 | | +--rw dscp-value? inet:dscp 199 | | +--rw test-session-reflector-mode? session-reflector-mode 200 | | +--rw sender-ip inet:ip-address 201 | | +--rw sender-udp-port inet:port-number 202 | | +--rw reflector-ip inet:ip-address 203 | | +--rw reflector-udp-port? inet:port-number 204 | | +--rw sender-timestamp-format? timestamp-format 205 | | +--rw security! {stamp-security}? 206 | | | +--rw key-chain? kc:key-chain-ref 207 | | +--rw first-percentile? percentile 208 | | +--rw second-percentile? percentile 209 | | +--rw third-percentile? percentile 210 | +--rw stamp-session-reflector {session-reflector}? 211 | +--rw reflector-enable? boolean 212 | +--rw ref-wait? uint32 213 | +--rw reflector-mode-state? session-reflector-mode 214 | +--rw test-session* [session-id] 215 | +--rw session-id uint32 216 | +--rw dscp-handling-mode? session-dscp-mode 217 | +--rw dscp-value? inet:dscp 218 | +--rw sender-ip? union 219 | +--rw sender-udp-port? union 220 | +--rw reflector-ip? union 221 | +--rw reflector-udp-port? inet:port-number 222 | +--rw reflector-timestamp-format? timestamp-format 223 | +--rw security! {stamp-security}? 224 | +--rw key-chain? kc:key-chain-ref 225 Figure 2: STAMP Configuration Tree Diagram 227 module: ietf-stamp 228 +--ro stamp-state 229 +--ro stamp-session-sender-state {session-sender}? 230 | +--ro test-session-state* [session-id] 231 | +--ro session-id uint32 232 | +--ro sender-session-state? enumeration 233 | +--ro current-stats 234 | | +--ro start-time yang:date-and-time 235 | | +--ro packet-padding-size? uint32 236 | | +--ro interval? uint32 237 | | +--ro duplicate-packets? uint32 238 | | +--ro reordered-packets? uint32 239 | | +--ro sender-timestamp-format? timestamp-format 240 | | +--ro reflector-timestamp-format? timestamp-format 241 | | +--ro dscp? inet:dscp 242 | | +--ro two-way-delay 243 | | | +--ro delay 244 | | | | +--ro min? yang:gauge64 245 | | | | +--ro max? yang:gauge64 246 | | | | +--ro avg? yang:gauge64 247 | | | +--ro delay-variation 248 | | | +--ro min? yang:gauge32 249 | | | +--ro max? yang:gauge32 250 | | | +--ro avg? yang:gauge32 251 | | +--ro one-way-delay-far-end 252 | | | +--ro delay 253 | | | | +--ro min? yang:gauge64 254 | | | | +--ro max? yang:gauge64 255 | | | | +--ro avg? yang:gauge64 256 | | | +--ro delay-variation 257 | | | +--ro min? yang:gauge32 258 | | | +--ro max? yang:gauge32 259 | | | +--ro avg? yang:gauge32 260 | | +--ro one-way-delay-near-end 261 | | | +--ro delay 262 | | | | +--ro min? yang:gauge64 263 | | | | +--ro max? yang:gauge64 264 | | | | +--ro avg? yang:gauge64 265 | | | +--ro delay-variation 266 | | | +--ro min? yang:gauge32 267 | | | +--ro max? yang:gauge32 268 | | | +--ro avg? yang:gauge32 269 | | +--ro low-percentile 270 | | | +--ro delay-percentile 271 | | | | +--ro rtt-delay? yang:gauge64 272 | | | | +--ro near-end-delay? yang:gauge64 273 | | | | +--ro far-end-delay? yang:gauge64 274 | | | +--ro delay-variation-percentile 275 | | | +--ro rtt-delay-variation? yang:gauge32 276 | | | +--ro near-end-delay-variation? yang:gauge32 277 | | | +--ro far-end-delay-variation? yang:gauge32 278 | | +--ro mid-percentile 279 | | | +--ro delay-percentile 280 | | | | +--ro rtt-delay? yang:gauge64 281 | | | | +--ro near-end-delay? yang:gauge64 282 | | | | +--ro far-end-delay? yang:gauge64 283 | | | +--ro delay-variation-percentile 284 | | | +--ro rtt-delay-variation? yang:gauge32 285 | | | +--ro near-end-delay-variation? yang:gauge32 286 | | | +--ro far-end-delay-variation? yang:gauge32 287 | | +--ro high-percentile 288 | | | +--ro delay-percentile 289 | | | | +--ro rtt-delay? yang:gauge64 290 | | | | +--ro near-end-delay? yang:gauge64 291 | | | | +--ro far-end-delay? yang:gauge64 292 | | | +--ro delay-variation-percentile 293 | | | +--ro rtt-delay-variation? yang:gauge32 294 | | | +--ro near-end-delay-variation? yang:gauge32 295 | | | +--ro far-end-delay-variation? yang:gauge32 296 | | +--ro two-way-loss 297 | | | +--ro loss-count? int32 298 | | | +--ro loss-ratio? percentage 299 | | | +--ro loss-burst-max? int32 300 | | | +--ro loss-burst-min? int32 301 | | | +--ro loss-burst-count? int32 302 | | +--ro one-way-loss-far-end 303 | | | +--ro loss-count? int32 304 | | | +--ro loss-ratio? percentage 305 | | | +--ro loss-burst-max? int32 306 | | | +--ro loss-burst-min? int32 307 | | | +--ro loss-burst-count? int32 308 | | +--ro one-way-loss-near-end 309 | | | +--ro loss-count? int32 310 | | | +--ro loss-ratio? percentage 311 | | | +--ro loss-burst-max? int32 312 | | | +--ro loss-burst-min? int32 313 | | | +--ro loss-burst-count? int32 314 | | +--ro sender-ip inet:ip-address 315 | | +--ro sender-udp-port inet:port-number 316 | | +--ro reflector-ip inet:ip-address 317 | | +--ro reflector-udp-port? inet:port-number 318 | | +--ro sent-packets? uint32 319 | | +--ro rcv-packets? uint32 320 | | +--ro sent-packets-error? uint32 321 | | +--ro rcv-packets-error? uint32 322 | | +--ro last-sent-seq? uint32 323 | | +--ro last-rcv-seq? uint32 324 | +--ro history-stats* [session-id] 325 | +--ro session-id uint32 326 | +--ro end-time yang:date-and-time 327 | +--ro packet-padding-size? uint32 328 | +--ro interval? uint32 329 | +--ro duplicate-packets? uint32 330 | +--ro reordered-packets? uint32 331 | +--ro sender-timestamp-format? timestamp-format 332 | +--ro reflector-timestamp-format? timestamp-format 333 | +--ro dscp? inet:dscp 334 | +--ro two-way-delay 335 | | +--ro delay 336 | | | +--ro min? yang:gauge64 337 | | | +--ro max? yang:gauge64 338 | | | +--ro avg? yang:gauge64 339 | | +--ro delay-variation 340 | | +--ro min? yang:gauge32 341 | | +--ro max? yang:gauge32 342 | | +--ro avg? yang:gauge32 343 | +--ro one-way-delay-far-end 344 | | +--ro delay 345 | | | +--ro min? yang:gauge64 346 | | | +--ro max? yang:gauge64 347 | | | +--ro avg? yang:gauge64 348 | | +--ro delay-variation 349 | | +--ro min? yang:gauge32 350 | | +--ro max? yang:gauge32 351 | | +--ro avg? yang:gauge32 352 | +--ro one-way-delay-near-end 353 | | +--ro delay 354 | | | +--ro min? yang:gauge64 355 | | | +--ro max? yang:gauge64 356 | | | +--ro avg? yang:gauge64 357 | | +--ro delay-variation 358 | | +--ro min? yang:gauge32 359 | | +--ro max? yang:gauge32 360 | | +--ro avg? yang:gauge32 361 | +--ro low-percentile 362 | | +--ro delay-percentile 363 | | | +--ro rtt-delay? yang:gauge64 364 | | | +--ro near-end-delay? yang:gauge64 365 | | | +--ro far-end-delay? yang:gauge64 366 | | +--ro delay-variation-percentile 367 | | +--ro rtt-delay-variation? yang:gauge32 368 | | +--ro near-end-delay-variation? yang:gauge32 369 | | +--ro far-end-delay-variation? yang:gauge32 370 | +--ro mid-percentile 371 | | +--ro delay-percentile 372 | | | +--ro rtt-delay? yang:gauge64 373 | | | +--ro near-end-delay? yang:gauge64 374 | | | +--ro far-end-delay? yang:gauge64 375 | | +--ro delay-variation-percentile 376 | | +--ro rtt-delay-variation? yang:gauge32 377 | | +--ro near-end-delay-variation? yang:gauge32 378 | | +--ro far-end-delay-variation? yang:gauge32 379 | +--ro high-percentile 380 | | +--ro delay-percentile 381 | | | +--ro rtt-delay? yang:gauge64 382 | | | +--ro near-end-delay? yang:gauge64 383 | | | +--ro far-end-delay? yang:gauge64 384 | | +--ro delay-variation-percentile 385 | | +--ro rtt-delay-variation? yang:gauge32 386 | | +--ro near-end-delay-variation? yang:gauge32 387 | | +--ro far-end-delay-variation? yang:gauge32 388 | +--ro two-way-loss 389 | | +--ro loss-count? int32 390 | | +--ro loss-ratio? percentage 391 | | +--ro loss-burst-max? int32 392 | | +--ro loss-burst-min? int32 393 | | +--ro loss-burst-count? int32 394 | +--ro one-way-loss-far-end 395 | | +--ro loss-count? int32 396 | | +--ro loss-ratio? percentage 397 | | +--ro loss-burst-max? int32 398 | | +--ro loss-burst-min? int32 399 | | +--ro loss-burst-count? int32 400 | +--ro one-way-loss-near-end 401 | | +--ro loss-count? int32 402 | | +--ro loss-ratio? percentage 403 | | +--ro loss-burst-max? int32 404 | | +--ro loss-burst-min? int32 405 | | +--ro loss-burst-count? int32 406 | +--ro sender-ip inet:ip-address 407 | +--ro sender-udp-port inet:port-number 408 | +--ro reflector-ip inet:ip-address 409 | +--ro reflector-udp-port? inet:port-number 410 | +--ro sent-packets? uint32 411 | +--ro rcv-packets? uint32 412 | +--ro sent-packets-error? uint32 413 | +--ro rcv-packets-error? uint32 414 | +--ro last-sent-seq? uint32 415 | +--ro last-rcv-seq? uint32 416 +--ro stamp-session-refl-state {session-reflector}? 417 +--ro reflector-light-admin-status? boolean 418 +--ro test-session-state* [session-id] 419 +--ro session-id uint32 420 +--ro reflector-timestamp-format? timestamp-format 421 +--ro sender-ip inet:ip-address 422 +--ro sender-udp-port inet:port-number 423 +--ro reflector-ip inet:ip-address 424 +--ro reflector-udp-port? inet:port-number 425 +--ro sent-packets? uint32 426 +--ro rcv-packets? uint32 427 +--ro sent-packets-error? uint32 428 +--ro rcv-packets-error? uint32 429 +--ro last-sent-seq? uint32 430 +--ro last-rcv-seq? uint32 432 Figure 3: STAMP State Tree Diagram 434 rpcs: 435 +---x stamp-sender-start 436 | +---w input 437 | +---w session-id uint32 438 +---x stamp-sender-stop 439 +---w input 440 +---w session-id uint32 442 Figure 4: STAMP RPC Tree Diagram 444 3.2. YANG Module 446 file "ietf-stamp@2020-10-07.yang" 447 module ietf-stamp { 448 yang-version 1.1; 449 namespace "urn:ietf:params:xml:ns:yang:ietf-stamp"; 450 //namespace need to be assigned by IANA 451 prefix "ietf-stamp"; 453 import ietf-inet-types { 454 prefix inet; 455 reference "RFC 6991: Common YANG Types."; 456 } 457 import ietf-yang-types { 458 prefix yang; 459 reference "RFC 6991: Common YANG Types."; 460 } 461 import ietf-key-chain { 462 prefix kc; 463 reference "RFC 8177: YANG Data Model for Key Chains."; 464 } 466 organization 467 "IETF IPPM (IP Performance Metrics) Working Group"; 469 contact 470 "WG Web: http://tools.ietf.org/wg/ippm/ 471 WG List: ippm@ietf.org 473 Editor: Greg Mirsky 474 gregimirsky@gmail.com 475 Editor: Xiao Min 476 xiao.min2@zte.com.cn 477 Editor: Wei S Luo 478 wei.s.luo@ericsson.com"; 480 description 481 "This YANG module specifies a vendor-independent model 482 for the Simple Two-way Active Measurement Protocol (STAMP). 484 The data model covers two STAMP logical entities - 485 Session-Sender and Session-Reflector; characteristics 486 of the STAMP test session, as well as measured and 487 calculated performance metrics. 489 Copyright (c) 2020 IETF Trust and the persons identified as 490 the document authors. All rights reserved. 491 Redistribution and use in source and binary forms, with or 492 without modification, is permitted pursuant to, and subject 493 to the license terms contained in, the Simplified BSD 494 License set forth in Section 4.c of the IETF Trust's Legal 495 Provisions Relating to IETF Documents 496 (http://trustee.ietf.org/license-info). 498 This version of this YANG module is part of RFC XXXX; see 499 the RFC itself for full legal notices."; 501 revision "2020-10-07" { 502 description 503 "Initial Revision. Base STAMP specification is covered"; 504 reference 505 "RFC XXXX: STAMP YANG Data Model."; 506 } 508 /* 509 * Typedefs 510 */ 512 typedef session-reflector-mode { 513 type enumeration { 514 enum stateful { 515 description 516 "When the Session-Reflector is stateful, 517 i.e. is aware of STAMP-Test session state."; 518 } 519 enum stateless { 520 description 521 "When the Session-Reflector is stateless, 522 i.e. is not aware of the state of 523 STAMP-Test session."; 524 } 525 } 526 description "State of the Session-Reflector"; 527 } 529 typedef session-dscp-mode { 530 type enumeration { 531 enum copy-received-value { 532 description 533 "Use DSCP value copied from received 534 STAMP test packet of the test session."; 535 } 536 enum use-configured-value { 537 description 538 "Use DSCP value configured for this 539 test session on the Session-Reflector."; 540 } 541 } 542 description 543 "DSCP handling mode by Session-Reflector."; 544 } 546 typedef timestamp-format { 547 type enumeration { 548 enum ntp-format { 549 description 550 "NTP 64 bit format of a timestamp"; 551 } 552 enum ptp-format { 553 description 554 "PTPv2 truncated format of a timestamp"; 555 } 556 } 557 description 558 "Timestamp format used by Session-Sender 559 or Session-Reflector."; 561 } 563 typedef percentage { 564 type decimal64 { 565 fraction-digits 5; 566 } 567 description "Percentage"; 568 } 570 typedef percentile { 571 type decimal64 { 572 fraction-digits 5; 573 } 574 description 575 "Percentile is a measure used in statistics 576 indicating the value below which a given 577 percentage of observations in a group of 578 observations fall."; 579 } 581 /* 582 * Feature definitions. 583 */ 584 feature session-sender { 585 description 586 "This feature relates to the device functions as the 587 STAMP Session-Sender"; 588 } 590 feature session-reflector { 591 description 592 "This feature relates to the device functions as the 593 STAMP Session-Reflector"; 594 } 596 feature stamp-security { 597 description "Secure STAMP supported"; 598 } 600 /* 601 * Reusable node groups 602 */ 604 grouping maintenance-statistics { 605 description "Maintenance statistics grouping"; 606 leaf sent-packets { 607 type uint32; 608 description "Packets sent"; 609 } 610 leaf rcv-packets { 611 type uint32; 612 description "Packets received"; 613 } 614 leaf sent-packets-error { 615 type uint32; 616 description "Packets sent error"; 617 } 618 leaf rcv-packets-error { 619 type uint32; 620 description "Packets received error"; 621 } 622 leaf last-sent-seq { 623 type uint32; 624 description "Last sent sequence number"; 625 } 626 leaf last-rcv-seq { 627 type uint32; 628 description "Last received sequence number"; 629 } 630 } 632 grouping test-session-statistics { 633 description 634 "Performance metrics calculated for 635 a STAMP test session."; 637 leaf packet-padding-size { 638 type uint32; 639 description 640 "Size of the Packet Padding. Suggested to run 641 Path MTU Discovery to avoid packet fragmentation 642 in IPv4 and packet blackholing in IPv6"; 643 } 645 leaf interval { 646 type uint32; 647 units microseconds; 648 description 649 "Time interval between transmission of two 650 consecutive packets in the test session"; 651 } 653 leaf duplicate-packets { 654 type uint32; 655 description "Duplicate packets"; 657 } 659 leaf reordered-packets { 660 type uint32; 661 description "Reordered packets"; 662 } 664 leaf sender-timestamp-format { 665 type timestamp-format; 666 description "Sender Timestamp format"; 667 } 669 leaf reflector-timestamp-format { 670 type timestamp-format; 671 description "Reflector Timestamp format"; 672 } 674 leaf dscp { 675 type inet:dscp; 676 description 677 "The DSCP value that was placed in the header of 678 STAMP UDP test packets by the Session-Sender."; 679 } 681 container two-way-delay { 682 description 683 "two way delay result of the test session"; 684 uses delay-statistics; 685 } 687 container one-way-delay-far-end { 688 description 689 "one way delay far-end of the test session"; 690 uses delay-statistics; 691 } 693 container one-way-delay-near-end { 694 description 695 "one way delay near-end of the test session"; 696 uses delay-statistics; 697 } 699 container low-percentile { 700 when "/stamp/stamp-session-sender/" 701 +"test-session[session-id]/" 702 +"first-percentile != '0.00'" { 703 description 704 "Only valid if the 705 the first-percentile is not NULL"; 706 } 707 description 708 "Low percentile report"; 709 uses time-percentile-report; 710 } 712 container mid-percentile { 713 when "/stamp/stamp-session-sender/" 714 +"test-session[session-id]/" 715 +"second-percentile != '0.00'" { 716 description 717 "Only valid if the 718 the first-percentile is not NULL"; 719 } 720 description 721 "Mid percentile report"; 722 uses time-percentile-report; 723 } 725 container high-percentile { 726 when "/stamp/stamp-session-sender/" 727 +"test-session[session-id]/" 728 +"third-percentile != '0.00'" { 729 description 730 "Only valid if the 731 the first-percentile is not NULL"; 732 } 733 description 734 "High percentile report"; 735 uses time-percentile-report; 736 } 738 container two-way-loss { 739 description 740 "two way loss count and ratio result of 741 the test session"; 742 uses packet-loss-statistics; 743 } 745 container one-way-loss-far-end { 746 when "/stamp/stamp-session-sender/" 747 +"test-session[session-id]/" 748 +"test-session-reflector-mode = 'stateful'" { 749 description 750 "One-way statistic is only valid if the 751 session-reflector is in stateful mode."; 752 } 753 description 754 "one way loss count and ratio far-end of 755 the test session"; 756 uses packet-loss-statistics; 757 } 759 container one-way-loss-near-end { 760 when "/stamp/stamp-session-sender/" 761 +"test-session[session-id]/" 762 +"test-session-reflector-mode = 'stateful'" { 763 description 764 "One-way statistic is only valid if the 765 session-reflector is in stateful mode."; 766 } 767 description 768 "one way loss count and ratio near-end of 769 the test session"; 770 uses packet-loss-statistics; 771 } 772 uses session-parameters; 773 uses maintenance-statistics; 774 } 776 grouping stamp-session-percentile { 777 description "Percentile grouping"; 778 leaf first-percentile { 779 type percentile; 780 default 95.00; 781 description 782 "First percentile to report"; 783 } 784 leaf second-percentile { 785 type percentile; 786 default 99.00; 787 description 788 "Second percentile to report"; 789 } 790 leaf third-percentile { 791 type percentile; 792 default 99.90; 793 description 794 "Third percentile to report"; 795 } 796 } 798 grouping delay-statistics { 799 description "Delay statistics grouping"; 800 container delay { 801 description "Packets transmitted delay"; 802 leaf min { 803 type yang:gauge64; 804 units nanoseconds; 805 description 806 "Min of Packets transmitted delay"; 807 } 808 leaf max { 809 type yang:gauge64; 810 units nanoseconds; 811 description 812 "Max of Packets transmitted delay"; 813 } 814 leaf avg { 815 type yang:gauge64; 816 units nanoseconds; 817 description 818 "Avg of Packets transmitted delay"; 819 } 820 } 822 container delay-variation { 823 description 824 "Packets transmitted delay variation"; 825 leaf min { 826 type yang:gauge32; 827 units nanoseconds; 828 description 829 "Min of Packets transmitted 830 delay variation"; 831 } 832 leaf max { 833 type yang:gauge32; 834 units nanoseconds; 835 description 836 "Max of Packets transmitted 837 delay variation"; 838 } 839 leaf avg { 840 type yang:gauge32; 841 units nanoseconds; 842 description 843 "Avg of Packets transmitted 844 delay variation"; 845 } 846 } 847 } 848 grouping time-percentile-report { 849 description "Delay percentile report grouping"; 850 container delay-percentile { 851 description 852 "Report round-trip, near- and far-end delay"; 853 leaf rtt-delay { 854 type yang:gauge64; 855 units nanoseconds; 856 description 857 "Percentile of round-trip delay"; 858 } 859 leaf near-end-delay { 860 type yang:gauge64; 861 units nanoseconds; 862 description 863 "Percentile of near-end delay"; 864 } 865 leaf far-end-delay { 866 type yang:gauge64; 867 units nanoseconds; 868 description 869 "Percentile of far-end delay"; 870 } 871 } 873 container delay-variation-percentile { 874 description 875 "Report round-trip, near- and far-end delay variation"; 876 leaf rtt-delay-variation { 877 type yang:gauge32; 878 units nanoseconds; 879 description 880 "Percentile of round-trip delay-variation"; 881 } 882 leaf near-end-delay-variation { 883 type yang:gauge32; 884 units nanoseconds; 885 description 886 "Percentile of near-end delay variation"; 887 } 888 leaf far-end-delay-variation { 889 type yang:gauge32; 890 units nanoseconds; 891 description 892 "Percentile of far-end delay-variation"; 893 } 894 } 895 } 896 grouping packet-loss-statistics { 897 description 898 "Grouping for Packet Loss statistics"; 899 leaf loss-count { 900 type int32; 901 description 902 "Number of lost packets 903 during the test interval."; 904 } 905 leaf loss-ratio { 906 type percentage; 907 description 908 "Ratio of packets lost to packets 909 sent during the test interval."; 910 } 911 leaf loss-burst-max { 912 type int32; 913 description 914 "Maximum number of consecutively 915 lost packets during the test interval."; 916 } 917 leaf loss-burst-min { 918 type int32; 919 description 920 "Minimum number of consecutively 921 lost packets during the test interval."; 922 } 923 leaf loss-burst-count { 924 type int32; 925 description 926 "Number of occasions with packet 927 loss during the test interval."; 928 } 929 } 931 grouping session-parameters { 932 description 933 "Parameters Session-Sender"; 934 leaf sender-ip { 935 type inet:ip-address; 936 mandatory true; 937 description "Sender IP address"; 938 } 939 leaf sender-udp-port { 940 type inet:port-number { 941 range "49152..65535"; 942 } 943 mandatory true; 944 description "Sender UDP port number"; 945 } 946 leaf reflector-ip { 947 type inet:ip-address; 948 mandatory true; 949 description "Reflector IP address"; 950 } 951 leaf reflector-udp-port { 952 type inet:port-number{ 953 range "862 | 1024..49151 | 49152..65535"; 954 } 955 default 862; 956 description "Reflector UDP port number"; 957 } 958 } 960 grouping session-security { 961 description 962 "Grouping for STAMP security and related parameters"; 963 container security { 964 if-feature stamp-security; 965 presence "Enables secure STAMP"; 966 description 967 "Parameters for STAMP authentication"; 968 leaf key-chain { 969 type kc:key-chain-ref; 970 description "Name of key-chain"; 971 } 972 } 973 } 975 /* 976 * Configuration Data 977 */ 978 container stamp { 979 description 980 "Top level container for STAMP configuration"; 982 container stamp-session-sender { 983 if-feature session-sender; 984 description "STAMP Session-Sender container"; 986 leaf sender-enable { 987 type boolean; 988 default "true"; 989 description 990 "Whether this network element is enabled to 991 act as STAMP Session-Sender"; 993 } 995 list test-session { 996 key "session-id"; 997 unique "sender-ip sender-udp-port reflector-ip" 998 +" reflector-udp-port dscp-value"; 999 description 1000 "This structure is a container of test session 1001 managed objects"; 1003 leaf session-id { 1004 type uint32; 1005 description "Session ID"; 1006 } 1008 leaf test-session-enable { 1009 type boolean; 1010 default "true"; 1011 description 1012 "Whether this STAMP Test session is enabled"; 1013 } 1015 leaf number-of-packets { 1016 type union { 1017 type uint32 { 1018 range 1..4294967294 { 1019 description 1020 "The overall number of UDP test packet 1021 to be transmitted by the sender for this 1022 test session"; 1023 } 1024 } 1025 type enumeration { 1026 enum forever { 1027 description 1028 "Indicates that the test session SHALL 1029 be run *forever*."; 1030 } 1031 } 1032 } 1033 default 10; 1034 description 1035 "This value determines if the STAMP-Test session is 1036 bound by number of test packets or not."; 1037 } 1039 leaf packet-padding-size { 1040 type uint32; 1041 default 30; 1042 description 1043 "Size of the Packet Padding. Suggested to run 1044 Path MTU Discovery to avoid packet fragmentation in 1045 IPv4 and packet blackholing in IPv6"; 1046 } 1048 leaf interval { 1049 type uint32; 1050 units microseconds; 1051 description 1052 "Time interval between transmission of two 1053 consecutive packets in the test session in 1054 microseconds"; 1055 } 1057 leaf session-timeout { 1058 when "../number-of-packets != 'forever'" { 1059 description 1060 "Test session timeout only valid if the 1061 test mode is periodic."; 1062 } 1063 type uint32; 1064 units "seconds"; 1065 default 900; 1066 description 1067 "The timeout value for the Session-Sender to 1068 collect outstanding reflected packets."; 1069 } 1071 leaf measurement-interval { 1072 when "../number-of-packets = 'forever'" { 1073 description 1074 "Valid only when the test to run forever, 1075 i.e. continuously."; 1076 } 1077 type uint32; 1078 units "seconds"; 1079 default 60; 1080 description 1081 "Interval to calculate performance metric when 1082 the test mode is 'continuous'."; 1083 } 1085 leaf repeat { 1086 type union { 1087 type uint32 { 1088 range 0..4294967294; 1090 } 1091 type enumeration { 1092 enum forever { 1093 description 1094 "Indicates that the test session SHALL 1095 be repeated *forever* using the 1096 information in repeat-interval 1097 parameter, and SHALL NOT decrement 1098 the value."; 1099 } 1100 } 1101 } 1102 default 0; 1103 description 1104 "This value determines if the STAMP-Test session must 1105 be repeated. When a test session has completed, the 1106 repeat parameter is checked. The default value 1107 of 0 indicates that the session MUST NOT be repeated. 1108 If the repeat value is 1 through 4,294,967,294 1109 then the test session SHALL be repeated using the 1110 information in repeat-interval parameter. 1111 The implementation MUST decrement the value of repeat 1112 after determining a repeated session is expected."; 1113 } 1115 leaf repeat-interval { 1116 when "../repeat != '0'"; 1117 type uint32; 1118 units seconds; 1119 default 0; 1120 description 1121 "This parameter determines the timing of repeated 1122 STAMP-Test sessions when repeat is more than 0."; 1123 } 1125 leaf dscp-value { 1126 type inet:dscp; 1127 default 0; 1128 description 1129 "DSCP value to be set in the test packet."; 1130 } 1132 leaf test-session-reflector-mode { 1133 type session-reflector-mode; 1134 default "stateless"; 1135 description 1136 "The mode of STAMP-Reflector for the test session."; 1137 } 1138 uses session-parameters; 1139 leaf sender-timestamp-format { 1140 type timestamp-format; 1141 default ntp-format; 1142 description "Sender Timestamp format"; 1143 } 1144 uses session-security; 1145 uses stamp-session-percentile; 1146 } 1147 } 1149 container stamp-session-reflector { 1150 if-feature session-reflector; 1151 description 1152 "STAMP Session-Reflector container"; 1153 leaf reflector-enable { 1154 type boolean; 1155 default "true"; 1156 description 1157 "Whether this network element is enabled to 1158 act as STAMP Session-Reflector"; 1159 } 1161 leaf ref-wait { 1162 type uint32 { 1163 range 1..604800; 1164 } 1165 units seconds; 1166 default 900; 1167 description 1168 "REFWAIT(STAMP test session timeout in seconds), 1169 the default value is 900"; 1170 } 1172 leaf reflector-mode-state { 1173 type session-reflector-mode; 1174 default stateless; 1175 description 1176 "The state of the mode of the STAMP 1177 Session-Reflector"; 1178 } 1180 list test-session { 1181 key "session-id"; 1182 unique "sender-ip sender-udp-port reflector-ip" 1183 +" reflector-udp-port"; 1184 description 1185 "This structure is a container of test session 1186 managed objects"; 1188 leaf session-id { 1189 type uint32; 1190 description "Session ID"; 1191 } 1193 leaf dscp-handling-mode { 1194 type session-dscp-mode; 1195 default copy-received-value; 1196 description 1197 "Session-Reflector handling of DSCP: 1198 - use value copied from received STAMP-Test packet; 1199 - use value explicitly configured"; 1200 } 1202 leaf dscp-value { 1203 when "../dscp-handling-mode = 'use-configured-value'"; 1204 type inet:dscp; 1205 default 0; 1206 description 1207 "DSCP value to be set in the reflected packet 1208 if dscp-handling-mode is set to use-configured-value."; 1209 } 1211 leaf sender-ip { 1212 type union { 1213 type inet:ip-address; 1214 type enumeration { 1215 enum any { 1216 description 1217 "Indicates that the Session-Reflector 1218 accepts STAMP test packets from 1219 any Session-Sender"; 1220 } 1221 } 1222 } 1223 default any; 1224 description 1225 "This value determines whether specific 1226 IPv4/IPv6 address of the Session-Sender 1227 or the wildcard, i.e. any address"; 1228 } 1230 leaf sender-udp-port { 1231 type union { 1232 type inet:port-number { 1233 range "49152..65535"; 1235 } 1236 type enumeration { 1237 enum any { 1238 description 1239 "Indicates that the Session-Reflector 1240 accepts STAMP test packets from 1241 any Session-Sender"; 1242 } 1243 } 1244 } 1245 default any; 1246 description 1247 "This value determines whether specific 1248 port number of the Session-Sender 1249 or the wildcard, i.e. any"; 1250 } 1252 leaf reflector-ip { 1253 type union { 1254 type inet:ip-address; 1255 type enumeration { 1256 enum any { 1257 description 1258 "Indicates that the Session-Reflector 1259 accepts STAMP test packets on 1260 any of its interfaces"; 1261 } 1262 } 1263 } 1264 default any; 1265 description 1266 "This value determines whether specific 1267 IPv4/IPv6 address of the Session-Reflector 1268 or the wildcard, i.e. any address"; 1269 } 1271 leaf reflector-udp-port { 1272 type inet:port-number{ 1273 range "862 | 1024..49151 | 49152..65535"; 1274 } 1275 default 862; 1276 description "Reflector UDP port number"; 1277 } 1279 leaf reflector-timestamp-format { 1280 type timestamp-format; 1281 default ntp-format; 1282 description "Reflector Timestamp format"; 1284 } 1285 uses session-security; 1286 } 1287 } 1288 } 1290 /* 1291 * Operational state data nodes 1292 */ 1293 container stamp-state { 1294 config false; 1295 description 1296 "Top level container for STAMP state data"; 1298 container stamp-session-sender-state { 1299 if-feature session-sender; 1300 description 1301 "Session-Sender container for state data"; 1302 list test-session-state{ 1303 key "session-id"; 1304 description 1305 "This structure is a container of test session 1306 managed objects"; 1308 leaf session-id { 1309 type uint32; 1310 description "Session ID"; 1311 } 1313 leaf sender-session-state { 1314 type enumeration { 1315 enum active { 1316 description "Test session is active"; 1317 } 1318 enum ready { 1319 description "Test session is idle"; 1320 } 1321 } 1322 description 1323 "State of the particular STAMP test 1324 session at the sender"; 1325 } 1327 container current-stats { 1328 description 1329 "This container contains the results for the current 1330 Measurement Interval in a Measurement session "; 1331 leaf start-time { 1332 type yang:date-and-time; 1333 mandatory true; 1334 description 1335 "The time that the current Measurement Interval started"; 1336 } 1338 uses test-session-statistics; 1340 } 1342 list history-stats { 1343 key session-id; 1344 description 1345 "This container contains the results for the history 1346 Measurement Interval in a Measurement session "; 1347 leaf session-id { 1348 type uint32; 1349 description 1350 "The identifier for the Measurement Interval 1351 within this session"; 1352 } 1354 leaf end-time { 1355 type yang:date-and-time; 1356 mandatory true; 1357 description 1358 "The time that the Measurement Interval ended"; 1359 } 1361 uses test-session-statistics; 1362 } 1363 } 1364 } 1366 container stamp-session-refl-state { 1367 if-feature session-reflector; 1368 description 1369 "STAMP Session-Reflector container for 1370 state data"; 1371 leaf reflector-light-admin-status { 1372 type boolean; 1373 description 1374 "Whether this network element is enabled to 1375 act as STAMP Session-Reflector"; 1376 } 1378 list test-session-state { 1379 key "session-id"; 1380 description 1381 "This structure is a container of test session 1382 managed objects"; 1384 leaf session-id { 1385 type uint32; 1386 description "Session ID"; 1387 } 1389 leaf reflector-timestamp-format { 1390 type timestamp-format; 1391 description "Reflector Timestamp format"; 1392 } 1393 uses session-parameters; 1394 uses maintenance-statistics; 1396 } 1397 } 1398 } 1400 rpc stamp-sender-start { 1401 description 1402 "start the configured sender session"; 1403 input { 1404 leaf session-id { 1405 type uint32; 1406 mandatory true; 1407 description 1408 "The STAMP session to be started"; 1409 } 1410 } 1411 } 1413 rpc stamp-sender-stop { 1414 description 1415 "stop the configured sender session"; 1416 input { 1417 leaf session-id { 1418 type uint32; 1419 mandatory true; 1420 description 1421 "The session to be stopped"; 1422 } 1423 } 1424 } 1425 } 1426 1428 4. IANA Considerations 1430 This document registers a URI in the IETF XML registry [RFC3688]. 1431 Following the format in [RFC3688], the following registration is 1432 requested to be made. 1434 URI: urn:ietf:params:xml:ns:yang:ietf-stamp 1436 Registrant Contact: The IPPM WG of the IETF. 1438 XML: N/A, the requested URI is an XML namespace. 1440 This document registers a YANG module in the YANG Module Names 1441 registry [RFC7950]. 1443 name: ietf-stamp 1445 namespace: urn:ietf:params:xml:ns:yang:ietf-stamp 1447 prefix: stamp 1449 reference: RFC XXXX 1451 5. Security Considerations 1453 The YANG module specified in this document defines a schema for data 1454 that is designed to be accessed via network management protocols such 1455 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1456 is the secure transport layer, and the mandatory-to-implement secure 1457 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1458 is HTTPS, and the mandatory-to-implement secure transport is TLS 1459 [RFC8446]. 1461 The NETCONF access control model [RFC8341] provides the means to 1462 restrict access for particular NETCONF or RESTCONF users to a pre- 1463 configured subset of all available NETCONF or RESTCONF protocol 1464 operations and content. 1466 There are a number of data nodes defined in this YANG module that are 1467 writable/creatable/deletable (i.e., config true, which is the 1468 default). These data nodes may be considered sensitive or vulnerable 1469 in some network environments. Write operations (e.g., edit-config) 1470 to these data nodes without proper protection can have an adverse 1471 effect on network operations. These are the subtrees and data nodes 1472 and their sensitivity/vulnerability: 1474 TBD 1475 Unauthorized access to any data node of these subtrees can adversely 1476 affect the routing subsystem of both the local device and the 1477 network. This may lead to corruption of the measurement that may 1478 result in false corrective action, e.g., false negative or false 1479 positive. That could be, for example, prolonged and undetected 1480 deterioration of the quality of service or actions to improve the 1481 quality unwarranted by the real network conditions. 1483 Some of the readable data nodes in this YANG module may be considered 1484 sensitive or vulnerable in some network environments. It is thus 1485 important to control read access (e.g., via get, get-config, or 1486 notification) to these data nodes. These are the subtrees and data 1487 nodes and their sensitivity/vulnerability: 1489 TBD 1491 Unauthorized access to any data node of these subtrees can disclose 1492 the operational state information of VRRP on this device. 1494 Some of the RPC operations in this YANG module may be considered 1495 sensitive or vulnerable in some network environments. It is thus 1496 important to control access to these operations. These are the 1497 operations and their sensitivity/vulnerability: 1499 TBD 1501 6. Acknowledgments 1503 Authors recognize and appreciate valuable comments provided by Adrian 1504 Pan and Henrik Nydell. 1506 7. References 1508 7.1. Normative References 1510 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1511 Requirement Levels", BCP 14, RFC 2119, 1512 DOI 10.17487/RFC2119, March 1997, 1513 . 1515 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1516 DOI 10.17487/RFC3688, January 2004, 1517 . 1519 [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. 1520 Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", 1521 RFC 5357, DOI 10.17487/RFC5357, October 2008, 1522 . 1524 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1525 and A. Bierman, Ed., "Network Configuration Protocol 1526 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1527 . 1529 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1530 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1531 . 1533 [RFC7750] Hedin, J., Mirsky, G., and S. Baillargeon, "Differentiated 1534 Service Code Point and Explicit Congestion Notification 1535 Monitoring in the Two-Way Active Measurement Protocol 1536 (TWAMP)", RFC 7750, DOI 10.17487/RFC7750, February 2016, 1537 . 1539 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1540 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1541 . 1543 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1544 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1545 . 1547 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1548 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1549 May 2017, . 1551 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 1552 Access Control Model", STD 91, RFC 8341, 1553 DOI 10.17487/RFC8341, March 2018, 1554 . 1556 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 1557 and R. Wilton, "Network Management Datastore Architecture 1558 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 1559 . 1561 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 1562 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 1563 . 1565 [RFC8762] Mirsky, G., Jun, G., Nydell, H., and R. Foote, "Simple 1566 Two-Way Active Measurement Protocol", RFC 8762, 1567 DOI 10.17487/RFC8762, March 2020, 1568 . 1570 7.2. Informative References 1572 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 1573 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 1574 . 1576 Appendix A. Example of STAMP Session Configuration 1578 Figure 5 shows a configuration example of a STAMP-Sender. 1580 1581 1582 1583 1584 enable 1585 10 1586 enable 1587 forever 1588 1589 10 1590 1591 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1610 Figure 5: XML instance of STAMP Session-Sender configuration 1612 1613 1614 1615 1616 enable 1617 1618 1619 1620 1621 1622 1623 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1636 Figure 6: XML instance of STAMP Session-Reflector configuration 1638 Authors' Addresses 1640 Greg Mirsky 1641 ZTE Corp. 1643 Email: gregimirsky@gmail.com, gregory.mirsky@ztetx.com 1645 Xiao Min 1646 ZTE Corp. 1648 Email: xiao.min2@zte.com.cn 1650 Wei S Luo 1651 Ericsson 1653 Email: wei.s.luo@ericsson.com