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