idnits 2.17.00 (12 Aug 2021) /tmp/idnits9689/draft-mahesh-bess-srv6-mup-yang-00.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 document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (20 March 2022) is 55 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 (-21) exists of draft-ietf-dmm-srv6-mobile-uplane-18 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Spring M. Jethanandani, Ed. 3 Internet-Draft T. Murakami 4 Intended status: Standards Track Arrcus, Inc 5 Expires: 21 September 2022 20 March 2022 7 A YANG Model for SRv6 Mobile User Plane 8 draft-mahesh-bess-srv6-mup-yang-00 10 Abstract 12 This document defines a YANG data model for configuration and 13 management of SRv6 for the Mobile User Plane (MUP). 15 Status of This Memo 17 This Internet-Draft is submitted in full conformance with the 18 provisions of BCP 78 and BCP 79. 20 Internet-Drafts are working documents of the Internet Engineering 21 Task Force (IETF). Note that other groups may also distribute 22 working documents as Internet-Drafts. The list of current Internet- 23 Drafts is at https://datatracker.ietf.org/drafts/current/. 25 Internet-Drafts are draft documents valid for a maximum of six months 26 and may be updated, replaced, or obsoleted by other documents at any 27 time. It is inappropriate to use Internet-Drafts as reference 28 material or to cite them other than as "work in progress." 30 This Internet-Draft will expire on 21 September 2022. 32 Copyright Notice 34 Copyright (c) 2022 IETF Trust and the persons identified as the 35 document authors. All rights reserved. 37 This document is subject to BCP 78 and the IETF Trust's Legal 38 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 39 license-info) in effect on the date of publication of this document. 40 Please review these documents carefully, as they describe your rights 41 and restrictions with respect to this document. Code Components 42 extracted from this document must include Revised BSD License text as 43 described in Section 4.e of the Trust Legal Provisions and are 44 provided without warranty as described in the Revised BSD License. 46 Table of Contents 48 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 49 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 50 1.2. Note to RFC Editors . . . . . . . . . . . . . . . . . . . 3 51 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 52 2.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . 4 53 3. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . . . 4 54 4. YANG Model . . . . . . . . . . . . . . . . . . . . . . . . . 6 55 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 56 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 57 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 58 7.1. Normative References . . . . . . . . . . . . . . . . . . 18 59 7.2. Informative References . . . . . . . . . . . . . . . . . 21 60 Appendix A. Appendix 1 Complete Tree Diagram . . . . . . . . . . 21 61 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 22 62 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 22 63 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 65 1. Introduction 67 In mobile networks, mobility systems provide connectivity over a 68 wireless link to stationary and non-stationary nodes. The user-plane 69 establishes a tunnel between the mobile node and its anchor node over 70 IP-based backhaul and core networks. 72 When SRv6 is applied to mobile networks, it enables a source routing 73 architecture, where operators get to explicitly specify a route for 74 the packets to traverse both to and from a mobile node. The SRv6 75 Endpoint nodes serve as mobile user-plane anchors. 77 For example, in an Enhanced mode topology, the intermediate 78 waypoints, SIDs, can be used for Traffic Engineering. For more 79 details, see Segment Routing IPv6 for Mobile User Plane 80 [I-D.ietf-dmm-srv6-mobile-uplane], Section 5.2. The gNB and UPF are 81 SR-aware, and there are two service segments, one for traffic 82 engineering to support a low latency path, and the other for service 83 programming. In such a topology the operator routes the traffic 84 through these SRv6 nodes, so they can perform their Endpoint 85 functionality and forward the packet. Further, in the uplink 86 direction, when the gNB receives a packet from a UE, it adds the 87 segments of the SR policy to route the traffic through those two 88 segments, while doing something similar in the downlink direction. 90 This document describes a YANG 1.1 [RFC7950] data model for the 91 Segment Routing IPv6 (SRv6) user plane of mobile networks. 93 The model conforms to the NMDA [RFC8342] architecture. 95 1.1. Requirements Language 97 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 98 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 99 "OPTIONAL" in this document are to be interpreted as described in BCP 100 14 [RFC2119] [RFC8174] when, and only when, they appear in all 101 capitals, as shown here. 103 1.2. Note to RFC Editors 105 This document uses several placeholder values throughout the 106 document. Please replace them as follows and remove this note before 107 publication. 109 RFC XXXX, where XXXX is the number assigned to this document at the 110 time of publication. 112 2022-03-08 with the actual date of the publication of this document. 114 2. Terminology 116 This document references terms defined in other documents. In 117 particular, it imports definitions for the following terms from 118 Segment Routing Architecture [RFC8402], and IPv6 Segment Routing 119 Header (SRH) [RFC8754]. 121 * Active Segment 123 * BGP-Prefix Segment 125 * Prefix SID 127 * Segment 129 * SID 131 * SRH 133 * SRv6 135 * SRv6 Endpoint nodes 137 * SRv6 SID 139 * Segment Routing domain (SR domain) 141 * SR Global Block (SRGB) 142 * SR Local Block (SRLB) 144 2.1. Acronyms 146 This document uses a few acronyms. Some of them are defined here for 147 reference. 149 +=========+======================================================+ 150 | Acronym | Definition | 151 +=========+======================================================+ 152 | gNB | gNodeB, a 5G Base Station using New Radio technology | 153 +---------+------------------------------------------------------+ 154 | MUP | Mobile User Plane | 155 +---------+------------------------------------------------------+ 156 | SR | Segment Routing | 157 +---------+------------------------------------------------------+ 158 | SRv6 | Segment Routing over v6 | 159 +---------+------------------------------------------------------+ 160 | UE | User Equipment | 161 +---------+------------------------------------------------------+ 162 | UPF | User Plane Function | 163 +---------+------------------------------------------------------+ 165 Table 1: Acronyms 167 3. Tree Diagram 169 An abridged version of the tree diagram is shown here. Annotations 170 used in the diagram are defined in YANG Tree Diagrams [RFC8340]. 172 module: ietf-srv6-mobile 174 augment /rt:routing/rt:control-plane-protocols 175 /rt:control-plane-protocol/bgp:bgp/bgp:global: 176 +--rw route-distinguisher? rt-types:route-distinguisher 177 +--rw label-allocation-mode? identityref 178 +--rw sid-allocation-mode? identityref 179 +--rw srv6 180 +--rw locator? leafref 181 +--ro sid-manager-connected? boolean 182 +--ro locator-registered? boolean 183 +--ro micro-segment-enabled? boolean 184 +--rw mobile 185 +--rw encapsulation 186 | ... 187 +--rw decapsulations 188 | ... 189 +--rw decapsulation-source-prefix? inet:ipv6-prefix 190 augment /rt:routing/rt:control-plane-protocols 191 /rt:control-plane-protocol/bgp:bgp/bgp:global 192 /bgp:route-selection-options: 193 +--rw selection-deferral-time? uint16 194 +--rw med-missing-as-worst? boolean 195 +--rw multipath-as-path-relax? boolean 196 +--rw multipath-nexthop-relax? boolean 197 augment /rt-pol:routing-policy/rt-pol:defined-sets 198 /bp:bgp-defined-sets: 199 +--rw n4-interface-sets 200 +--rw interface-set* [name] 201 +--rw name string 202 +--rw member* identityref 203 augment /rt-pol:routing-policy/rt-pol:policy-definitions 204 /rt-pol:policy-definition/rt-pol:statements 205 /rt-pol:statement/rt-pol:conditions/bp:bgp-conditions: 206 +--rw match-n4-network-interface-set 207 +--rw n4-network-instance-set? leafref 208 +--rw match-set-options? match-set-options-type 209 augment /rt-pol:routing-policy/rt-pol:policy-definitions 210 /rt-pol:policy-definition/rt-pol:statements 211 /rt-pol:statement/rt-pol:actions/bp:bgp-actions: 212 +--rw set-network-interface 213 +--rw apply-policy 214 +--rw import-policy* leafref 215 +--rw default-import-policy? default-policy-type 216 +--rw export-policy* leafref 217 +--rw default-export-policy? default-policy-type 219 Figure 1: Tree Diagram for SRv6 YANG Model 221 4. YANG Model 223 The YANG model is divided into two parts. The first part of the 224 model augments the BGP model in BGP Model for Service Provider 225 Network [I-D.ietf-idr-bgp-model] for the BGP configuration, while the 226 second part augments the BGP Routing Policy model in BGP Model for 227 Service Provider Network [I-D.ietf-idr-bgp-model]. 229 This model defines a new SAFI called 'srv6-mup'. The BGP model is 230 augmented both at a global level to add SRv6 configuration, and at 231 the route selection option. The BGP policy model is augemented to 232 add a defined set, a set of match options, and a set of actions. 234 The model imports Common YANG Data Types [RFC6991], A YANG Data Model 235 for Routing Management(NMDA Version) [RFC8349], A YANG Data Model for 236 Routing Policy [RFC9067], YANG Data Model for Segment Routing 237 [RFC9020], YANG Data Model for SRv6 Base and Static 238 [I-D.ietf-spring-srv6-yang], and BGP Model for Service Provider 239 Network [I-D.ietf-idr-bgp-model]. 241 file "ietf-srv6-mobile@2022-03-08.yang" 242 module ietf-srv6-mobile { 243 yang-version "1.1"; 244 namespace "urn:ietf:params:xml:ns:yang:ietf-srv6-mobile"; 245 prefix "srv6-mob"; 247 import ietf-inet-types { 248 prefix "inet"; 249 reference 250 "RFC 6991: Common YANG Data Types."; 251 } 252 import ietf-routing { 253 prefix rt; 254 reference 255 "RFC 8349, A YANG Data Model for Routing Management 256 (NMDA Version)."; 257 } 258 import ietf-routing-types { 259 prefix rt-types; 260 reference 261 "RFC 8294: Common YANG Types for the Routing Area."; 262 } 263 import ietf-routing-policy { 264 prefix rt-pol; 265 reference 266 "RFC 9067: A YANG Data Model for Routing Policy."; 267 } 268 import ietf-bgp { 269 prefix bgp; 270 reference 271 "I-D.ietf-idr-bgp-model: BGP Model for Service Provider 272 Network."; 273 } 274 import ietf-bgp-policy { 275 prefix bp; 276 reference 277 "I-D.ietf-idr-bgp-model: BGP Model for Service Provider 278 Network."; 279 } 280 import ietf-bgp-types { 281 prefix bt; 282 reference 283 "I-D.ietf-idr-bgp-model: BGP Model for Service Provider 284 Network."; 285 } 286 import ietf-segment-routing { 287 prefix sr; 288 reference 289 "RFC 9020: YANG Data Model for Segment Routing."; 290 } 291 import ietf-srv6-base { 292 prefix srv6; 293 reference 294 "I-D.ietf-spring-srv6-yang: YANG Data Model for SRv6 Base 295 and Static."; 296 } 297 import ietf-srv6-types { 298 prefix srv6-types; 299 reference 300 "RFC 9020: YANG Data Model for Segment Routing."; 301 } 303 organization 304 "IETF SPRING Working Group"; 306 contact 307 "WG Web: 308 WG List: 310 Editor: Mahesh Jethanandani (mjethanandani at gmail dot com) 311 Author: Tetsuya Murakami (tetsuya at arrcus dot com)"; 313 description 314 "This module augments the BGP YANG model to add support for 315 configuration in mobile networks. 317 Copyright (c) 2022 IETF Trust and the persons identified as 318 authors of the code. All rights reserved. 320 Redistribution and use in source and binary forms, with or 321 without modification, is permitted pursuant to, and subject to 322 the license terms contained in, the Simplified BSD License set 323 forth in Section 4.c of the IETF Trust's Legal Provisions 324 Relating to IETF Documents 325 (https://trustee.ietf.org/license-info). 327 This version of this YANG module is part of RFC XXXX 328 (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself 329 for full legal notices. 331 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL 332 NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 333 'MAY', and 'OPTIONAL' in this document are to be interpreted as 334 described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, 335 they appear in all capitals, as shown here."; 337 revision "2022-03-08" { 338 description 339 "Initial Version."; 340 reference 341 "RFC XXXX, A YANG Model for BGP configuration in mobile 342 networks."; 343 } 345 /* 346 * Features 347 */ 349 /* 350 * Typedefs 351 */ 352 typedef srv6-mobile-function-type { 353 type union { 354 type identityref { 355 base "srv6-types:srv6-endpoint-type"; 356 } 357 type uint16; 358 } 359 description 360 "Type definition for SRV6 mobile function. Unknown 361 values are represented as the numeric value."; 362 reference 363 "draft-ietf-dmm-srv6-mobile-uplane"; 364 } 365 /* 366 * Identities 367 */ 368 identity srv6-mup { 369 base bt:afi-safi-type; 370 description 371 "Segment Routing for Mobile User Plane (AFI,SAFI = ?,?)"; 372 reference 373 "RFC XXXX: A YANG Model for BGP configuration in mobile 374 networks."; 375 } 377 identity label-allocation-mode { 378 description 379 "Base identity to be used to express types of label allocation 380 strategies to be used within a network instance"; 381 } 383 identity label-per-prefix { 384 base label-allocation-mode; 385 description 386 "A label is to be allocated per prefix entry in the RIB for the 387 network instance"; 388 } 390 identity label-per-nexthop { 391 base label-allocation-mode; 392 description 393 "A label is to be allocated per nexthop entry in the RIB for 394 the network instance"; 395 } 397 identity label-instance { 398 base label-allocation-mode; 399 description 400 "A single label is to be used for the instance"; 401 } 403 identity sid-allocation-mode { 404 description 405 "Base identity to be used to express types of SRv6 segment ID 406 allocation strategies to be used within a network instance."; 407 } 409 identity sid-per-nexthop { 410 base sid-allocation-mode; 411 description 412 "A segment ID is to be allocated per nexthop entry in the RIB 413 for the network instance"; 414 } 416 identity sid-instance { 417 base sid-allocation-mode; 418 description 419 "A single segment ID is to be used for the instance"; 420 } 422 identity sid-per-nexthop-no-transportation { 423 base sid-allocation-mode; 424 description 425 "A segment ID is to be allocated per nexthop entry in the 426 RIB for the network instance"; 427 } 429 identity sid-instance-no-transportation { 430 base sid-allocation-mode; 431 description 432 "A single segment ID is to be used for the instance"; 433 } 435 identity mobile-interface-type { 436 description 437 "Base identity for different mobile interfaces."; 438 } 440 identity n4 { 441 base mobile-interface-type; 442 description 443 "N4 interface."; 444 } 446 /* 447 * Groupings 448 */ 450 /* 451 * BGP configuration 452 */ 453 augment "/rt:routing/rt:control-plane-protocols" + 454 "/rt:control-plane-protocol/bgp:bgp/bgp:global" { 456 description 457 "Augmentation of the BGP global configuration to add srv6 458 mobile configuration."; 460 leaf route-distinguisher { 461 type rt-types:route-distinguisher; 462 description 463 "The route distinguisher that should be used for the local 464 VRF or VSI instance when it is signalled via BGP."; 465 } 467 leaf label-allocation-mode { 468 type identityref { 469 base label-allocation-mode; 470 } 471 must "not(../sid-allocation-mode)" { 472 error-message "label-allocation-mode and sid-allocation-mode" 473 + "cannot co-exist"; 474 } 475 must "not(/rt:routing/rt:control-plane-protocols" + 476 "/rt:control-plane-protocol" + 477 "/bgp:bgp/bgp:global/srv6/mobile/encapsulation/config" + 478 "/locator | " + 479 "/rt:routing/rt:control-plane-protocols" + 480 "/rt:control-plane-protocol/bgp:bgp/bgp:global" + 481 "/srv6/locator)" { 482 error-message "SRv6 configurations must be removed first"; 483 } 484 description 485 "The label allocation mode to be used for L3 entries 486 in the network instance"; 487 } 489 leaf sid-allocation-mode { 490 type identityref { 491 base sid-allocation-mode; 492 } 493 must "not(../label-allocation-mode)" { 494 error-message "label-allocation-mode and sid-allocation-mode " 495 + "cannot co-exist"; 496 } 497 must "boolean(/rt:routing/rt:control-plane-protocols" + 498 "/rt:control-plane-protocol" + 499 "/bgp:bgp/bgp:global/srv6/mobile/encapsulation/locator |" + 500 "/rt:routing/rt:control-plane-protocols" + 501 "/rt:control-plane-protocol/bgp:bgp/bgp:global/srv6" + 502 "/mobile/decapsulations/decapsulation/locator |" + 503 "/rt:routing/rt:control-plane-protocols" + 504 "/rt:control-plane-protocol/bgp:bgp/bgp:global/srv6" + 505 "/locator)" { 506 error-message "SRv6 locator name must be configured"; 507 } 508 description 509 "The segment ID allocation mode to be used for L3 entries 510 in the network instance"; 511 } 513 container srv6 { 514 description 515 "SRv6 mobile container."; 517 leaf locator { 518 type leafref { 519 path "/rt:routing/sr:segment-routing/" + 520 "srv6:srv6/srv6:locators/srv6:locator/srv6:name"; 521 } 522 description 523 "Locator configuration."; 524 } 526 leaf sid-manager-connected { 527 type boolean; 528 config false; 529 description 530 "Connection with segment ID manager is active"; 531 } 533 leaf locator-registered { 534 type boolean; 535 config false; 536 description 537 "Locator name is registered"; 538 } 540 leaf micro-segment-enabled { 541 type boolean; 542 config false; 543 description 544 "Locator has enabled micro-segment behavior"; 545 } 547 container mobile { 548 when "derived-from-or-self(/rt:routing" + 549 "/rt:control-plane-protocols" + 550 "/rt:control-plane-protocol/bgp:bgp/bgp:global" + 551 "/bgp:afi-safis/bgp:afi-safi/bgp:name, 'srv6-mup')" { 552 description 553 "This augmentation is valid only for a MUP SAFI."; 554 } 556 description 557 "Mobile configuration of SRv6."; 559 container encapsulation { 560 description 561 "Encapsulation configuration."; 563 leaf locator { 564 type leafref { 565 path "/rt:routing/sr:segment-routing/" + 566 "srv6:srv6/srv6:locators/srv6:locator/srv6:name"; 567 } 568 description 569 "Reference to SRv6 locater key"; 570 } 572 leaf function { 573 type srv6-mobile-function-type; 574 must "boolean(current()/../locator)" { 575 error-message 576 "SRv6 Mobile Locator name must be configured"; 577 } 578 description 579 "One of the SRv6 function types."; 580 } 582 leaf source-adress { 583 type inet:ipv4-address; 584 description 585 "GTP source IP address"; 586 } 588 leaf source-position { 589 type uint8; 590 description 591 "Bit position of GTP source IP address"; 592 } 594 container n4-network-instance { 595 description 596 "Definitions for the N4 interface."; 598 leaf routing-policy { 599 type leafref { 600 path "/rt-pol:routing-policy/" + 601 "rt-pol:policy-definitions/" + 602 "rt-pol:policy-definition/rt-pol:name"; 603 } 604 must "boolean(current()/../access)" { 605 error-message 606 "SRv6 Mobile access instance name must be " + 607 "configured"; 608 } 609 description 610 "Reference to routing-policy"; 611 } 613 leaf access { 614 type string; 615 description 616 "Mobile access instance."; 617 } 618 } 619 } 621 container decapsulations { 622 description 623 "SRv6 mobile decapsulation configuration."; 625 list decapsulation { 626 key "id"; 627 description 628 "SRv6 mobile Decapsulation config"; 630 leaf id { 631 type uint16; 632 description 633 "SRv6 mobile decapsulation entry id"; 634 } 636 leaf locator { 637 type leafref { 638 path "/rt:routing/sr:segment-routing/" + 639 "srv6:srv6/srv6:locators/srv6:locator/srv6:name"; 640 } 641 description 642 "Reference to SRv6 locater key"; 643 } 645 leaf function { 646 type srv6-mobile-function-type; 647 must "boolean(current()/../locator)" { 648 error-message 649 "SRv6 Mobile Locator name must be configured"; 650 } 651 description 652 "One of SRv6 function types."; 654 } 656 container n4-network-instance { 657 description 658 "Definitions for the N4 interface."; 660 leaf core { 661 type string; 662 description 663 "Core instance"; 664 } 665 } 666 } 667 } 668 leaf decapsulation-source-prefix { 669 type inet:ipv6-prefix; 670 description 671 "IPv6 prefix for GTP source address"; 672 } 673 } 674 } 675 } 677 augment "/rt:routing/rt:control-plane-protocols" + 678 "/rt:control-plane-protocol/bgp:bgp/bgp:global" + 679 "/bgp:route-selection-options" { 681 description 682 "Augmentation of the BGP global configuration for 683 route selection options to add srv6 mobile configuration."; 685 leaf selection-deferral-time { 686 type uint16 { 687 range 1..3600; 688 } 689 default 300; 690 description 691 "An upper-bound on the time (in seconds) that the best-path 692 selection is deferred"; 693 } 695 leaf med-missing-as-worst { 696 type boolean; 697 description 698 "A route without MED is treated as with highest MED value"; 699 } 701 leaf multipath-as-path-relax { 702 type boolean; 703 default true; 704 description 705 "Paths with different AS-Path but of same length can form 706 ECMP"; 707 } 709 leaf multipath-nexthop-relax { 710 type boolean; 711 default false; 712 description 713 "Enable BGP multi-path for paths with same next-hop"; 714 } 715 } 717 augment "/rt-pol:routing-policy/rt-pol:defined-sets" + 718 "/bp:bgp-defined-sets" { 719 description 720 "Augmentation of the Routing Policy module to add 721 mobile interface defined sets."; 723 container n4-interface-sets { 724 description 725 "Enclosing container for list of n4 interface sets."; 727 list interface-set { 728 key "name"; 729 description 730 "List of defined interface sets."; 732 leaf name { 733 type string; 734 description 735 "Name of interface set. This is used to reference 736 the set in match conditions."; 737 } 739 leaf-list member { 740 type identityref { 741 base "mobile-interface-type"; 742 } 743 description 744 "Members of interface set."; 745 } 746 } 747 } 748 } 749 augment "/rt-pol:routing-policy/rt-pol:policy-definitions" + 750 "/rt-pol:policy-definition/rt-pol:statements" + 751 "/rt-pol:statement/rt-pol:conditions/bp:bgp-conditions" { 752 description 753 "Augmentation of the Routing Policy module to add conditions."; 755 container match-n4-network-interface-set { 756 description 757 "Match a referenced network instance."; 758 leaf n4-network-instance-set { 759 type leafref { 760 path "/rt-pol:routing-policy/rt-pol:defined-sets/" 761 + "bp:bgp-defined-sets/n4-interface-sets/" 762 + "interface-set/name"; 763 } 764 description 765 "References a defined community set."; 766 } 767 uses rt-pol:match-set-options-group; 768 } 769 } 771 augment "/rt-pol:routing-policy/rt-pol:policy-definitions" + 772 "/rt-pol:policy-definition/rt-pol:statements" + 773 "/rt-pol:statement/rt-pol:actions/bp:bgp-actions" { 774 description 775 "Augmentation of the Routing Policy module to add actions."; 777 container set-network-interface { 778 description 779 "Set a referenced network instance."; 780 uses rt-pol:apply-policy-group; 781 } 782 } 783 } 784 786 Figure 2: SRv6 YANG Model for Mobile User Plane 788 5. IANA Considerations 790 This memo registers the following namespace URIs in the IETF XML in 791 the "IETF XML Registry" [RFC3688]: 793 URI: urn:ietf:params:xml:ns:yang:ietf-srv6-mobile 794 Registrant Contact: The IESG. 795 XML: N/A; the requested URI is an XML namespace. 797 This document registers the following YANG modules in the "YANG 798 Module Names" registry [RFC6020]: 800 Name: ietf-srv6-mobile 801 Namespace: urn:ietf:params:xml:ns:yang:ietf-srv6-mobile 802 Prefix: srv6-mob 803 Reference: RFC XXXX 805 6. Security Considerations 807 The YANG module specified in this document defines a schema for data 808 that is designed to be accessed via network management protocols such 809 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 810 is the secure transport layer, and the mandatory-to-implement secure 811 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 812 is HTTPS, and the mandatory-to-implement secure transport is TLS 813 [RFC8446]. 815 The Network Configuration Access Control Model (NACM) [RFC8341] 816 provides the means to restrict access for particular NETCONF or 817 RESTCONF users to a preconfigured subset of all available NETCONF or 818 RESTCONF protocol operations and content. 820 There are a number of data nodes defined in this YANG module that are 821 writable/creatable/deletable (i.e., config true, which is the 822 default). These data nodes may be considered sensitive or vulnerable 823 in some network environments. Write operations (e.g., edit-config) 824 to these data nodes without proper protection can have a negative 825 effect on network operations. These are the subtrees and data nodes 826 and their sensitivity/vulnerability: 828 Some of the readable data nodes in this YANG module may be considered 829 sensitive or vulnerable in some network environments. It is thus 830 important to control read access (e.g., via get, get-config, or 831 notification) to these data nodes. These are the subtrees and data 832 nodes and their sensitivity/vulnerability: 834 Some of the RPC operations in this YANG module may be considered 835 sensitive or vulnerable in some network environments. It is thus 836 important to control access to these operations. These are the 837 operations and their sensitivity/vulnerability: 839 7. References 841 7.1. Normative References 843 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 844 Requirement Levels", BCP 14, RFC 2119, 845 DOI 10.17487/RFC2119, March 1997, 846 . 848 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 849 DOI 10.17487/RFC3688, January 2004, 850 . 852 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 853 the Network Configuration Protocol (NETCONF)", RFC 6020, 854 DOI 10.17487/RFC6020, October 2010, 855 . 857 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 858 and A. Bierman, Ed., "Network Configuration Protocol 859 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 860 . 862 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 863 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 864 . 866 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 867 RFC 6991, DOI 10.17487/RFC6991, July 2013, 868 . 870 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 871 RFC 7950, DOI 10.17487/RFC7950, August 2016, 872 . 874 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 875 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 876 . 878 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 879 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 880 May 2017, . 882 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 883 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 884 . 886 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 887 Access Control Model", STD 91, RFC 8341, 888 DOI 10.17487/RFC8341, March 2018, 889 . 891 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 892 and R. Wilton, "Network Management Datastore Architecture 893 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 894 . 896 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 897 Routing Management (NMDA Version)", RFC 8349, 898 DOI 10.17487/RFC8349, March 2018, 899 . 901 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 902 Decraene, B., Litkowski, S., and R. Shakir, "Segment 903 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 904 July 2018, . 906 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 907 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 908 . 910 [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., 911 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 912 (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, 913 . 915 [RFC9020] Litkowski, S., Qu, Y., Lindem, A., Sarkar, P., and J. 916 Tantsura, "YANG Data Model for Segment Routing", RFC 9020, 917 DOI 10.17487/RFC9020, May 2021, 918 . 920 [RFC9067] Qu, Y., Tantsura, J., Lindem, A., and X. Liu, "A YANG Data 921 Model for Routing Policy", RFC 9067, DOI 10.17487/RFC9067, 922 October 2021, . 924 [I-D.ietf-idr-bgp-model] 925 Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP 926 YANG Model for Service Provider Networks", Work in 927 Progress, Internet-Draft, draft-ietf-idr-bgp-model-13, 6 928 March 2022, . 931 [I-D.ietf-spring-srv6-yang] 932 Raza, K., Agarwal, S., Liu, X., Hu, Z., Hussain, I., Shah, 933 H., Voyer, D., Matsushima, S., Horiba, K., Rajamanickam, 934 J., and A. AbdelSalam, "YANG Data Model for SRv6 Base and 935 Static", Work in Progress, Internet-Draft, draft-ietf- 936 spring-srv6-yang-01, 14 January 2022, 937 . 940 7.2. Informative References 942 [I-D.ietf-dmm-srv6-mobile-uplane] 943 Matsushima, S., Filsfils, C., Kohno, M., Garvia, P. C., 944 Voyer, D., and C. E. Perkins, "Segment Routing IPv6 for 945 Mobile User Plane", Work in Progress, Internet-Draft, 946 draft-ietf-dmm-srv6-mobile-uplane-18, 18 February 2022, 947 . 950 Appendix A. Appendix 1 Complete Tree Diagram 952 Here is a complete tree diagram for the configuration and operational 953 part of the model. 955 module: ietf-srv6-mobile 957 augment /rt:routing/rt:control-plane-protocols 958 /rt:control-plane-protocol/bgp:bgp/bgp:global: 959 +--rw route-distinguisher? rt-types:route-distinguisher 960 +--rw label-allocation-mode? identityref 961 +--rw sid-allocation-mode? identityref 962 +--rw srv6 963 +--rw locator? leafref 964 +--ro sid-manager-connected? boolean 965 +--ro locator-registered? boolean 966 +--ro micro-segment-enabled? boolean 967 +--rw mobile 968 +--rw encapsulation 969 | +--rw locator? leafref 970 | +--rw function? srv6-mobile-function-type 971 | +--rw source-adress? inet:ipv4-address 972 | +--rw source-position? uint8 973 | +--rw n4-network-instance 974 | +--rw routing-policy? leafref 975 | +--rw access? string 976 +--rw decapsulations 977 | +--rw decapsulation* [id] 978 | +--rw id uint16 979 | +--rw locator? leafref 980 | +--rw function? 981 | | srv6-mobile-function-type 982 | +--rw n4-network-instance 983 | +--rw core? string 984 +--rw decapsulation-source-prefix? inet:ipv6-prefix 985 augment /rt:routing/rt:control-plane-protocols 986 /rt:control-plane-protocol/bgp:bgp/bgp:global 987 /bgp:route-selection-options: 989 +--rw selection-deferral-time? uint16 990 +--rw med-missing-as-worst? boolean 991 +--rw multipath-as-path-relax? boolean 992 +--rw multipath-nexthop-relax? boolean 993 augment /rt-pol:routing-policy/rt-pol:defined-sets 994 /bp:bgp-defined-sets: 995 +--rw n4-interface-sets 996 +--rw interface-set* [name] 997 +--rw name string 998 +--rw member* identityref 999 augment /rt-pol:routing-policy/rt-pol:policy-definitions 1000 /rt-pol:policy-definition/rt-pol:statements 1001 /rt-pol:statement/rt-pol:conditions/bp:bgp-conditions: 1002 +--rw match-n4-network-interface-set 1003 +--rw n4-network-instance-set? leafref 1004 +--rw match-set-options? match-set-options-type 1005 augment /rt-pol:routing-policy/rt-pol:policy-definitions 1006 /rt-pol:policy-definition/rt-pol:statements 1007 /rt-pol:statement/rt-pol:actions/bp:bgp-actions: 1008 +--rw set-network-interface 1009 +--rw apply-policy 1010 +--rw import-policy* leafref 1011 +--rw default-import-policy? default-policy-type 1012 +--rw export-policy* leafref 1013 +--rw default-export-policy? default-policy-type 1015 Figure 3: Complete tree diagram 1017 Acknowledgements 1019 TBA 1021 Contributors 1023 Thanks to all of the contributors. 1025 Authors' Addresses 1027 Mahesh Jethanandani (editor) 1028 Arrcus, Inc 1029 Email: mjethanandani@gmail.com 1031 Tetsuya Murakami 1032 Arrcus, Inc 1033 Email: tetsuya@arrcus.com