idnits 2.17.1 draft-mirsky-ippm-twamp-light-yang-08.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: ---------------------------------------------------------------------------- == It seems as if not all pages are separated by form feeds - found 0 form feeds but 26 pages 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 336 has weird spacing: '...-status boo...' == Line 348 has weird spacing: '...dp-port ine...' == Line 353 has weird spacing: '...sion-id uin...' == Line 356 has weird spacing: '...sion-id uin...' -- The document date (April 13, 2017) is 2571 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) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) == Outdated reference: A later version (-13) exists of draft-ietf-ippm-twamp-yang-03 Summary: 1 error (**), 0 flaws (~~), 7 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: October 15, 2017 A. Pan 6 W. Luo 7 Ericsson 8 April 13, 2017 10 Two-Way Active Measurement Protocol (TWAMP) Light Data Model 11 draft-mirsky-ippm-twamp-light-yang-08 13 Abstract 15 This document specifies the data model for implementations of 16 Session-Sender and Session-Reflector for Two-Way Active Measurement 17 Protocol (TWAMP) Light mode using YANG. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at http://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on October 15, 2017. 36 Copyright Notice 38 Copyright (c) 2017 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (http://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 54 1.1. Conventions used in this document . . . . . . . . . . . . 2 55 1.1.1. Requirements Language . . . . . . . . . . . . . . . . 2 56 2. Scope, Model, and Applicability . . . . . . . . . . . . . . . 3 57 2.1. Data Model Parameters . . . . . . . . . . . . . . . . . . 3 58 2.1.1. Session-Sender . . . . . . . . . . . . . . . . . . . 3 59 2.1.2. Session-Reflector . . . . . . . . . . . . . . . . . . 4 60 3. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 4 61 3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 5 62 3.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 8 63 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 64 5. Security Considerations . . . . . . . . . . . . . . . . . . . 24 65 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 66 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 67 7.1. Normative References . . . . . . . . . . . . . . . . . . 24 68 7.2. Informative References . . . . . . . . . . . . . . . . . 25 69 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 71 1. Introduction 73 The Two-Way Active Measurement Protocol (TWAMP) [RFC5357] can be used 74 to measure performance parameters of IP networks such as latency, 75 jitter, and packet loss by sending test packets and monitoring their 76 experience in the network. The [RFC5357] defines two protocols, 77 TWAMP Control and TWAMP Test, and a profile of TWAMP Test, TWAMP 78 Light. The TWAMP Light is known to have many implementations though 79 no common management framework being defined, thus leaving some 80 aspects of test packet processing to interpretation. The goal of 81 this document is to collect analyze these variations; describe common 82 model while allowing for extensions in the future. This document 83 defines such a TWAMP data model and specifies it formally using the 84 YANG data modeling language [RFC6020]. 86 1.1. Conventions used in this document 88 1.1.1. Requirements Language 90 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 91 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 92 "OPTIONAL" in this document are to be interpreted as described in 93 [RFC2119]. 95 2. Scope, Model, and Applicability 97 The scope of this document includes model of the TWAMP Light as 98 defined in Appendix I of [RFC5357]. This mode of TWAMP Light will be 99 referred in this document as Stateless. Another mode, where the 100 Session-Reflector is aware of the state of the TWAMP test session and 101 thus can independently count reflected test packets, referred as 102 Stateful. This document benefits from earlier attempt to define 103 TWAMP MIB in [I-D.elteto-ippm-twamp-mib] and from TWAMP YANG model 104 defined in [I-D.ietf-ippm-twamp-yang]. 106 Figure 1 updates TWAMP-Light reference model presented in Appendix I 107 [RFC5357] for the scenario when instantiation of a TWAMP-Test session 108 between Session-Sender and Session-Reflector controlled by 109 communication between a Configuration Client as a manager and 110 Configuration Servers as agents of the configuration session. 112 o----------------------------------------------------------o 113 | Config client | 114 o----------------------------------------------------------o 115 || || 116 || NETCONF/RESTCONF || 117 || || 118 o-------------------o o-------------------o 119 | Config server | | Config server | 120 | | | | 121 +-------------------+ +-------------------+ 122 | Session-Sender | <--- TWAMP-Test ---> | Session-Reflector | 123 +-------------------+ +-------------------+ 125 Figure 1: TWAMP Light Reference Model 127 2.1. Data Model Parameters 129 This section describes all the parameters of the the TWAMP-Light data 130 model. 132 2.1.1. Session-Sender 134 The twamp-light-session-sender container holds items that are related 135 to the configuration of the TWAMP-Light Session-Sender logical 136 entity. 138 The twamp-light-session-sender-state container holds information 139 about the state of the particular TWAMP-Light test session. 141 RPCs twamp-sender-start and twamp-sender-stop respectively start and 142 stop the referenced by session-id TWAMP-Light test session. 144 2.1.1.1. Controls for Test Session and Preformance Metric Calculation 146 The data model supports several scenarios for Session-Sender to 147 excute test sessions and calculate performance metrics: 149 The test mode in which the test packets are sent unbound in time 150 at defined by the parameter 'interval' in the twamp-light-session- 151 sender container frquency is referred as continuous mode. 152 Perfomance metrics in the continuous mode are calculated at period 153 defined by the parameter 'measurement-interval'. 155 The test mode that has specific number of the test packets 156 configured for the test session in the 'number-of-packets' 157 parameter is referred as periodic mode. The test session may be 158 repeated by the Session-Sender with the same parameters. The 159 'repeat' parameter defines number of tests and the 'repeat- 160 interval' - the interval between the consequitive tests. The 161 perfomance metrics are calculated after each test session when the 162 interval defined by the 'session-timeout' expires. 164 2.1.2. Session-Reflector 166 The twamp-light-session-reflector container holds items that are 167 related to the configuration of the TWAMP-Light Session-Reflector 168 logical entity. 170 The twamp-light-session-reflector-state container holds Session- 171 Reflector state data for the particular TWAMP-Light test session. 173 3. Data Model 175 Creating TWAMP-Light data model presents number of challenges and 176 among them is identification of a test-session at Session-Reflector. 177 A Session-Reflector MAY require only as little as its IP and UDP port 178 number in received TWAMP-Test packet to spawn new test session. More 179 so, to test processing of Class-of-Service along the same route in 180 Equal Cost Multi-Path environment Session-Sender may run TWAMP test 181 sessions concurrently using the same source IP address, source UDP 182 port number, destination IP address, and destination UDP port number. 183 Thus the only parameter that can be used to differentiate these test 184 sessions would be DSCP value. The DSCP field may get re-marked along 185 the path and without use of [RFC7750] that will go undetected, but by 186 using five-tuple instead of four-tuple as a key we can ensure that 187 TWAMP test packets that are considered as different test sessions 188 follow the same path even in ECMP environments. 190 3.1. Tree Diagram 192 module: ietf-twamp-light 193 +--rw twamp-light 194 | +--rw twamp-light-session-sender {session-sender-light}? 195 | | +--rw sender-light-enable? enable 196 | | +--rw test-session* [session-id] 197 | | +--rw session-id uint32 198 | | +--rw test-session-enable? enable 199 | | +--rw number-of-packets? union 200 | | +--rw packet-padding-size? uint32 201 | | +--rw interval? uint32 202 | | +--rw session-timeout? uint32 203 | | +--rw measurement-interval? uint32 204 | | +--rw repeat? union 205 | | +--rw repeat-interval? uint32 206 | | +--rw dscp-value? inet:dscp 207 | | +--rw test-session-relector-mode? session-reflector-mode 208 | | +--rw sender-ip inet:ip-address 209 | | +--rw sender-udp-port inet:port-number 210 | | +--rw reflector-ip inet:ip-address 211 | | +--rw reflector-udp-port inet:port-number 212 | | +--rw authentication-params! {twamp-light-authentication}? 213 | | +--rw key-chain? kc:key-chain-ref 214 | +--rw twamp-light-session-reflector {session-reflector-light}? 215 | +--rw reflector-light-enable? enable 216 | +--rw ref-wait? uint32 217 | +--rw reflector-light-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 inet:ip-address 223 | +--rw sender-udp-port inet:port-number 224 | +--rw reflector-ip inet:ip-address 225 | +--rw reflector-udp-port inet:port-number 226 | +--rw authentication-params! {twamp-light-authentication}? 227 | +--rw key-chain? kc:key-chain-ref 228 +--ro twamp-light-state 229 +--ro twamp-light-session-sender-state {session-sender-light}? 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 number-of-packets? uint32 236 | | +--ro packet-padding-size? uint32 237 | | +--ro interval? uint32 238 | | +--ro duplicate-packets? uint32 239 | | +--ro reordered-packets? uint32 240 | | +--ro sender-ip inet:ip-address 241 | | +--ro sender-udp-port inet:port-number 242 | | +--ro reflector-ip inet:ip-address 243 | | +--ro reflector-udp-port inet:port-number 244 | | +--ro dscp? inet:dscp 245 | | +--ro sent-packets? uint32 246 | | +--ro rcv-packets? uint32 247 | | +--ro sent-packets-error? uint32 248 | | +--ro rcv-packets-error? uint32 249 | | +--ro last-sent-seq? uint32 250 | | +--ro last-rcv-seq? uint32 251 | | +--ro two-way-delay 252 | | | +--ro delay 253 | | | | +--ro min? yang:gauge32 254 | | | | +--ro max? yang:gauge32 255 | | | | +--ro avg? yang:gauge32 256 | | | +--ro delay-variation 257 | | | +--ro min? uint32 258 | | | +--ro max? uint32 259 | | | +--ro avg? uint32 260 | | +--ro one-way-delay-far-end 261 | | | +--ro delay 262 | | | | +--ro min? yang:gauge32 263 | | | | +--ro max? yang:gauge32 264 | | | | +--ro avg? yang:gauge32 265 | | | +--ro delay-variation 266 | | | +--ro min? uint32 267 | | | +--ro max? uint32 268 | | | +--ro avg? uint32 269 | | +--ro one-way-delay-near-end 270 | | | +--ro delay 271 | | | | +--ro min? yang:gauge32 272 | | | | +--ro max? yang:gauge32 273 | | | | +--ro avg? yang:gauge32 274 | | | +--ro delay-variation 275 | | | +--ro min? uint32 276 | | | +--ro max? uint32 277 | | | +--ro avg? uint32 278 | | +--ro two-way-loss 279 | | | +--ro loss-count? int32 280 | | | +--ro loss-ratio? percentage 281 | | +--ro one-way-loss-far-end 282 | | | +--ro loss-count? int32 283 | | | +--ro loss-ratio? percentage 284 | | +--ro one-way-loss-near-end 285 | | +--ro loss-count? int32 286 | | +--ro loss-ratio? percentage 287 | +--ro history-stats* [id] 288 | +--ro id uint32 289 | +--ro end-time yang:date-and-time 290 | +--ro number-of-packets? uint32 291 | +--ro packet-padding-size? uint32 292 | +--ro interval? uint32 293 | +--ro duplicate-packets? uint32 294 | +--ro reordered-packets? uint32 295 | +--ro loss-packets? uint32 296 | +--ro sender-ip inet:ip-address 297 | +--ro sender-udp-port inet:port-number 298 | +--ro reflector-ip inet:ip-address 299 | +--ro reflector-udp-port inet:port-number 300 | +--ro dscp? inet:dscp 301 | +--ro sent-packets? uint32 302 | +--ro rcv-packets? uint32 303 | +--ro sent-packets-error? uint32 304 | +--ro rcv-packets-error? uint32 305 | +--ro last-sent-seq? uint32 306 | +--ro last-rcv-seq? uint32 307 | +--ro two-way-delay 308 | | +--ro delay 309 | | | +--ro min? yang:gauge32 310 | | | +--ro max? yang:gauge32 311 | | | +--ro avg? yang:gauge32 312 | | +--ro delay-variation 313 | | +--ro min? uint32 314 | | +--ro max? uint32 315 | | +--ro avg? uint32 316 | +--ro one-way-delay-far-end 317 | | +--ro delay 318 | | | +--ro min? yang:gauge32 319 | | | +--ro max? yang:gauge32 320 | | | +--ro avg? yang:gauge32 321 | | +--ro delay-variation 322 | | +--ro min? uint32 323 | | +--ro max? uint32 324 | | +--ro avg? uint32 325 | +--ro one-way-delay-near-end 326 | +--ro delay 327 | | +--ro min? yang:gauge32 328 | | +--ro max? yang:gauge32 329 | | +--ro avg? yang:gauge32 330 | +--ro delay-variation 331 | +--ro min? uint32 332 | +--ro max? uint32 333 | +--ro avg? uint32 334 +--ro twamp-light-session-reflector-state \ 335 | {session-reflector-light}? 336 +--ro reflector-light-admin-status boolean 337 +--ro test-session-state* [session-id] 338 +--ro session-id uint32 339 +--ro sent-packets? uint32 340 +--ro rcv-packets? uint32 341 +--ro sent-packets-error? uint32 342 +--ro rcv-packets-error? uint32 343 +--ro last-sent-seq? uint32 344 +--ro last-rcv-seq? uint32 345 +--ro sender-ip inet:ip-address 346 +--ro sender-udp-port inet:port-number 347 +--ro reflector-ip inet:ip-address 348 +--ro reflector-udp-port inet:port-number 350 rpcs: 351 +---x twamp-sender-start 352 | +---w input 353 | +---w session-id uint32 354 +---x twamp-sender-stop 355 +---w input 356 +---w session-id uint32 358 3.2. YANG Module 360 file "ietf-twamp-light@2017-04-13.yang" 362 module ietf-twamp-light { 363 namespace "urn:ietf:params:xml:ns:yang:ietf-twamp-light"; 364 //namespace need to be assigned by IANA 365 prefix "ietf-twamp-light"; 367 import ietf-inet-types { 368 prefix inet; 369 } 370 import ietf-yang-types { 371 prefix yang; 372 } 373 import ietf-key-chain { 374 prefix kc; 375 } 377 organization 378 "IETF IPPM (IP Performance Metrics) Working Group"; 380 contact 381 "draft-mirsky-ippm-twamp-light-yang@tools.ietf.org"; 383 description "TWAMP Light Data Model"; 385 revision "2017-04-13" { 386 description 387 "08 version. Appendix I RFC 5357 is covered."; 388 reference "RFC 5357"; 389 } 391 feature session-sender-light { 392 description 393 "This feature relates to the device functions as the 394 TWAMP Light Session-Sender"; 395 } 397 feature session-reflector-light { 398 description 399 "This feature relates to the device functions as the 400 TWAMP Light Session-Reflector"; 401 } 403 feature twamp-light-authentication { 404 description 405 "TWAMP Light authentication supported"; 406 } 408 typedef enable { 409 type boolean; 410 description "enable"; 411 } 413 typedef session-reflector-mode { 414 type enumeration { 415 enum stateful { 416 description 417 "When the Session-Reflector is stateful, 418 i.e. is aware of TWAMP-Test session state."; 419 } 420 enum stateless { 421 description 422 "When the Session-Reflector is stateless, 423 i.e. is not aware of the state of 424 TWAMP-Test session."; 425 } 426 } 427 description "State of the Session-Reflector"; 429 } 431 typedef session-dscp-mode { 432 type enumeration { 433 enum copy-received-value { 434 description 435 "Use DSCP value copied from received 436 TWAMP test packet of the test session."; 437 } 438 enum use-configured-value { 439 description 440 "Use DSCP value configured for this 441 test session on the Session-Reflector."; 442 } 443 } 444 description 445 "DSCP handling mode by Session-Reflector."; 446 } 448 typedef percentage { 449 type decimal64 { 450 fraction-digits 5; 451 } 452 description "Percentage"; 453 } 455 grouping maintenance-statistics { 456 description "Maintenance statistics grouping"; 457 leaf sent-packets { 458 type uint32; 459 description "Packets sent"; 460 } 461 leaf rcv-packets { 462 type uint32; 463 description "Packets received"; 464 } 465 leaf sent-packets-error { 466 type uint32; 467 description "Packets sent error"; 468 } 469 leaf rcv-packets-error { 470 type uint32; 471 description "Packets received error"; 472 } 473 leaf last-sent-seq { 474 type uint32; 475 description "Last sent sequence number"; 476 } 477 leaf last-rcv-seq { 478 type uint32; 479 description "Last received sequence number"; 480 } 481 } 483 grouping delay-statistics { 484 description "Delay statistics grouping"; 485 container delay { 486 description "Packets transmitted delay"; 487 leaf min { 488 type yang:gauge32; 489 units microseconds; 490 description 491 "Min of Packets transmitted delay"; 492 } 493 leaf max { 494 type yang:gauge32; 495 units microseconds; 496 description 497 "Max of Packets transmitted delay"; 498 } 499 leaf avg { 500 type yang:gauge32; 501 units microseconds; 502 description 503 "Avg of Packets transmitted delay"; 504 } 505 } 507 container delay-variation { 508 description 509 "Packets transmitted delay variation"; 510 leaf min { 511 type uint32; 512 units microseconds; 513 description 514 "Min of Packets transmitted 515 delay variation"; 516 } 517 leaf max { 518 type uint32; 519 units microseconds; 520 description 521 "Max of Packets transmitted 522 delay variation"; 523 } 524 leaf avg { 525 type uint32; 526 units microseconds; 527 description 528 "Avg of Packets transmitted 529 delay variation"; 530 } 531 } 532 } 534 grouping packet-loss-statistics { 535 description 536 "Grouping for Packet Loss statistics"; 537 leaf loss-count { 538 type int32; 539 description 540 "Number of lost packets."; 541 } 542 leaf loss-ratio { 543 type percentage; 544 description 545 "Ratio of packets lost to packets sent."; 546 } 547 } 549 grouping session-light-parameters { 550 description 551 "Parameters common among 552 Session-Sender and Session-Reflector"; 553 leaf sender-ip { 554 type inet:ip-address; 555 mandatory true; 556 description "Sender IP address"; 557 } 558 leaf sender-udp-port { 559 type inet:port-number { 560 range "49152..65535"; 561 } 562 mandatory true; 563 description "Sender UDP port number"; 564 } 565 leaf reflector-ip { 566 type inet:ip-address; 567 mandatory true; 568 description "Reflector IP address"; 569 } 570 leaf reflector-udp-port { 571 type inet:port-number{ 572 range "49152..65535"; 574 } 575 mandatory true; 576 description "Reflector UDP port number"; 577 } 578 } 580 grouping session-light-auth-params { 581 description 582 "Grouping for TWAMP Light authentication parameters"; 583 container authentication-params { 584 if-feature twamp-light-authentication; 585 presence "Enables TWAMP Light authentication"; 586 description 587 "Parameters for TWAMP Light authentication"; 588 leaf key-chain { 589 type kc:key-chain-ref; 590 description "Name of key-chain"; 591 } 592 } 593 } 595 /*Configuration Data*/ 596 container twamp-light { 597 description 598 "Top level container for TWAMP-Light configuration"; 600 container twamp-light-session-sender { 601 if-feature session-sender-light; 602 description "TWAMP-Light Session-Sender container"; 604 leaf sender-light-enable { 605 type enable; 606 default "true"; 607 description 608 "Whether this network element is enabled to 609 act as TWAMP-Light Sender"; 610 } 612 list test-session { 613 key "session-id"; 614 unique "sender-ip sender-udp-port reflector-ip" 615 +" reflector-udp-port dscp-value"; 616 description 617 "This structure is a container of test session 618 managed objects"; 620 leaf session-id { 621 type uint32; 622 description "Session ID"; 623 } 625 leaf test-session-enable { 626 type enable; 627 default "true"; 628 description 629 "Whether this TWAMP Test session is enabled"; 630 } 632 leaf number-of-packets { 633 type union { 634 type uint32 { 635 range 1..4294967294 { 636 description 637 "The overall number of UDP test packet 638 to be transmitted by the sender for this 639 test session"; 640 } 641 } 642 type enumeration { 643 enum forever { 644 description 645 "Indicates that the test session SHALL 646 be run *forever*."; 647 } 648 } 649 } 650 default 10; 651 description 652 "This value determines if the TWAMP-Test session is 653 bound by number of test packets or not."; 654 } 656 leaf packet-padding-size { 657 type uint32; 658 default 27; 659 description 660 "Size of the Packet Padding. Suggested to run 661 Path MTU Discovery to avoid packet fragmentation in 662 IPv4 and packet blackholing in IPv6"; 663 } 665 leaf interval { 666 type uint32; 667 units microseconds; 668 description 669 "Time interval between transmission of two 670 consecutive packets in the test session in 671 microseconds"; 672 } 674 leaf session-timeout { 675 when "../number-of-packets != 'forever'" { 676 description 677 "Test session timeout only valid if the 678 test mode is periodic."; 679 } 680 type uint32; 681 units "seconds"; 682 default 900; 683 description 684 "The timeout value for the Session-Sender to 685 collect outstanding reflected packets."; 686 } 688 leaf measurement-interval { 689 when "../number-of-packets = 'forever'" { 690 description 691 "Valid only when the test to run forever, 692 i.e. continiously."; 693 } 694 type uint32; 695 units "seconds"; 696 default 60; 697 description 698 "Interval to calculate performance metric when 699 the test mode is 'continuous'."; 700 } 702 leaf repeat { 703 type union { 704 type uint32 { 705 range 0..4294967294; 706 } 707 type enumeration { 708 enum forever { 709 description 710 "Indicates that the test session SHALL 711 be repeated *forever* using the 712 information in repeat-interval 713 parameter, and SHALL NOT decrement 714 the value."; 715 } 716 } 717 } 718 default 0; 719 description 720 "This value determines if the TWAMP-Test session must 721 be repeated. When a test session has completed, the 722 repeat parameter is checked. The default value 723 of 0 indicates that the session MUST NOT be repeated. 724 If the repeat value is 1 through 4,294,967,294 725 then the test session SHALL be repeated using the 726 information in repeat-interval parameter. 727 The implementation MUST decrement the value of repeat 728 after determining a repeated session is expected."; 729 } 731 leaf repeat-interval { 732 when "../repeat != 0"; 733 type uint32; 734 units seconds; 735 default 0; 736 description 737 "This parameter determines the timing of repeated 738 TWAMP-Test sessions when repeat is more than 0."; 739 } 741 leaf dscp-value { 742 type inet:dscp; 743 default 0; 744 description 745 "DSCP value to be set in the test packet."; 746 } 748 leaf test-session-relector-mode { 749 type session-reflector-mode; 750 default "stateless"; 751 description 752 "The mode of TWAMP-Reflector for the test session."; 753 } 755 uses session-light-parameters; 756 uses session-light-auth-params; 757 } 758 } 760 container twamp-light-session-reflector { 761 if-feature session-reflector-light; 762 description 763 "TWAMP-Light Session-Reflector container"; 764 leaf reflector-light-enable { 765 type enable; 766 default "true"; 767 description 768 "Whether this network element is enabled to 769 act as TWAMP-Light Reflector"; 770 } 772 leaf ref-wait { 773 type uint32 { 774 range 1..604800; 775 } 776 units seconds; 777 default 900; 778 description 779 "REFWAIT(TWAMP test session timeout in seconds), 780 the default value is 900"; 781 } 783 leaf reflector-light-mode-state { 784 type session-reflector-mode; 785 default stateless; 786 description 787 "The state of the mode of the TWAMP-Light 788 Session-Reflector"; 789 } 791 list test-session { 792 key "session-id"; 793 unique "sender-ip sender-udp-port reflector-ip" 794 +" reflector-udp-port"; 795 description 796 "This structure is a container of test session 797 managed objects"; 799 leaf session-id { 800 type uint32; 801 description "Session ID"; 802 } 804 leaf dscp-handling-mode { 805 type session-dscp-mode; 806 default copy-received-value; 807 description 808 "Session-Reflector handling of DSCP: 809 - use value copied from received TWAMP-Test packet; 810 - use value explicitly configured"; 811 } 813 leaf dscp-value { 814 when "../dscp-handling-mode = 'use-configured-value'"; 815 type inet:dscp; 816 default 0; 817 description 818 "DSCP value to be set in the reflected packet 819 if dscp-handling-mode is set to use-configured-value."; 820 } 822 uses session-light-parameters; 823 uses session-light-auth-params; 824 } 825 } 826 } 828 /*Operational state data nodes*/ 829 container twamp-light-state{ 830 config "false"; 831 description 832 "Top level container for TWAMP-Light state data"; 834 container twamp-light-session-sender-state { 835 if-feature session-sender-light; 836 description 837 "Session-Sender container for state data"; 838 list test-session-state{ 839 key "session-id"; 840 description 841 "This structure is a container of test session 842 managed objects"; 844 leaf session-id { 845 type uint32; 846 description "Session ID"; 847 } 849 leaf sender-session-state { 850 type enumeration { 851 enum active { 852 description "Test session is active"; 853 } 854 enum ready { 855 description "Test session is idle"; 856 } 857 } 858 description 859 "State of the particular TWAMP-Light test 860 session at the sender"; 861 } 862 container current-stats { 863 description 864 "This container contains the results for the current 865 Measurement Interval in a Measurement session "; 866 leaf start-time { 867 type yang:date-and-time; 868 mandatory true; 869 description 870 "The time that the current Measurement Interval started"; 871 } 872 leaf number-of-packets { 873 type uint32; 874 description 875 "The overall number of UDP test packets to be 876 transmitted by the sender for this test session"; 877 } 879 leaf packet-padding-size { 880 type uint32; 881 default 27; 882 description 883 "Size of the Packet Padding. Suggested to run 884 Path MTU Discovery to avoid packet fragmentation 885 in IPv4 and packet backholing in IPv6"; 886 } 888 leaf interval { 889 type uint32; 890 units microseconds; 891 description 892 "Time interval between transmission of two 893 consecutive packets in the test session"; 894 } 896 leaf duplicate-packets { 897 type uint32; 898 description "Duplicate packets"; 899 } 900 leaf reordered-packets { 901 type uint32; 902 description "Reordered packets"; 903 } 905 uses session-light-parameters; 906 leaf dscp { 907 type inet:dscp; 908 description 909 "The DSCP value that was placed in the header of 910 TWAMP UDP test packets by the Session-Sender."; 911 } 912 uses maintenance-statistics; 914 container two-way-delay { 915 description 916 "two way delay result of the test session"; 917 uses delay-statistics; 918 } 919 container one-way-delay-far-end { 920 description 921 "one way delay far-end of the test session"; 922 uses delay-statistics; 923 } 924 container one-way-delay-near-end { 925 description 926 "one way delay near-end of the test session"; 927 uses delay-statistics; 928 } 930 container two-way-loss { 931 description 932 "two way loss count and ratio result of 933 the test session"; 934 uses packet-loss-statistics; 935 } 936 container one-way-loss-far-end { 937 when "/twamp-light/twamp-light-session-sender/" 938 +"test-session[session-id]/" 939 +"test-session-relector-mode = 'stateful'" { 940 description 941 "One-way statistic is only valid id the 942 session-reflector is in stateful mode."; 943 } 944 description 945 "one way loss count and ratio far-end of 946 the test session"; 947 uses packet-loss-statistics; 948 } 949 container one-way-loss-near-end { 950 when "/twamp-light/twamp-light-session-sender/" 951 +"test-session[session-id]/" 952 +"test-session-relector-mode = 'stateful'" { 953 description 954 "One-way statistic is only valid id the 955 session-reflector is in stateful mode."; 956 } 957 description 958 "one way loss count and ratio near-end of 959 the test session"; 960 uses packet-loss-statistics; 961 } 962 } 964 list history-stats { 965 key id; 966 description 967 "This container contains the results for the history 968 Measurement Interval in a Measurement session "; 969 leaf id { 970 type uint32; 971 description 972 "The identifier for the Measurement Interval 973 within this session"; 974 } 975 leaf end-time { 976 type yang:date-and-time; 977 mandatory true; 978 description 979 "The time that the Measurement Interval ended"; 980 } 981 leaf number-of-packets { 982 type uint32; 983 description 984 "The overall number of UDP test packets to be 985 transmitted by the sender for this test session"; 986 } 988 leaf packet-padding-size { 989 type uint32; 990 default 27; 991 description 992 "Size of the Packet Padding. Suggested to run 993 Path MTU Discovery to avoid packet fragmentation 994 in IPv4 and packet blackholing in IPv6"; 995 } 997 leaf interval { 998 type uint32; 999 units microseconds; 1000 description 1001 "Time interval between transmission of two 1002 consecutive packets in the test session"; 1003 } 1004 leaf duplicate-packets { 1005 type uint32; 1007 description "Duplicate packets"; 1008 } 1009 leaf reordered-packets { 1010 type uint32; 1011 description "Reordered packets"; 1012 } 1013 leaf loss-packets { 1014 type uint32; 1015 description "Loss packets"; 1016 } 1018 uses session-light-parameters; 1019 leaf dscp { 1020 type inet:dscp; 1021 description 1022 "The DSCP value that was placed in the header of 1023 TWAMP UDP test packets by the Session-Sender."; 1024 } 1025 uses maintenance-statistics; 1027 container two-way-delay{ 1028 description 1029 "two way delay result of the test session"; 1030 uses delay-statistics; 1031 } 1032 container one-way-delay-far-end{ 1033 description 1034 "one way delay far end of the test session"; 1035 uses delay-statistics; 1036 } 1037 container one-way-delay-near-end{ 1038 description 1039 "one way delay near end of the test session"; 1040 uses delay-statistics; 1041 } 1042 } 1043 } 1044 } 1046 container twamp-light-session-reflector-state { 1047 if-feature session-reflector-light; 1048 description 1049 "TWAMP-Light Session-Reflector container for 1050 state data"; 1051 leaf reflector-light-admin-status { 1052 type boolean; 1053 mandatory "true"; 1054 description 1055 "Whether this network element is enabled to 1056 act as TWAMP-Light Reflector"; 1057 } 1059 list test-session-state { 1060 key "session-id"; 1061 description 1062 "This structure is a container of test session 1063 managed objects"; 1065 leaf session-id { 1066 type uint32; 1067 description "Session ID"; 1068 } 1070 uses maintenance-statistics; 1071 uses session-light-parameters; 1072 } 1073 } 1074 } 1076 rpc twamp-sender-start { 1077 description 1078 "start the configured sender session"; 1079 input { 1080 leaf session-id { 1081 type uint32; 1082 mandatory true; 1083 description 1084 "The session to be started"; 1085 } 1086 } 1087 } 1089 rpc twamp-sender-stop { 1090 description 1091 "stop the configured sender session"; 1092 input { 1093 leaf session-id { 1094 type uint32; 1095 mandatory true; 1096 description 1097 "The session to be stopped"; 1098 } 1099 } 1100 } 1101 } 1102 1104 4. IANA Considerations 1106 This document registers a URI in the IETF XML registry [RFC3688]. 1107 Following the format in [RFC3688], the following registration is 1108 requested to be made. 1110 URI: urn:ietf:params:xml:ns:yang:ietf-twamp-light 1112 Registrant Contact: The IPPM WG of the IETF. 1114 XML: N/A, the requested URI is an XML namespace. 1116 This document registers a YANG module in the YANG Module Names 1117 registry [RFC6020]. 1119 name: ietf-twamp-light 1121 namespace: urn:ietf:params:xml:ns:yang:ietf-twamp-light 1123 prefix: twamp 1125 reference: RFC XXXX 1127 5. Security Considerations 1129 The configuration, state, action data defined in this document may be 1130 accessed via the NETCONF protocol [RFC6241]. SSH [RFC6242] is 1131 mandatory secure transport that is the lowest NETCONF layer. The 1132 NETCONF access control model [RFC6536] provides means to restrict 1133 access for particular NETCONF users to a pre-configured subset of all 1134 available NETCONF protocol operations and content. 1136 But, in general, this TWAMP Light YANG module does not change any 1137 underlying security issues that already may exist in 1138 [I-D.elteto-ippm-twamp-mib]. 1140 6. Acknowledgements 1142 7. References 1144 7.1. Normative References 1146 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1147 Requirement Levels", BCP 14, RFC 2119, 1148 DOI 10.17487/RFC2119, March 1997, 1149 . 1151 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1152 DOI 10.17487/RFC3688, January 2004, 1153 . 1155 [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. 1156 Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", 1157 RFC 5357, DOI 10.17487/RFC5357, October 2008, 1158 . 1160 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1161 the Network Configuration Protocol (NETCONF)", RFC 6020, 1162 DOI 10.17487/RFC6020, October 2010, 1163 . 1165 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1166 and A. Bierman, Ed., "Network Configuration Protocol 1167 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1168 . 1170 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1171 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1172 . 1174 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1175 Protocol (NETCONF) Access Control Model", RFC 6536, 1176 DOI 10.17487/RFC6536, March 2012, 1177 . 1179 [RFC7750] Hedin, J., Mirsky, G., and S. Baillargeon, "Differentiated 1180 Service Code Point and Explicit Congestion Notification 1181 Monitoring in the Two-Way Active Measurement Protocol 1182 (TWAMP)", RFC 7750, DOI 10.17487/RFC7750, February 2016, 1183 . 1185 7.2. Informative References 1187 [I-D.elteto-ippm-twamp-mib] 1188 Elteto, T. and G. Mirsky, "Two-Way Active Measurement 1189 Protocol (TWAMP) Management Information Base (MIB)", 1190 draft-elteto-ippm-twamp-mib-01 (work in progress), January 1191 2014. 1193 [I-D.ietf-ippm-twamp-yang] 1194 Civil, R., Morton, A., Rahman, R., Jethanandani, M., and 1195 K. Pentikousis, "Two-Way Active Measurement Protocol 1196 (TWAMP) Data Model", draft-ietf-ippm-twamp-yang-03 (work 1197 in progress), February 2017. 1199 Authors' Addresses 1201 Greg Mirsky 1202 ZTE Corp. 1204 Email: gregimirsky@gmail.com 1206 Xiao Min 1207 ZTE Corp. 1209 Email: xiao.min2@zte.com.cn 1211 Adrian Pan 1212 Ericsson 1214 Email: adrian.pan@ericsson.com 1216 Wei S Luo 1217 Ericsson 1219 Email: wei.s.luo@ericsson.com