idnits 2.17.1 draft-nainar-mpls-lsp-ping-yang-01.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 : ---------------------------------------------------------------------------- == There are 1 instance of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 256 has weird spacing: '...terface if:...' == Line 263 has weird spacing: '...address ip-...' == Line 271 has weird spacing: '...eceived yan...' == Line 327 has weird spacing: '...terface if:...' == Line 334 has weird spacing: '...address ip-...' == (4 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (January 20, 2021) is 1191 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC8532' is defined on line 1722, but no explicit reference was found in the text == Unused Reference: 'RFC8533' is defined on line 1729, but no explicit reference was found in the text Summary: 0 errors (**), 0 flaws (~~), 11 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 mpls N. Nainar 3 Internet-Draft C. Pignataro 4 Intended status: Standards Track Cisco Systems, Inc. 5 Expires: July 24, 2021 W. Zheng 6 Huawei 7 January 20, 2021 9 YANG Data Model for MPLS LSP Ping 10 draft-nainar-mpls-lsp-ping-yang-01 12 Abstract 14 This document describes the YANG data model for Multi-Protocol Label 15 Switching (MPLS) LSP Ping. The model is based on YANG 1.1 as defined 16 in RFC 7950 and conforms to the Network Management Datastore 17 Architecture (NMDA) as described in RFC 8342. 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 https://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 July 24, 2021. 36 Copyright Notice 38 Copyright (c) 2021 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 (https://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. Requirements notation . . . . . . . . . . . . . . . . . . 3 55 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 56 1.3. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 57 2. Design of Data Model . . . . . . . . . . . . . . . . . . . . 3 58 2.1. Scope of Model . . . . . . . . . . . . . . . . . . . . . 3 59 2.2. Module Hierarchy Organization . . . . . . . . . . . . . . 3 60 2.3. Optional Capabilities . . . . . . . . . . . . . . . . . . 4 61 2.4. RPC Operations . . . . . . . . . . . . . . . . . . . . . 4 62 2.5. Configuration and Notifications . . . . . . . . . . . . . 5 63 2.6. Augment Method . . . . . . . . . . . . . . . . . . . . . 5 64 2.7. The Complete Tree . . . . . . . . . . . . . . . . . . . . 5 65 3. LSP Ping YANG Module . . . . . . . . . . . . . . . . . . . . 10 66 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 67 5. Security Considerations . . . . . . . . . . . . . . . . . . . 34 68 6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 35 69 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 35 70 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 71 8.1. Normative References . . . . . . . . . . . . . . . . . . 35 72 8.2. Informative References . . . . . . . . . . . . . . . . . 36 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37 75 1. Introduction 77 [RFC8029] describes the mechanism to detect any data-plane failures 78 in MPLS Label Switched Paths (LSPs). The MPLS echo request is 79 triggered from the head end node with different TLVs carrying control 80 plane information such as Target FEC Stack that are used by the 81 transit or the tail end node to validate the path and detect any 82 failures. 84 The Network Configuration Protocol (NETCONF) [RFC6241] is one of the 85 network management protocols that defines the mechanism to manage 86 network devices. YANG version 1 defined in [RFC6020] and version 1.1 87 defined in [RFC7950] is a modular data modeling language used to 88 represent the data structure of the configuration and operational 89 state of any device managed using NETCONF. 91 This document describes the YANG data model for Multi-Protocol Label 92 Switching (MPLS) LSP Ping. The model is based on YANG 1.1 as defined 93 in [RFC7950] and conforms to the Network Management Datastore 94 Architecture (NMDA) as described in [RFC8342]. 96 1.1. Requirements notation 98 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 99 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 100 "OPTIONAL" in this document are to be interpreted as described in BCP 101 14 [RFC2119] [RFC8174] when, and only when, they appear in all 102 capitals, as shown here. 104 1.2. Terminology 106 This document uses the terminologies defined in [RFC8029], [RFC7950], 107 and so the readers are expected to be familiar with the 108 terminologies. 110 1.3. Tree Diagrams 112 This document uses the graphical representation of the data models 113 defined in [RFC8340]. 115 2. Design of Data Model 117 2.1. Scope of Model 119 [RFC8029] describes the mechanism to detect any data-plane failures 120 in MPLS Label Switched Paths (LSPs). [RFC6425] extends the mechanism 121 further to P2MP MPLS LSPs. [RFC8287] extends the mechanism for 122 Segment Routing with MPLS data plane. 124 The goal of this document is to produce a data model that provides a 125 common user interface to the MPLS LSP Ping and allows the user to 126 either configure and schedule the testing or to activate on-demand. 128 2.2. Module Hierarchy Organization 130 The modules is currently defined in a way that can be used to 131 instruct the echo parameters information that the initiator node must 132 include in the payload and in the probe header. The modules is 133 defined to use RPC operations to execute LSP Ping and LSP Path 134 tracing with multipath awareness and retrieve the result information. 136 The future version of the module will be updated to include ways to 137 configure the testing parameters and schedule the testing on any node 138 for continuous monitoring and use notification to receive any change 139 in the monitoring status. 141 2.3. Optional Capabilities 143 This module includes the option to configure the MPLS OAM feature 144 that is required in some vendor software to enable the capability. 145 This is not a mandatory feature and so the module is compatible with 146 nodes that does not require any such configuration. The structure of 147 the configuration is as shown below: 149 module: ietf-mpls-lsp-ping 150 augment /rt:routing/mpls:mpls: 151 +--rw mpls-oam {mpls-oam}? 152 +--rw enable? boolean 154 2.4. RPC Operations 156 This module defines 3 different RPC operations as below: 158 o Continuity Check 160 o Single Path Discovery 162 o Multi Path Discovery 164 RPC "continuity-check" triggers LSP Ping from the initiator node to 165 validate the path for any specific FEC defined in the Target FEC 166 Stack and retrieve the response from the responder node as RPC 167 output. The probe count object is used to control the number of 168 probes sent. For each probe sent, a response is expected to be 169 retrieved. The global-flags object can be used to control the FEC 170 validation as defined in Section 6.2.3 of [RFC8029].. 172 RPC "single-path-discovery" triggers the LSP trace from the Initiator 173 node to trace the path for any specific FEC defined in the Target FEC 174 Stack and retrieve the response from each transit hops as RPC output. 175 While the input parameters are similar to RPC continuity-check, this 176 RPC will instruct the initiator node to send probes by sequentially 177 incrementing the TTL of the probe. 179 RPC "multi-path-discovery" is similar to "single-path-discovery" with 180 an additional ddmap-hash as an input parameter and retrieve the 181 response from each equal cost multipath (ECMP) transit hops as RPC 182 output. 184 2.5. Configuration and Notifications 186 To be Updated. 188 2.6. Augment Method 190 To be Updated. 192 2.7. The Complete Tree 194 Following is a complete tree representation of LSP Ping YANG module. 196 module: ietf-mpls-lsp-ping 197 augment /rt:routing/mpls:mpls: 198 +--rw mpls-oam {mpls-oam}? 199 +--rw enable? boolean 201 rpcs: 202 +---x continuity-check 203 | +---w input 204 | | +---w echo-header-parameters 205 | | | +---w source-address? ip-address 206 | | | +---w destination-address? ip-loopback-address 207 | | | +---w traffic-class? mpls-traffic-class 208 | | | +---w mpls-entropy-label? mpls-entropy-label 209 | | | +---w header-mpls-ttl? uint8 210 | | | +---w mpls-exp-label? boolean 211 | | +---w echo-payload-parameters 212 | | | +---w reply-tos-tlv? boolean 213 | | | +---w reply-tos-value 214 | | | | +---w reply-tos-value? uint8 215 | | | +---w probe-size? uint32 216 | | | +---w probe-sweep 217 | | | | +---w min-probe-sweep? uint16 218 | | | | +---w max-probe-sweep? uint16 219 | | | +---w target-fec-stack-type 220 | | | | +---w target-fec-stack-type identityref 221 | | | | +---w (target-fec-stack-value)? 222 | | | | +--:(ldp-ip-prefix) 223 | | | | | +---w ldp-ip-prefix? inet:ip-prefix 224 | | | | +--:(rsvp) 225 | | | | | +---w tunnel-id? uint32 226 | | | | +--:(vpn-ip-prefix) 227 | | | | | +---w vrf-id? uint32 228 | | | | | +---w vpn-ip-prefix? inet:ip-prefix 229 | | | | +--:(pw) 230 | | | | | +---w pw-id? uint32 231 | | | | | +---w remote-pe-addr? inet:ip-address 232 | | | | +--:(bgp-label-prefix) 233 | | | | | +---w bgp-label-prefix? inet:ip-prefix 234 | | | | +--:(generic-ip-prefix) 235 | | | | | +---w generic-ip-prefix? inet:ip-prefix 236 | | | | +--:(igp-ip-prefix) 237 | | | | +---w protocol? identityref 238 | | | | +---w igp-ip-prefix? inet:ip-prefix 239 | | | +---w target-fec-type target-fec-type 240 | | | +---w reply-mode? reply-mode 241 | | | +---w return-ttl-tlv? boolean 242 | | | +---w return-ttl-value 243 | | | | +---w return-ttl-value? uint8 244 | | | +---w global-flags 245 | | | +---w v-flag? boolean 246 | | | +---w t-flag? boolean 247 | | | +---w r-flag? boolean 248 | | +---w echo-scheduling-parameters 249 | | +---w probe-interval 250 | | | +---w min-probe-interval? identityref 251 | | | +---w max-probe-interval? identityref 252 | | +---w probe-count? uint32 253 | | +---w probe-timeout? identityref 254 | | +---w output-info 255 | | +---w output-intf* [interface] 256 | | | +---w interface if:interface-ref 257 | | +---w nexthop? inet:ip-address 258 | +--ro output 259 | +--ro response-list* [response-index] 260 | +--ro response-index uint32 261 | +--ro response-header-parameters 262 | | +--ro resp-source-address ip-address 263 | | +--ro resp-destination-address ip-address 264 | | +--ro resp-traffic-class uint8 265 | +--ro response-payload-parameters 266 | +--ro reply-mode reply-mode 267 | +--ro return-code return-code 268 | +--ro return-sub-code uint8 269 | +--ro seq-number uint32 270 | +--ro timestamp-sent yang:date-and-time 271 | +--ro timestamp-received yang:date-and-time 272 | +--ro target-fec-type target-fec-type 273 +---x single-path-discovery 274 | +---w input 275 | | +---w echo-header-parameters 276 | | | +---w source-address? ip-address 277 | | | +---w destination-address? ip-loopback-address 278 | | | +---w traffic-class? mpls-traffic-class 279 | | | +---w mpls-entropy-label? mpls-entropy-label 280 | | | +---w header-mpls-ttl? uint8 281 | | | +---w mpls-exp-label? boolean 282 | | +---w echo-payload-parameters 283 | | | +---w reply-tos-tlv? boolean 284 | | | +---w reply-tos-value 285 | | | | +---w reply-tos-value? uint8 286 | | | +---w probe-size? uint32 287 | | | +---w probe-sweep 288 | | | | +---w min-probe-sweep? uint16 289 | | | | +---w max-probe-sweep? uint16 290 | | | +---w target-fec-stack-type 291 | | | | +---w target-fec-stack-type identityref 292 | | | | +---w (target-fec-stack-value)? 293 | | | | +--:(ldp-ip-prefix) 294 | | | | | +---w ldp-ip-prefix? inet:ip-prefix 295 | | | | +--:(rsvp) 296 | | | | | +---w tunnel-id? uint32 297 | | | | +--:(vpn-ip-prefix) 298 | | | | | +---w vrf-id? uint32 299 | | | | | +---w vpn-ip-prefix? inet:ip-prefix 300 | | | | +--:(pw) 301 | | | | | +---w pw-id? uint32 302 | | | | | +---w remote-pe-addr? inet:ip-address 303 | | | | +--:(bgp-label-prefix) 304 | | | | | +---w bgp-label-prefix? inet:ip-prefix 305 | | | | +--:(generic-ip-prefix) 306 | | | | | +---w generic-ip-prefix? inet:ip-prefix 307 | | | | +--:(igp-ip-prefix) 308 | | | | +---w protocol? identityref 309 | | | | +---w igp-ip-prefix? inet:ip-prefix 310 | | | +---w target-fec-type target-fec-type 311 | | | +---w reply-mode? reply-mode 312 | | | +---w return-ttl-tlv? boolean 313 | | | +---w return-ttl-value 314 | | | | +---w return-ttl-value? uint8 315 | | | +---w global-flags 316 | | | +---w v-flag? boolean 317 | | | +---w t-flag? boolean 318 | | | +---w r-flag? boolean 319 | | +---w echo-scheduling-parameters 320 | | +---w probe-interval 321 | | | +---w min-probe-interval? identityref 322 | | | +---w max-probe-interval? identityref 323 | | +---w probe-count? uint32 324 | | +---w probe-timeout? identityref 325 | | +---w output-info 326 | | +---w output-intf* [interface] 327 | | | +---w interface if:interface-ref 328 | | +---w nexthop? inet:ip-address 329 | +--ro output 330 | +--ro response-list* [response-index] 331 | +--ro response-index uint32 332 | +--ro response-header-parameters 333 | | +--ro resp-source-address ip-address 334 | | +--ro resp-destination-address ip-address 335 | | +--ro resp-traffic-class uint8 336 | +--ro response-payload-parameters 337 | | +--ro reply-mode reply-mode 338 | | +--ro return-code return-code 339 | | +--ro return-sub-code uint8 340 | | +--ro seq-number uint32 341 | | +--ro timestamp-sent yang:date-and-time 342 | | +--ro timestamp-received yang:date-and-time 343 | | +--ro target-fec-type target-fec-type 344 | +--ro response-payload-optional-parameters 345 | +--ro ddmap 346 | +--ro ddmap-mtu? int16 347 | +--ro ddmap-downstream-address? ip-address 348 | +--ro ddmap-downstream-intf-index? int32 349 | +--ro ddmap-return-code? return-code 350 | +--ro ddmap-return-subcode? int16 351 | +--ro ddmap-label-stack* [label] 352 | +--ro label rt-types:mpls-label 353 | +--ro protocol? ddmap-protocol 354 +---x multi-path-discovery 355 +---w input 356 | +---w echo-header-parameters 357 | | +---w source-address? ip-address 358 | | +---w destination-address? ip-loopback-address 359 | | +---w traffic-class? mpls-traffic-class 360 | | +---w mpls-entropy-label? mpls-entropy-label 361 | | +---w header-mpls-ttl? uint8 362 | | +---w mpls-exp-label? boolean 363 | +---w echo-payload-parameters 364 | | +---w reply-tos-tlv? boolean 365 | | +---w reply-tos-value 366 | | | +---w reply-tos-value? uint8 367 | | +---w probe-size? uint32 368 | | +---w probe-sweep 369 | | | +---w min-probe-sweep? uint16 370 | | | +---w max-probe-sweep? uint16 371 | | +---w target-fec-stack-type 372 | | | +---w target-fec-stack-type identityref 373 | | | +---w (target-fec-stack-value)? 374 | | | +--:(ldp-ip-prefix) 375 | | | | +---w ldp-ip-prefix? inet:ip-prefix 376 | | | +--:(rsvp) 377 | | | | +---w tunnel-id? uint32 378 | | | +--:(vpn-ip-prefix) 379 | | | | +---w vrf-id? uint32 380 | | | | +---w vpn-ip-prefix? inet:ip-prefix 381 | | | +--:(pw) 382 | | | | +---w pw-id? uint32 383 | | | | +---w remote-pe-addr? inet:ip-address 384 | | | +--:(bgp-label-prefix) 385 | | | | +---w bgp-label-prefix? inet:ip-prefix 386 | | | +--:(generic-ip-prefix) 387 | | | | +---w generic-ip-prefix? inet:ip-prefix 388 | | | +--:(igp-ip-prefix) 389 | | | +---w protocol? identityref 390 | | | +---w igp-ip-prefix? inet:ip-prefix 391 | | +---w target-fec-type target-fec-type 392 | | +---w reply-mode? reply-mode 393 | | +---w return-ttl-tlv? boolean 394 | | +---w return-ttl-value 395 | | | +---w return-ttl-value? uint8 396 | | +---w global-flags 397 | | +---w v-flag? boolean 398 | | +---w t-flag? boolean 399 | | +---w r-flag? boolean 400 | +---w echo-scheduling-parameters 401 | | +---w probe-interval 402 | | | +---w min-probe-interval? identityref 403 | | | +---w max-probe-interval? identityref 404 | | +---w probe-count? uint32 405 | | +---w probe-timeout? identityref 406 | | +---w output-info 407 | | +---w output-intf* [interface] 408 | | | +---w interface if:interface-ref 409 | | +---w nexthop? inet:ip-address 410 | +---w ddmap-hash 411 | +---w ddmap-hash? multipath-hashtype 412 +--ro output 413 +--ro response-list* [response-index] 414 +--ro response-index uint32 415 +--ro response-header-parameters 416 | +--ro resp-source-address ip-address 417 | +--ro resp-destination-address ip-address 418 | +--ro resp-traffic-class uint8 419 +--ro response-payload-parameters 420 | +--ro reply-mode reply-mode 421 | +--ro return-code return-code 422 | +--ro return-sub-code uint8 423 | +--ro seq-number uint32 424 | +--ro timestamp-sent yang:date-and-time 425 | +--ro timestamp-received yang:date-and-time 426 | +--ro target-fec-type target-fec-type 427 +--ro response-payload-optional-parameters 428 +--ro ddmap 429 +--ro ddmap-mtu? int16 430 +--ro ddmap-downstream-address? ip-address 431 +--ro ddmap-downstream-intf-index? int32 432 +--ro ddmap-return-code? return-code 433 +--ro ddmap-return-subcode? int16 434 +--ro ddmap-label-stack* [label] 435 +--ro label rt-types:mpls-label 436 +--ro protocol? ddmap-protocol 438 3. LSP Ping YANG Module 440 file "ietf-mpls-lsp-ping@2020-06-09.yang" 441 module ietf-mpls-lsp-ping-rev1d { 442 yang-version 1.1; 443 namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-lsp-ping-rev1d"; 444 prefix "lsp-ping"; 446 import ietf-inet-types { 447 prefix inet; 448 reference 449 "RFC 6991: Common YANG Types."; 450 } 452 import ietf-yang-types { 453 prefix yang; 454 reference 455 "RFC 6991: Common YANG Types."; 456 } 458 import ietf-interfaces { 459 prefix if; 460 reference 461 "RFC 8343: YANG Interface Management"; 462 } 464 import ietf-lime-time-types { 465 prefix lime; 466 } 468 import ietf-routing { 469 prefix rt; 470 reference 471 "RFC 8022: YANG Routing Management"; 472 } 474 import ietf-mpls { 475 prefix mpls; 476 reference 477 "to be updated"; 478 } 480 import ietf-routing-types { 481 prefix rt-types; 482 reference 483 "RFC 8294: Common YANG Data Types for the Routing Area."; 484 } 486 organization 487 "IETF MPLS Working Group"; 489 contact 490 "WG Web: 491 WG List: 493 Editor: Nagendra Kumar Nainar 494 495 Editor: Carlos Pignataro 496 "; 498 description 499 "This YANG module defines the configuration of MPLS LSP Ping. 500 Copyright (c) 2018 IETF Trust and the persons identified as 501 authors of the code. All rights reserved. 503 Redistribution and use in source and binary forms, with or 504 without modification, is permitted pursuant to, and subject to 505 the license terms contained in, the Simplified BSD License set 506 forth in Section 4.c of the IETF Trust's Legal Provisions 507 Relating to IETF Documents 508 (https://trustee.ietf.org/license-info). 510 This version of this YANG module is part of RFC XXXX 511 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 512 for full legal notices. 514 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL 515 NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 516 'MAY', and 'OPTIONAL' in this document are to be interpreted as 517 described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, 518 they appear in all capitals, as shown here. 520 This version of this YANG module is part of RFC XXXX; 521 see the RFC itself for full legal notices."; 523 revision 2020-06-09 { 524 description 525 "Initial revision."; 526 reference 527 "To be Updated"; 528 } 530 feature mpls-oam { 531 description 532 "MPLS OAM feature."; 533 } 535 typedef ipv4-loopback-address { 536 type inet:ipv4-address { 537 pattern '127.*'; 538 } 539 description 540 "This type represents an IPv4 Loopback address, 541 which is in the range of 127.0.0.0 to 127.255.255.255."; 542 reference 543 "RFC 1212: Requirements for Internet Hosts 544 -- Communication Layers."; 545 } 547 typedef ipv6-loopback-address { 548 type inet:ipv6-address { 549 pattern 'to-be-updated'; 550 } 551 description 552 "This type represents an IPv6 Loopback address, 553 which is ::1/128"; 554 reference 555 "RFC 4291: IP Version 6 Addressing Architecture."; 556 } 558 typedef ip-loopback-address { 559 type union { 560 type ipv4-loopback-address; 561 type ipv6-loopback-address; 562 } 563 description 564 "This type represents a version-neutral IP Loopback 565 address."; 567 } 569 typedef ip-address { 570 type union { 571 type inet:ipv4-address; 572 type inet:ipv6-address; 573 } 574 description 575 "Version neutral IP Address"; 576 } 578 typedef mpls-traffic-class { 579 type uint8 { 580 range 0..7; 581 } 582 description 583 "MPLS Traffic Class (EXP) value within range 0 to 7."; 584 } 586 typedef mpls-entropy-label { 587 type rt-types:mpls-label-general-use; 589 description 590 "This type represents the Entropy Label, 591 which is outside the reserved range."; 592 reference 593 "RFC 6790: The Use of Entropy Labels in MPLS Forwarding"; 594 } 596 typedef multipath-hashtype { 597 type enumeration { 598 enum mp-empty { 599 value "0"; 600 description 601 "No Multipath"; 602 } 603 enum mp-ip-addr { 604 value "2"; 605 description 606 "IP Address based Multipath 607 Information Encoding"; 608 } 609 enum mp-ip-range { 610 value "4"; 611 description 612 "IP Address range based Multipath 613 Information Encoding"; 614 } 615 enum mp-ip-bitmask { 616 value "8"; 617 description 618 "Bit masked IP Address set for Multipath 619 Information Encoding"; 620 } 621 enum mp-label-bitmask { 622 value "9"; 623 description 624 "Bit masked Label set for Multipath 625 Information Encoding"; 626 } 627 } 628 description 629 "This type represents the multipath Data type to be used in 630 the DDMAP for Multipath tracing."; 631 reference 632 "RFC 8029: Section 3.4.1.1."; 633 } 635 typedef reply-mode { 636 type enumeration { 637 enum do-not-reply { 638 value "1"; 639 description 640 "Do not Reply"; 641 reference 642 "RFC8029: Section 3"; 643 } 644 enum reply-udp { 645 value "2"; 646 description 647 "Reply via an IPv4/IPv6 UDP packet"; 648 reference 649 "RFC8029: Section 3"; 650 } 651 enum reply-udp-ra { 652 value "3"; 653 description 654 "Reply via an IPv4/IPv6 UDP packet with 655 Router Alert"; 656 reference 657 "RFC8029: Section 3"; 658 } 659 enum reply-app-cc { 660 value "4"; 661 description 662 "Reply via application-level control 663 channel"; 664 reference 665 "RFC8029: Section 3"; 666 } 667 enum reply-via-path { 668 value "5"; 669 description 670 "Reply via Specified Path"; 671 reference 672 "RFC7110: Section 4.1"; 673 } 674 } 675 description 676 "This type defines the Reply mode"; 677 } 679 typedef return-code { 680 type enumeration { 681 enum no-return { 682 value "0"; 683 description 684 "No Return Code"; 685 reference 686 "RFC 8029: Section 3.1"; 687 } 688 enum malformed-echo { 689 value "1"; 690 description 691 "Malformed Echo Request Received"; 692 reference 693 "RFC 8029: Section 3.1"; 694 } 695 enum unknown-tlvs { 696 value "2"; 697 description 698 "One or more of the TLVs was not 699 understood"; 700 reference 701 "RFC 8029: Section 3.1"; 702 } 703 enum egress-reply { 704 value "3"; 705 description 706 "Replying router is an egress for the 707 FEC at stack-depth "; 708 reference 709 "RFC 8029: Section 3.1"; 710 } 711 enum egress-nomap { 712 value "4"; 713 description 714 "Replying router has no mapping for the 715 FEC at stack-depth "; 716 reference 717 "RFC 8029: Section 3.1"; 718 } 719 enum dd-mismatch { 720 value "5"; 721 description 722 "Downstream Mapping Mismatch"; 723 reference 724 "RFC 8029: Section 3.1"; 725 } 726 enum unknown-upstream { 727 value "6"; 728 description 729 "Upstream Interface Index Unknown"; 730 reference 731 "RFC 8029: Section 3.1"; 732 } 733 enum reserved { 734 value "7"; 735 description 736 "Reserved"; 737 reference 738 "RFC 8029: Section 3.1"; 739 } 740 enum label-switched { 741 value "8"; 742 description 743 "Label switched at stack-depth "; 744 reference 745 "RFC 8029: Section 3.1"; 746 } 747 enum label-switched-no-mpls { 748 value "9"; 749 description 750 "Label switched but no MPLS forwarding 751 at stack-depth "; 752 reference 753 "RFC 8029: Section 3.1"; 754 } 755 enum FEC-map-mismatch { 756 value "10"; 757 description 758 "Mapping for this FEC is not the given 759 label at stack-depth "; 760 reference 761 "RFC 8029: Section 3.1"; 762 } 763 enum no-label { 764 value "11"; 765 description 766 "No label entry at stack-depth "; 767 reference 768 "RFC 8029: Section 3.1"; 769 } 770 enum protocol-mismatch { 771 value "12"; 772 description 773 "Protocol not associated with interface 774 at FEC stack-depth "; 775 reference 776 "RFC 8029: Section 3.1"; 777 } 778 enum premature-terminate { 779 value "13"; 780 description 781 "Premature termination of ping due to 782 label stack shrinking to a single label"; 783 reference 784 "RFC 8029: Section 3.1"; 785 } 786 enum ddmap-return-code { 787 value "14"; 788 description 789 "See DDMAP TLV for meaning of Return Code 790 and Return Subcode"; 791 reference 792 "RFC 8029: Section 3.1"; 793 } 794 enum label-switched-fec-change { 795 value "15"; 796 description 797 "Label switched with FEC change"; 798 reference 799 "RFC 8029: Section 3.1"; 800 } 801 } 802 description 803 "This defines the Return codes received in the 804 Echo Response."; 805 reference 806 "RFC 8029: Section 3.1"; 808 } 810 typedef ddmap-protocol { 811 type enumeration { 812 enum unknown { 813 value "0"; 814 description 815 "Unknown Signaling Protocol"; 816 } 817 enum static { 818 value "1"; 819 description 820 "Static Signaling Protocol"; 821 } 822 enum bgp { 823 value "2"; 824 description 825 "BGP Signaling Protocol"; 826 } 827 enum ldp { 828 value "3"; 829 description 830 "LDP Signaling Protocol"; 831 } 832 enum rsvp-te { 833 value "4"; 834 description 835 "RSVP-TE Signaling Protocol"; 836 } 837 } 838 description 839 "This defines the Signaling Protocol 840 received in the DDMAP."; 841 reference 842 "RFC 8029: Section 3.4.1.2"; 843 } 845 identity igp-proto { 846 description 847 "IGP Protocol."; 848 } 850 identity igp-any { 851 base igp-proto; 852 description 853 "Any IGP Protocol. The value is set to 854 0 in the TLV."; 855 reference 856 "RFC8287: Section 9.2"; 857 } 858 identity igp-ospfv2 { 859 base igp-proto; 860 description 861 "OSPFv2 IGP Protocol. The value is set to 862 1 in the TLV."; 863 reference 864 "RFC8287: Section 9.2"; 865 } 866 identity igp-ospfv3 { 867 base igp-proto; 868 description 869 "OSPFv3 IGP Protocol. The value is set to 870 3 in the TLV."; 871 reference 872 "RFC8287: Section 9.2"; 873 } 874 identity igp-isis { 875 base igp-proto; 876 description 877 "ISIS IGP Protocol. The value is set to 878 2 in the TLV."; 879 reference 880 "RFC8287: Section 9.2"; 881 } 883 identity target-fec-type { 884 description 885 "Target FEC Stack TLV Type"; 886 } 888 identity ldp-ip-prefix { 889 base target-fec-type; 890 description 891 "LDP IPv4/IPv6 Prefix."; 892 } 894 identity rsvp { 895 base target-fec-type; 896 description 897 "RSVP IPv4/IPv6 LSP."; 898 } 900 identity vpn-ip-prefix { 901 base target-fec-type; 902 description 903 "VPN IPv4/IPv6 Prefix."; 905 } 907 identity pw { 908 base target-fec-type; 909 description 910 "FEC 129 pseudowire IPv4/IPv6."; 911 } 913 identity bgp-label-prefix { 914 base target-fec-type; 915 description 916 "BGP labeled IPv4/IPv6 Prefix."; 917 } 919 identity generic-ip-prefix { 920 base target-fec-type; 921 description 922 "Generic IPv4/IPv6 Prefix."; 923 } 925 identity nil-fec { 926 base target-fec-type; 927 description 928 "Nil FEC TLV."; 929 } 931 identity igp-ip-prefix { 932 base target-fec-type; 933 description 934 "IGP IPv4/IPv6 Prefix Segment ID."; 935 } 937 identity igp-adj-prefix { 938 base target-fec-type; 939 description 940 "IGP Adjacency Segment ID."; 941 } 943 grouping global-flags { 944 container global-flags { 945 leaf v-flag { 946 type boolean; 947 default false; 948 description 949 "Section 3 of RFC8029 - The V (Validate 950 FEC Stack) flag is used if the 951 FEC stack should be validated"; 952 } 953 leaf t-flag { 954 type boolean; 955 default false; 956 description 957 "Section 3 of RFC8029 - The T flag 958 is set if the response is expected 959 only if TTL expires"; 960 } 961 leaf r-flag { 962 type boolean; 963 default false; 964 description 965 "Section 3 of RFC8029 - The R flag 966 is set if the responder should 967 return the reverse-path FEC information."; 968 } 969 } 970 } 972 grouping echo-header-parameters { 973 container echo-header-parameters { 974 leaf source-address { 975 type ip-address; 976 description 977 "Specifies the Source IP address in 978 the Echo Request header."; 979 } 980 leaf destination-address { 981 type ip-loopback-address; 982 description 983 "Specifies the Destination IP address 984 in the Echo Request header."; 985 } 986 leaf traffic-class { 987 type mpls-traffic-class; 988 description 989 "Specifies the MPLS traffic class 990 in the Echo Request header."; 991 } 992 leaf mpls-entropy-label { 993 type mpls-entropy-label; 994 description 995 "Specifies the Entropy Label to be 996 inserted along with the Label Stack 997 for the Echo Request header."; 998 } 999 leaf header-mpls-ttl { 1000 type uint8; 1001 default 255; 1002 description 1003 "Specifies the TTL value for the 1004 MPLS Label in the Echo Request header."; 1005 } 1006 leaf mpls-exp-label { 1007 type boolean; 1008 description 1009 "This optional attribute is used to 1010 force the insertion of MPLS Explicit 1011 Null in the Label Stack for the Echo 1012 Request header."; 1013 } 1014 } 1015 } 1017 grouping echo-payload-parameters { 1018 container echo-payload-parameters { 1019 leaf reply-tos-tlv { 1020 type boolean; 1021 default false; 1022 description 1023 "This optional attribute is used to 1024 instruct the Initiator to include 1025 Reply-TOS TLV."; 1026 }//leaf reply-tos-tlv 1027 container reply-tos-value { 1028 when "../reply-tos-tlv = 'true'" { 1029 description 1030 "Reply TOS Value is set ONLY 1031 when Reply-TOS TLV is required 1032 in the Echo Request."; 1033 } 1034 leaf reply-tos-value { 1035 type uint8 { 1036 range "0..63"; 1037 } 1038 description 1039 "TOS value for the return packet."; 1040 }//leaf ddmap-hash 1041 }//container reply-tos-value 1042 leaf probe-size { 1043 type uint32 { 1044 range 1..15000; 1045 } 1046 }//leaf probe-size 1047 container probe-sweep { 1048 when "../probe-size = 'false'" { 1049 description 1050 "Probe sweep should be used only if a fixed 1051 probe size is not defined."; 1052 } 1053 leaf min-probe-sweep { 1054 type uint16 { 1055 range 72..18000; 1056 } 1057 description 1058 "This define the minimum size of 1059 the probe packet."; 1060 } 1061 leaf max-probe-sweep { 1062 type uint16 { 1063 range "72..18000"; 1064 } 1065 description 1066 "This defines the maximum size of 1067 the probe packet."; 1068 } 1069 description 1070 "This instructs the initiator to send 1071 a sweep of probe packets at varying size 1072 between the minimum and maximum value 1073 defined."; 1074 } 1075 container target-fec-stack-type { 1076 leaf target-fec-stack-type { 1077 type identityref { 1078 base target-fec-type; 1079 } 1080 mandatory true; 1081 description 1082 "Target FEC STack to define the FEC to 1083 be included in the Echo Request"; 1084 } 1086 choice target-fec-stack-value { 1087 description 1088 "Target FEC Stack Value"; 1089 case ldp-ip-prefix { 1090 leaf ldp-ip-prefix { 1091 type inet:ip-prefix; 1092 description 1093 "LDP IPv4/IPv6 Prefix."; 1094 } 1095 } 1096 case rsvp { 1097 leaf tunnel-id { 1098 type uint32; 1099 description 1100 "RSVP Tunnel ID."; 1101 } 1102 } 1103 case vpn-ip-prefix { 1104 leaf vrf-id { 1105 type uint32; 1106 description 1107 "VPN ID."; 1108 } 1109 leaf vpn-ip-prefix { 1110 type inet:ip-prefix; 1111 description 1112 "VPN IP Prefix"; 1113 } 1114 } 1115 case pw { 1116 leaf pw-id { 1117 type uint32; 1118 description 1119 "Pseudowire ID."; 1120 } 1121 leaf remote-pe-addr { 1122 type inet:ip-address; 1123 description 1124 "PW Remote PE Address."; 1125 } 1126 } 1127 case bgp-label-prefix { 1128 leaf bgp-label-prefix { 1129 type inet:ip-prefix; 1130 description 1131 "BGP IPv4/IPv6 Prefix."; 1132 } 1133 } 1134 case generic-ip-prefix { 1135 leaf generic-ip-prefix { 1136 type inet:ip-prefix; 1137 description 1138 "Generic IPv4/IPv6 Prefix."; 1139 } 1140 } 1141 case igp-ip-prefix { 1142 leaf protocol { 1143 type identityref { 1144 base igp-proto; 1146 } 1147 description 1148 "IGP Protocol ID."; 1149 } 1150 leaf igp-ip-prefix { 1151 type inet:ip-prefix; 1152 description 1153 "IGP IPv4/IPv6 Prefix."; 1154 } 1155 } 1156 } 1157 } 1158 leaf reply-mode { 1159 type reply-mode; 1160 description 1161 "XYZ"; 1162 reference 1163 "RFC 8029: Section 3."; 1164 } 1166 leaf return-ttl-tlv { 1167 type boolean; 1168 default "false"; 1169 description 1170 "'Time to Live' TLV to be included 1171 in the Echo Response."; 1172 reference 1173 "RFC 7394: Section 3."; 1174 } 1176 container return-ttl-value { 1177 when "../return-ttl-tlv = 'true'" { 1178 description 1179 "When TTL TLV is included in the 1180 Echo Request, the value mentioned 1181 in this field should be included in 1182 the value field of the TLV."; 1183 } 1184 leaf return-ttl-value { 1185 type uint8; 1186 description 1187 "Return TTL value"; 1188 }//leaf return-ttl-value 1189 }//container return-ttl-value 1191 uses global-flags; 1193 }//container echo-payload-parameters 1195 }//grouping echo-payload-parameters 1197 grouping echo-scheduling-parameters { 1198 container echo-scheduling-parameters { 1199 container probe-interval { 1200 leaf min-probe-interval { 1201 type identityref { 1202 base lime:time-unit-type; 1203 } 1204 default "lime:milliseconds"; 1205 description 1206 "This defines the minimum leaf interval."; 1207 } 1208 leaf max-probe-interval { 1209 type identityref { 1210 base lime:time-unit-type; 1211 } 1212 default "lime:milliseconds"; 1213 description 1214 "This defines the maximum leaf interval."; 1215 } 1216 description 1217 "To be Added."; 1218 }//container probe-interval 1220 leaf probe-count { 1221 type uint32; 1222 default "5"; 1223 description 1224 "This defines the number of probe counts."; 1225 } 1227 leaf probe-timeout { 1228 type identityref { 1229 base lime:time-unit-type; 1230 } 1231 default "lime:seconds"; 1232 //range "0..3600"; 1233 description 1234 "This defines the probe timeout 1235 interval in Seconds."; 1236 } 1238 container output-info { 1239 list output-intf { 1240 key "interface"; 1241 leaf interface { 1242 type if:interface-ref; 1243 description 1244 "Specifies the Egress interface to 1245 send the probe out."; 1246 } 1247 description 1248 "List of outgoing interfaces"; 1249 } 1251 leaf nexthop { 1252 type inet:ip-address; 1253 description 1254 "Specifies the next hop address to 1255 send the probe out."; 1256 } 1257 } 1258 }//container echo-scheduling-parameters 1259 }//grouping echo-scheduling-parameters 1261 grouping response-header-parameters { 1262 container response-header-parameters { 1263 leaf resp-source-address { 1264 type ip-address; 1265 mandatory true; 1266 description 1267 "Specifies the Source IP address in 1268 the Echo Response header."; 1269 } 1271 leaf resp-destination-address { 1272 type ip-address; 1273 mandatory true; 1274 description 1275 "Specifies the Destination IP address in 1276 the Echo Response header."; 1277 } 1279 leaf resp-traffic-class { 1280 type uint8 { 1281 range "0..63"; 1282 } 1283 mandatory true; 1284 description 1285 "Specifies the TOS/DSCP in the Echo 1286 Response header."; 1287 } 1289 }//container response-header 1290 }//grouping response-header 1291 grouping response-payload-parameters { 1292 container response-payload-parameters { 1293 leaf reply-mode { 1294 type reply-mode; 1295 mandatory true; 1296 description 1297 "XYZ"; 1298 reference 1299 "RFC 8029: Section 3."; 1300 } 1302 leaf return-code { 1303 type return-code; 1304 mandatory true; 1305 description 1306 "Return Code received in the Echo 1307 Reply Payload."; 1308 } 1310 leaf return-sub-code { 1311 type uint8; 1312 mandatory true; 1313 description 1314 "Return Sub Code received in the Echo 1315 Reply Payload."; 1316 } 1318 leaf seq-number { 1319 type uint32; 1320 mandatory true; 1321 description 1322 "Sequence Number received in the Echo 1323 Reply Payload."; 1324 } 1326 leaf timestamp-sent { 1327 type yang:date-and-time; 1328 mandatory true; 1329 description 1330 "Timestamp Sent is the time of day in 1331 64-bit NTP timestamp format 1332 when MPLS Echo Request is sent."; 1333 } 1335 leaf timestamp-received { 1336 type yang:date-and-time; 1337 mandatory true; 1338 description 1339 "Timestamp Received is the time of day in 1340 64-bit NTP timestamp format 1341 when MPLS Echo Response is sent."; 1342 } 1344 leaf target-fec-type { 1345 type target-fec-type; 1346 mandatory true; 1347 description 1348 "Target FEC Stack to define the FEC to be 1349 included in the Echo Request."; 1350 } 1351 }//container response-payload-parameters 1353 }//grouping response-payload-parameters 1355 grouping response-payload-optional-parameters { 1356 container response-payload-optional-parameters { 1357 container ddmap { 1358 leaf ddmap-mtu { 1359 type int16; 1360 description 1361 "This is used to carry the MTU from the DDMAP 1362 received in teh Echo Response Payload."; 1363 } 1365 leaf ddmap-downstream-address { 1366 type ip-address; 1367 description 1368 "This is used to carry the Downstream 1369 Address from the DDMAP received in the 1370 Echo Response Payload."; 1371 } 1373 leaf ddmap-downstream-intf-index { 1374 type int32 { 1375 range "1..2147483647"; 1376 } 1377 description 1378 "This is used to carry the Downstream 1379 Interface Address from the DDMAP 1380 received in the Echo Response Payload."; 1381 } 1383 leaf ddmap-return-code { 1384 type return-code; 1385 description 1386 "This is used to carry the Return Code 1387 from the DDMAP received in the Echo 1388 Response Payload."; 1389 } 1391 leaf ddmap-return-subcode { 1392 type int16; 1393 description 1394 "This is used to carry the Return Sub Code 1395 from the DDMAP received in the Echo 1396 Response Payload."; 1397 } 1399 list ddmap-label-stack { 1400 key "label"; 1401 description 1402 "This is used to carry the Label Stack 1403 from the DDMAP received in the Echo 1404 Response Payload."; 1405 leaf label { 1406 type rt-types:mpls-label; 1407 } 1409 leaf protocol { 1410 type ddmap-protocol; 1411 } 1412 } 1413 }//container ddmap 1414 } //response-payload-optional-parameters 1415 reference 1416 "RFC 8029: Section 3.4 -- DDMAP."; 1417 } //grouping resp-payload-optional-parameters 1419 /* Configuration */ 1421 augment "/rt:routing/mpls:mpls" { 1422 if-feature mpls-oam; 1423 description 1424 "RFC8029: MPLS OAM Feature Augmentation"; 1425 container mpls-oam { 1426 leaf enable { 1427 type boolean; 1428 description 1429 "Enable MPLS OAM"; 1430 } 1431 } 1432 } 1434 /* RPC */ 1435 rpc continuity-check { 1436 description 1437 "Triggers LSP Ping from the Initiator and return 1438 the response."; 1440 input { 1441 uses echo-header-parameters { 1442 description 1443 "This grouping defines the parameters 1444 to be set in the probe header."; 1445 } 1446 uses echo-payload-parameters { 1447 description 1448 "This grouping defines the parameters 1449 to be set in the probe payload."; 1450 } 1451 uses echo-scheduling-parameters { 1452 description 1453 "This grouping defines the scheduling 1454 parameters to be used by the initiator."; 1455 } 1456 } 1458 output { 1459 list response-list { 1460 key "response-index"; 1461 description 1462 "Continuity Check Response List."; 1463 leaf response-index { 1464 type uint32; 1465 mandatory true; 1466 } 1467 uses response-header-parameters { 1468 description 1469 "This grouping defines the parameters 1470 from the received echo response header."; 1471 } 1473 uses response-payload-parameters { 1474 description 1475 "This grouping defines the parameters 1476 from the received echo response payload."; 1477 } 1478 }//list response-list 1479 }//output 1480 }//rpc continuity-check 1482 rpc single-path-discovery { 1483 input { 1484 uses echo-header-parameters { 1485 description 1486 "This grouping defines the parameters to be 1487 set in the probe header."; 1488 } 1489 uses echo-payload-parameters { 1490 description 1491 "This grouping defines the parameters to be 1492 set in the probe payload."; 1493 } 1494 uses echo-scheduling-parameters { 1495 description 1496 "This grouping defines the scheduling 1497 parameters to be used by the initiator."; 1498 } 1499 } 1500 output { 1501 list response-list { 1502 key "response-index"; 1503 description 1504 "Continuity Check Response List."; 1505 leaf response-index { 1506 type uint32; 1507 mandatory true; 1508 } 1509 uses response-header-parameters { 1510 description 1511 "This grouping defines the parameters 1512 from the received echo response header."; 1513 } 1515 uses response-payload-parameters { 1516 description 1517 "This grouping defines the parameters 1518 from the received echo response payload."; 1519 } 1521 uses response-payload-optional-parameters { 1522 description 1523 "This grouping defines the optional 1524 parameters from the received Echo 1525 Response."; 1526 } 1528 }//list response-list 1529 }//output 1530 }//rpc single-path-discovery 1531 rpc multi-path-discovery { 1532 input { 1533 uses echo-header-parameters { 1534 description 1535 "This grouping defines the parameters to be 1536 set in the probe header."; 1537 } 1538 uses echo-payload-parameters { 1539 description 1540 "This grouping defines the parameters to be 1541 set in the probe payload."; 1542 } 1543 uses echo-scheduling-parameters { 1544 description 1545 "This grouping defines the scheduling 1546 parameters to be used by the initiator."; 1547 } 1548 container ddmap-hash { 1549 leaf ddmap-hash { 1550 type multipath-hashtype; 1551 description 1552 "Hashkey type for the DDMAP"; 1553 }//leaf ddmap-hash 1554 } 1555 } 1556 output { 1557 list response-list { 1558 key "response-index"; 1559 description 1560 "Continuity Check Response List."; 1561 leaf response-index { 1562 type uint32; 1563 mandatory true; 1564 } 1565 uses response-header-parameters { 1566 description 1567 "This grouping defines the parameters 1568 from the received echo response header."; 1569 } 1571 uses response-payload-parameters { 1572 description 1573 "This grouping defines the parameters 1574 from the received echo response payload."; 1575 } 1577 uses response-payload-optional-parameters { 1578 description 1579 "This grouping defines the optional 1580 parameters from the received Echo 1581 Response."; 1582 } 1584 }//list response-list 1585 }//output 1586 }//rpc multi-path-discovery 1587 } 1589 1591 4. IANA Considerations 1593 To be Updated. 1595 5. Security Considerations 1597 The YANG module specified in this document defines a schema for data 1598 that is designed to be accessed via network management protocols such 1599 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1600 is the secure transport layer, and the mandatory-to-implement secure 1601 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1602 is HTTPS, and the mandatory-to-implement secure transport is TLS 1603 [RFC8446]. 1605 The NETCONF Configuration Access Control Model (NACM) [RFC8341] 1606 [RFC8341] provides the means to restrict access for particular 1607 NETCONF or RESTCONF users to a preconfigured subset of all available 1608 NETCONF or RESTCONF protocol operations and content. 1610 This module defines RPC operations that may be considered sensitive 1611 or vulnerable in some network environments. It is therefore 1612 important to control the access to these operations. These are the 1613 operations and their sensitivity/vulnerability: 1615 Continuity Check: Generates OAM probe for continuity check and 1616 retrieve the resulting data from the Initiator node. 1618 Single Path Discovery: Generates OAM probe for single path tracing 1619 and retrieve the resulting data from various transit nodes. 1621 Multi Path Discovery: Generates OAM probe for equal cost multipath 1622 tracing and retrieve the resulting data from various transit 1623 nodes. 1625 These operations are used to retrieve the data from the device that 1626 needs to execute the OAM command. Unauthorized source access to some 1627 sensitive information in the above data may be used for network 1628 reconnaissance or lead to denial-of-service attacks on both the local 1629 device and the network. 1631 6. Acknowledgement 1633 Some part of the YANG model was inspired by the previous model 1634 developed by Lianshu Zheng, Guangying Zheng, Greg Mirsky, Reshad 1635 Rahman, Faisal Iqbal and the authors would like to acknowledge them. 1637 The authors also would like to thank Loa Andersson for his help with 1638 forming this team and help organizing the work. 1640 7. Contributors 1642 The following are key contributors to this document: 1644 Reshad Rahman, Cisco Systems, Inc. 1646 Zafar Ali, Cisco Systems, Inc. 1648 8. References 1650 8.1. Normative References 1652 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1653 Requirement Levels", BCP 14, RFC 2119, 1654 DOI 10.17487/RFC2119, March 1997, 1655 . 1657 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1658 the Network Configuration Protocol (NETCONF)", RFC 6020, 1659 DOI 10.17487/RFC6020, October 2010, 1660 . 1662 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1663 and A. Bierman, Ed., "Network Configuration Protocol 1664 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1665 . 1667 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1668 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1669 . 1671 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1672 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1673 . 1675 [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., 1676 Aldrin, S., and M. Chen, "Detecting Multiprotocol Label 1677 Switched (MPLS) Data-Plane Failures", RFC 8029, 1678 DOI 10.17487/RFC8029, March 2017, 1679 . 1681 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1682 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1683 . 1685 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1686 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1687 May 2017, . 1689 [RFC8287] Kumar, N., Ed., Pignataro, C., Ed., Swallow, G., Akiya, 1690 N., Kini, S., and M. Chen, "Label Switched Path (LSP) 1691 Ping/Traceroute for Segment Routing (SR) IGP-Prefix and 1692 IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data 1693 Planes", RFC 8287, DOI 10.17487/RFC8287, December 2017, 1694 . 1696 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 1697 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 1698 . 1700 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 1701 Access Control Model", STD 91, RFC 8341, 1702 DOI 10.17487/RFC8341, March 2018, 1703 . 1705 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 1706 and R. Wilton, "Network Management Datastore Architecture 1707 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 1708 . 1710 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 1711 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 1712 . 1714 8.2. Informative References 1716 [RFC6425] Saxena, S., Ed., Swallow, G., Ali, Z., Farrel, A., 1717 Yasukawa, S., and T. Nadeau, "Detecting Data-Plane 1718 Failures in Point-to-Multipoint MPLS - Extensions to LSP 1719 Ping", RFC 6425, DOI 10.17487/RFC6425, November 2011, 1720 . 1722 [RFC8532] Kumar, D., Wang, Z., Wu, Q., Ed., Rahman, R., and S. 1723 Raghavan, "Generic YANG Data Model for the Management of 1724 Operations, Administration, and Maintenance (OAM) 1725 Protocols That Use Connectionless Communications", 1726 RFC 8532, DOI 10.17487/RFC8532, April 2019, 1727 . 1729 [RFC8533] Kumar, D., Wang, M., Wu, Q., Ed., Rahman, R., and S. 1730 Raghavan, "A YANG Data Model for Retrieval Methods for the 1731 Management of Operations, Administration, and Maintenance 1732 (OAM) Protocols That Use Connectionless Communications", 1733 RFC 8533, DOI 10.17487/RFC8533, April 2019, 1734 . 1736 Authors' Addresses 1738 Nagendra Kumar Nainar 1739 Cisco Systems, Inc. 1740 7200 Kit Creek Road 1741 Research Triangle Park, NC 27709 1742 US 1744 Email: naikumar@cisco.com 1746 Carlos Pignataro 1747 Cisco Systems, Inc. 1748 7200 Kit Creek Road 1749 Research Triangle Park, NC 27709-4987 1750 US 1752 Email: cpignata@cisco.com 1754 Walker Zheng 1755 Huawei 1756 101 Software Avenue, Yuhua District 1757 Nanjing, Jiangsu 210012 1758 China 1760 Email: zhengguangying@huawei.com