idnits 2.17.1 draft-ietf-dmm-fpc-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 : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 2976 has weird spacing: '...art-spi ips...' == Line 2979 has weird spacing: '...rt-port ine...' == Line 2982 has weird spacing: '...rt-port ine...' == Line 2985 has weird spacing: '...address ine...' == Line 2988 has weird spacing: '...address ine...' == (34 more instances...) -- The document date (April 11, 2019) is 1836 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 (-14) exists of draft-ietf-dmm-fpc-cpdp-12 Summary: 2 errors (**), 0 flaws (~~), 8 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 DMM Working Group S. Matsushima 3 Internet-Draft SoftBank 4 Intended status: Standards Track L. Bertz 5 Expires: October 13, 2019 Sprint 6 M. Liebsch 7 NEC 8 S. Gundavelli 9 Cisco 10 D. Moses 11 Intel Corporation 12 C. Perkins 13 Futurewei 14 April 11, 2019 16 YANG for Protocol for Forwarding Policy Configuration (FPC) 17 draft-ietf-dmm-fpc-yang-00 19 Abstract 21 This document provides YANG modules to exhibit a data model for the 22 information models defining Forwarding Policy Configuration (FPC) to 23 manage the separation of data-plane and control-plane. FPC defines a 24 flexible mobility management system using FPC agent and FPC client 25 functions. A FPC agent provides an abstract interface to the data- 26 plane. The FPC client configures data-plane nodes by using the 27 functions and abstractions provided by the FPC agent for the data- 28 plane nodes. 30 Status of This Memo 32 This Internet-Draft is submitted in full conformance with the 33 provisions of BCP 78 and BCP 79. 35 Internet-Drafts are working documents of the Internet Engineering 36 Task Force (IETF). Note that other groups may also distribute 37 working documents as Internet-Drafts. The list of current Internet- 38 Drafts is at https://datatracker.ietf.org/drafts/current/. 40 Internet-Drafts are draft documents valid for a maximum of six months 41 and may be updated, replaced, or obsoleted by other documents at any 42 time. It is inappropriate to use Internet-Drafts as reference 43 material or to cite them other than as "work in progress." 45 This Internet-Draft will expire on October 13, 2019. 47 Copyright Notice 49 Copyright (c) 2019 IETF Trust and the persons identified as the 50 document authors. All rights reserved. 52 This document is subject to BCP 78 and the IETF Trust's Legal 53 Provisions Relating to IETF Documents 54 (https://trustee.ietf.org/license-info) in effect on the date of 55 publication of this document. Please review these documents 56 carefully, as they describe your rights and restrictions with respect 57 to this document. Code Components extracted from this document must 58 include Simplified BSD License text as described in Section 4.e of 59 the Trust Legal Provisions and are provided without warranty as 60 described in the Simplified BSD License. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 65 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 66 3. YANG Data Model for the FPC protocol . . . . . . . . . . . . 3 67 3.1. FPC YANG Model . . . . . . . . . . . . . . . . . . . . . 5 68 3.2. FPC YANG Settings and Extensions Model . . . . . . . . . 27 69 3.3. PMIP QoS Model . . . . . . . . . . . . . . . . . . . . . 39 70 3.4. Traffic Selectors YANG Model . . . . . . . . . . . . . . 46 71 3.5. RFC 5777 Classifier YANG Model . . . . . . . . . . . . . 54 72 4. FPC YANG Tree Structure . . . . . . . . . . . . . . . . . . . 62 73 5. Work Team Participants . . . . . . . . . . . . . . . . . . . 80 74 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 80 75 6.1. Normative References . . . . . . . . . . . . . . . . . . 80 76 6.2. Informative References . . . . . . . . . . . . . . . . . 81 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 81 79 1. Introduction 81 This document provides YANG modules to exhibit a data model for the 82 information models defining Forwarding Policy Configuration (FPC) 83 [I-D.ietf-dmm-fpc-cpdp] to manage the separation of data-plane and 84 control-plane. FPC defines a flexible mobility management system 85 using FPC agent and FPC client functions. A FPC agent provides an 86 abstract interface to the data-plane. The FPC client configures 87 data-plane nodes by using the functions and abstractions provided by 88 the FPC agent for the data-plane nodes. 90 2. Terminology 92 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 93 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 94 document are to be interpreted as described in [RFC2119]. The 95 following FPC-specific terms used in this document are defined in 96 [I-D.ietf-dmm-fpc-cpdp]. 98 o Domain 99 o DPN 100 o FPC Agent 101 o FPC Client 102 o Mobility Context 103 o Monitor 104 o Policy 105 o Template 106 o Tenant 107 o Topology 109 3. YANG Data Model for the FPC protocol 111 This section provides a type mapping for FPC structures in YANG. 112 When being mapped to a specific information such as YANG the data 113 type MAY change. 115 Action and Descriptor Templates are mapped as choices. This was done 116 to ensure no duplication of Types and avoid use of identityref for 117 typing. 119 Policy Expressions are provided as default values. NOTE that a 120 static value CANNOT be supported in YANG. 122 Mapping of templates to YANG are performed as follows: 124 Value is defined as a choice statement for extensibility and 125 therefore a type value is not necessary to discriminated types. 127 Generic attributes are distinguished by the "Settings" type and 128 holds ANY value. It is in a data node under configurations. 130 The CONFIGURE and CONFIGURE-RESULT-NOTIFICATION use the yang-patch- 131 status which is a container for edits. This was done to maximize 132 YANG reuse. 134 In the configure rpc, operation-id is mapped to patch-id and in an 135 edit the edit-type is mapped to operation. 137 The Result-Status attribute is mapped to the 'ok' (empty leaf) or 138 errors structure. 140 The Policy-Status is mapped to entity-state to reduce YANG size. 142 Five modules are defined: 144 o ietf-dmm-fpc (fpc) - Defines the base model and messages for FPC 145 that are meant to be static in FPC. 147 o ietf-dmm-fpc-settingsext - A FPC module that defines the 148 information model elements that are likely to be extended in FPC. 150 o ietf-pmip-qos (pmip-qos) - Defines proxy mobile IPv6 QoS 151 parameters per [RFC7222] 153 o ietf-trafficselectors-types (traffic-selectors) - Defines Traffic 154 Selectors per [RFC6088] 156 o ietf-diam-trafficclassifier (diamclassifier) - Defines the 157 Classifier per [RFC5777] 159 All modules defined in this specification make use of (import) ietf- 160 inet-types as defined in [RFC6991]. 162 ietf-dmm-fpc-settingsext and ietf-diam-trafficclassifier make use of 163 (imports) ietf-yang-types as defined in [RFC6991]. 165 ietf-dmm-fpc imports the restconf (ietf-restconf) [RFC8040] and yang 166 patch (ietf-yang-patch) [RFC8072] modules. 168 ietf-pmip-qos and ietf-dmm-fpc-settings import the trafficselector 169 from the ietf-traffic-selector-types module. 171 ietf-dmm-fpc-settings also imports the qosattribute (ietf-pmip-qos) 172 and classifier (ietf-diam-trafficclassifier). 174 ietf-dmm-fpc-settingsext groups various settings, actions and 175 descriptors and is used by the fpc module (ietf-dmm-fpc). 177 The following groupings are intended for reuse (import) by other 178 modules. 180 o qosoption (ietf-qos-pmip module) 181 o qosattribute (ietf-qos-pmip module) 182 o qosoption (ietf-qos-pmip module) 183 o Allocation-Retention-Priority-Value (ietf-qos-pmip module) 184 o trafficselector (ietf-traffic-selector-types) 185 o classifier (ietf-diam-trafficclassifier) 186 o packet-filter (ietf-dmm-fpc-settingsext) 187 o instructions (ietf-dmm-fpc-settingsext) 188 o fpc-descriptor-value (ietf-dmm-fpc-settingsext) 189 o fpc-action-value (ietf-dmm-fpc-settingsext) 190 The YANG modules in this document conform to the Network Management 191 Datastore Architecture (NMDA) defined in [RFC8342]. 193 A DPN conformant to NMDA MAY only have policies, installed policies, 194 topology, domains and mobility session information that has been 195 assigned to it in its intended and operational datastores. 197 ServiceGroups are not expected to appear in operational datastores of 198 DPNs as they remain in and are used by FPC Agents and Clients. They 199 MAY be operationally present in DNS when using the Dynamic Delegation 200 and Discovery System (DDDS) as defined in [RFC3958] or the 201 operational datastore of systems that provide equivalent 202 functionality. 204 3.1. FPC YANG Model 206 This module defines the information model and protocol elements 207 specified in this document. 209 This module references [RFC6991], [RFC8040] and the fpc-settingsext 210 module defined in this document. 212 file "ietf-dmm-fpc@2018-05-17.yang" 213 module ietf-dmm-fpc { 214 yang-version 1.1; 215 namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpc"; 216 prefix fpc; 218 import ietf-inet-types { prefix inet; 219 revision-date 2013-07-15; } 220 import ietf-dmm-fpc-settingsext { prefix fpcbase; 221 revision-date 2018-05-17; } 222 import ietf-diam-trafficclassifier { prefix rfc5777; 223 revision-date 2018-05-17; } 224 import ietf-restconf { prefix rc; 225 revision-date 2017-01-26; } 226 import ietf-yang-patch { prefix ypatch; 227 revision-date 2017-02-22; } 229 organization "IETF Distributed Mobility Management (DMM) 230 Working Group"; 232 contact 233 "WG Web: 234 WG List: 236 WG Chair: Dapeng Liu 237 239 WG Chair: Jouni Korhonen 240 242 Editor: Satoru Matsushima 243 245 Editor: Lyle Bertz 246 "; 248 description 249 "This module contains YANG definition for 250 Forwarding Policy Configuration Protocol (FPCP). 252 Copyright (c) 2016 IETF Trust and the persons identified as the 253 document authors. All rights reserved. 255 This document is subject to BCP 78 and the IETF Trust's Legal 256 Provisions Relating to IETF Documents 257 (http://trustee.ietf.org/license-info) in effect on the date of 258 publication of this document. Please review these documents 259 carefully, as they describe your rights and restrictions with 260 respect to this document. Code Components extracted from this 261 document must include Simplified BSD License text as described 262 in Section 4.e of the Trust Legal Provisions and are provided 263 without warranty as described in the Simplified BSD License."; 265 revision 2018-05-17 { 266 description "Initial Revision."; 267 reference "draft-ietf-dmm-fpc-cpdp-10"; 268 } 270 //General Structures 271 grouping templatedef { 272 leaf extensible { 273 type boolean; 274 description "Indicates if the template is extensible"; 275 } 276 leaf-list static-attributes { 277 type string; 278 description "Attribute (Name) whose value cannot 279 change"; 280 } 281 leaf-list mandatory-attributes { 282 type string; 283 description "Attribute (Name) of optional attributes 284 that MUST be present in instances of this tempplate."; 285 } 286 leaf entity-state { 287 type enumeration { 288 enum initial { 289 description "Inital Configuration"; 290 } 291 enum partially-configured { 292 description "Partial Configuration"; 293 } 294 enum configured { 295 description "Confgured"; 296 } 297 enum active { 298 description "Active"; 299 } 300 } 301 default initial; 302 description "Entity State"; 303 } 304 leaf version { 305 type uint32; 306 description "Template Version"; 307 } 308 description "Teamplate Definition"; 309 } 310 typedef fpc-identity { 311 type union { 312 type uint32; 313 type instance-identifier; 314 type string; 315 } 316 description "FPC Identity"; 317 } 318 grouping index { 319 leaf index { 320 type uint16; 321 description "Index"; 322 } 323 description "Index Value"; 324 } 326 // Policy Structures 327 grouping descriptor-template-key { 328 leaf descriptor-template-key { 329 type fpc:fpc-identity; 330 mandatory true; 331 description "Descriptor Key"; 332 } 333 description "Descriptor-Template Key"; 334 } 335 grouping action-template-key { 336 leaf action-template-key { 337 type fpc:fpc-identity; 338 mandatory true; 339 description "Action Key"; 340 } 341 description "Action-Template Key"; 342 } 343 grouping rule-template-key { 344 leaf rule-template-key { 345 type fpc:fpc-identity; 346 mandatory true; 347 description "Rule Identifier"; 348 } 349 description "Rule Key"; 350 } 351 grouping policy-template-key { 352 leaf policy-template-key { 353 type fpc:fpc-identity; 354 mandatory true; 355 description "Rule Identifier"; 356 } 357 description "Rule Key"; 358 } 360 grouping fpc-setting-value { 361 anydata setting; 362 description "FPC Setting Value"; 363 } 364 // Configuration / Settings 365 grouping policy-configuration-choice { 366 choice policy-configuration-value { 367 case descriptor-value { 368 uses fpcbase:fpc-descriptor-value; 369 description "Descriptor Value"; 370 } 371 case action-value { 372 uses fpcbase:fpc-action-value; 373 description "Action Value"; 374 } 375 case setting-value { 376 uses fpc:fpc-setting-value; 377 description "Setting"; 378 } 379 description "Policy Attributes"; 380 } 381 description "Policy Configuration Value Choice"; 382 } 383 grouping policy-configuration { 384 list policy-configuration { 385 key index; 386 uses fpc:index; 387 uses fpc:policy-configuration-choice; 388 description "Policy Configuration"; 389 } 390 description "Policy Configuration Value"; 391 } 392 grouping ref-configuration { 393 uses fpc:policy-template-key; 394 uses fpc:policy-configuration; 395 uses fpc:templatedef; 396 description "Policy-Configuration Entry"; 397 } 399 // FPC Policy 400 grouping policy-information-model { 401 list action-template { 402 key action-template-key; 403 uses fpc:action-template-key; 404 uses fpcbase:fpc-action-value; 405 uses fpc:templatedef; 406 description "Action Template"; 407 } 408 list descriptor-template { 409 key descriptor-template-key; 410 uses fpc:descriptor-template-key; 411 uses fpcbase:fpc-descriptor-value; 412 uses fpc:templatedef; 413 description "Descriptor Template"; 414 } 415 list rule-template { 416 key rule-template-key; 417 uses fpc:rule-template-key; 418 leaf descriptor-match-type { 419 type enumeration { 420 enum or { 421 value 0; 422 description "OR logic"; 423 } 424 enum and { 425 value 1; 426 description "AND logic"; 427 } 428 } 429 mandatory true; 430 description "Type of Match (OR or AND) applied 431 to the descriptor-configurations"; 432 } 433 list descriptor-configuration { 434 key "descriptor-template-key"; 435 uses fpc:descriptor-template-key; 436 leaf direction { 437 type rfc5777:direction-type; 438 description "Direction"; 439 } 440 list attribute-expression { 441 key index; 442 uses fpc:index; 443 uses fpcbase:fpc-descriptor-value; 444 description "Descriptor Attributes"; 445 } 446 uses fpc:fpc-setting-value; 447 description "A set of Descriptor references"; 448 } 449 list action-configuration { 450 key "action-order"; 451 leaf action-order { 452 type uint32; 453 mandatory true; 454 description "Action Execution Order"; 455 } 456 uses fpc:action-template-key; 457 list attribute-expression { 458 key index; 459 uses fpc:index; 460 uses fpcbase:fpc-action-value; 461 description "Action Attributes"; 462 } 463 uses fpc:fpc-setting-value; 464 description "A set of Action references"; 465 } 466 uses fpc:templatedef; 467 list rule-configuration { 468 key index; 469 uses fpc:index; 470 uses fpc:policy-configuration-choice; 471 description "Rule Configuration"; 472 } 473 description "Rule Template"; 474 } 475 list policy-template { 476 key policy-template-key; 477 uses fpc:policy-template-key; 478 list rule-template { 479 key "precedence"; 480 unique "rule-template-key"; 481 leaf precedence { 482 type uint32; 483 mandatory true; 484 description "Rule Precedence"; 485 } 486 uses fpc:rule-template-key; 487 description "Rule Entry"; 488 } 489 uses fpc:templatedef; 490 uses fpc:policy-configuration; 491 description "Policy Template"; 492 } 493 description "FPC Policy Structures"; 494 } 496 // Topology Information Model 497 identity role { 498 description "Role"; 499 } 500 grouping dpn-key { 501 leaf dpn-key { 502 type fpc:fpc-identity; 503 description "DPN Key"; 504 } 505 description "DPN Key"; 506 } 507 grouping role-key { 508 leaf role-key { 509 type identityref { 510 base "fpc:role"; 511 } 512 mandatory true; 513 description "Access Technology Role"; 514 } 515 description "Access Technology Role key"; 516 } 517 grouping interface-key { 518 leaf interface-key{ 519 type fpc:fpc-identity; 520 mandatory true; 521 description "interface identifier"; 522 } 523 description "Interface Identifier key"; 524 } 525 identity interface-protocols { 526 description "Protocol supported by the interface"; 528 } 529 identity features { 530 description "Protocol features"; 531 } 533 // Mobility Context 534 grouping mobility-context { 535 leaf mobility-context-key { 536 type fpc:fpc-identity; 537 mandatory true; 538 description "Mobility Context Key"; 539 } 540 leaf-list delegating-ip-prefix { 541 type inet:ip-prefix; 542 description "IP Prefix"; 543 } 544 leaf parent-context { 545 type fpc:fpc-identity; 546 description "Parent Mobility Context"; 547 } 548 leaf-list child-context { 549 type fpc:fpc-identity; 550 description "Child Mobility Context"; 551 } 552 container mobile-node { 553 leaf-list ip-address { 554 type inet:ip-address; 555 description "IP Address"; 556 } 557 leaf imsi { 558 type fpcbase:imsi-type; 559 description "IMSI"; 560 } 561 list mn-policy-configuration { 562 key policy-template-key; 563 uses fpc:ref-configuration; 564 description "MN Policy Configuration"; 565 } 566 description "Mobile Node"; 567 } 568 container domain { 569 leaf domain-key { 570 type fpc:fpc-identity; 571 description "Domain Key"; 572 } 573 list domain-policy-settings { 574 key policy-template-key; 575 uses fpc:ref-configuration; 576 description "MN Policy Configuration"; 577 } 578 description "Domain"; 579 } 580 list dpn { 581 key dpn-key; 582 uses fpc:dpn-key; 583 list dpn-policy-configuration { 584 key policy-template-key; 585 uses fpc:ref-configuration; 586 description "DPN Policy Configuration"; 587 } 588 leaf role { 589 type identityref { 590 base "fpc:role"; 591 } 592 description "Role"; 593 } 594 list service-data-flow { 595 key identifier; 596 leaf identifier { 597 type uint32; 598 description "Generic Identifier"; 599 } 600 leaf service-group-key { 601 type fpc:fpc-identity; 602 description "Service Group Key"; 603 } 604 list interface { 605 key interface-key; 606 uses fpc:interface-key; 607 description "interface assigned"; 608 } 609 list service-data-flow-policy-configuration { 610 key policy-template-key; 611 uses fpc:ref-configuration; 612 description "Flow Policy Configuration"; 613 } 614 description "Service Dataflow"; 615 } 616 description "DPN"; 617 } 618 description "Mobility Context"; 619 } 621 // Events, Probes & Notifications 622 identity event-type { 623 description "Base Event Type"; 625 } 626 typedef event-type-id { 627 type uint32; 628 description "Event ID Type"; 629 } 630 grouping monitor-key { 631 leaf monitor-key { 632 type fpc:fpc-identity; 633 mandatory true; 634 description "Monitor Key"; 635 } 636 description "Monitor Id"; 637 } 638 grouping monitor-config { 639 uses fpc:templatedef; 640 uses fpc:monitor-key; 641 leaf target { 642 type string; 643 description "target"; 644 } 645 leaf deferrable { 646 type boolean; 647 description "Indicates reports related to this 648 config can be delayed."; 649 } 650 choice configuration { 651 mandatory true; 652 leaf period { 653 type uint32; 654 description "Period"; 655 } 656 case threshold-config { 657 leaf low { 658 type uint32; 659 description "low threshold"; 660 } 661 leaf hi { 662 type uint32; 663 description "high threshold"; 664 } 665 description "Threshold Config Case"; 666 } 667 leaf schedule { 668 type uint32; 669 description "Reporting Time"; 670 } 671 leaf-list event-identities { 672 type identityref { 673 base "fpc:event-type"; 674 } 675 description "Event Identities"; 676 } 677 leaf-list event-ids { 678 type uint32; 679 description "Event IDs"; 680 } 681 description "Event Config Value"; 682 } 683 description "Monitor Configuration"; 684 } 686 // Top Level Structures 687 list tenant { 688 key "tenant-key"; 689 leaf tenant-key { 690 type fpc:fpc-identity; 691 description "Tenant Key"; 692 } 693 container topology-information-model { 694 config false; 695 list service-group { 696 key "service-group-key role-key"; 697 leaf service-group-key { 698 type fpc:fpc-identity; 699 mandatory true; 700 description "Service Group Key"; 701 } 702 leaf service-group-name { 703 type string; 704 description "Service Group Name"; 705 } 706 uses fpc:role-key; 707 leaf role-name { 708 type string; 709 mandatory true; 710 description "Role Name"; 711 } 712 leaf-list protocol { 713 type identityref { 714 base "interface-protocols"; 715 } 716 min-elements 1; 717 description "Supported protocols"; 718 } 719 leaf-list feature { 720 type identityref { 721 base "interface-protocols"; 722 } 723 description "Supported features"; 724 } 725 list service-group-configuration { 726 key index; 727 uses fpc:index; 728 uses fpc:policy-configuration-choice; 729 description "Settings"; 730 } 731 list dpn { 732 key dpn-key; 733 uses fpc:dpn-key; 734 min-elements 1; 735 list referenced-interface { 736 key interface-key; 737 uses fpc:interface-key; 738 leaf-list peer-service-group-key { 739 type fpc:fpc-identity; 740 description "Peer Service Group"; 741 } 742 description "Referenced Interface"; 743 } 744 description "DPN"; 745 } 746 description "Service Group"; 747 } 748 list dpn { 749 key dpn-key; 750 uses fpc:dpn-key; 751 leaf dpn-name { 752 type string; 753 description "DPN name"; 754 } 755 leaf dpn-resource-mapping-reference { 756 type string; 757 description "Reference to underlying DPN resource(s)"; 758 } 759 leaf domain-key { 760 type fpc:fpc-identity; 761 description "Domains"; 762 } 763 leaf-list service-group-key { 764 type fpc:fpc-identity; 765 description "Service Group"; 766 } 767 list interface { 768 key "interface-key"; 769 uses fpc:interface-key; 770 leaf interface-name { 771 type string; 772 description "Service Endpoint Interface Name"; 773 } 774 leaf role { 775 type identityref { 776 base "fpc:role"; 777 } 778 description "Roles supported"; 779 } 780 leaf-list protocol { 781 type identityref { 782 base "interface-protocols"; 783 } 784 description "Supported protocols"; 785 } 786 list interface-configuration { 787 key index; 788 uses fpc:index; 789 uses fpc:policy-configuration-choice; 790 description "Interface settings"; 791 } 792 description "DPN interfaces"; 793 } 794 list dpn-policy-configuration { 795 key policy-template-key; 796 uses fpc:ref-configuration; 797 description "DPN Policy Configuration"; 798 } 799 description "Set of DPNs"; 800 } 801 list domain { 802 key domain-key; 803 leaf domain-key { 804 type fpc:fpc-identity; 805 mandatory true; 806 description "Domain Key"; 807 } 808 leaf domain-name { 809 type string; 810 description "Domain displayname"; 811 } 812 list domain-policy-configuration { 813 key policy-template-key; 814 uses fpc:ref-configuration; 815 description "Domain Configuration"; 816 } 817 description "List of Domains"; 818 } 819 container dpn-checkpoint { 820 uses fpc:basename-info; 821 description "DPN Checkpoint information"; 822 } 823 container service-group-checkpoint { 824 uses fpc:basename-info; 825 description "Service Group Checkpoint information"; 826 } 827 container domain-checkpoint { 828 uses fpc:basename-info; 829 description "Domain Checkpoint information"; 830 } 831 description "FPC Topology grouping"; 832 } 833 container policy-information-model { 834 config false; 835 uses fpc:policy-information-model; 836 uses fpc:basename-info; 837 description "Policy"; 838 } 839 list mobility-context { 840 key "mobility-context-key"; 841 config false; 842 uses fpc:mobility-context; 843 description "Mobility Context"; 844 } 845 list monitor { 846 key monitor-key; 847 config false; 848 uses fpc:monitor-config; 849 description "Monitor"; 850 } 851 description "Tenant"; 852 } 854 typedef agent-identifier { 855 type fpc:fpc-identity; 856 description "Agent Identifier"; 857 } 858 typedef client-identifier { 859 type fpc:fpc-identity; 860 description "Client Identifier"; 861 } 862 grouping basename-info { 863 leaf basename { 864 type fpc:fpc-identity; 865 description "Rules Basename"; 866 } 867 leaf base-checkpoint { 868 type string; 869 description "Checkpoint"; 870 } 871 description "Basename Information"; 872 } 874 // RPCs 875 grouping client-id { 876 leaf client-id { 877 type fpc:client-identifier; 878 mandatory true; 879 description "Client Id"; 880 } 881 description "Client Identifier"; 882 } 883 grouping execution-delay { 884 leaf execution-delay { 885 type uint32; 886 description "Execution Delay (ms)"; 887 } 888 description "Execution Delay"; 889 } 890 typedef ref-scope { 891 type enumeration { 892 enum none { 893 value 0; 894 description "no references"; 895 } 896 enum op { 897 value 1; 898 description "All references are intra-operation"; 899 } 900 enum bundle { 901 value 2; 902 description "All references in exist in bundle"; 903 } 904 enum storage { 905 value 3; 906 description "One or more references exist in storage."; 907 } 908 enum unknown { 909 value 4; 910 description "The location of the references are unknown."; 911 } 912 } 913 description "Search scope for references in the operation."; 914 } 915 rpc configure { 916 description "Configure RPC"; 917 input { 918 uses client-id; 919 uses execution-delay; 920 uses ypatch:yang-patch; 921 } 922 output { 923 uses ypatch:yang-patch-status; 924 } 925 } 926 augment "/configure/input/yang-patch/edit" { 927 leaf reference-scope { 928 type fpc:ref-scope; 929 description "Reference Scope"; 930 } 931 uses fpcbase:instructions; 932 description "yang-patch edit augments for configure rpc"; 933 } 934 grouping subsequent-edits { 935 list subsequent-edit { 936 key edit-id; 937 ordered-by user; 939 description "Edit list"; 941 leaf edit-id { 942 type string; 943 description "Arbitrary string index for the edit."; 944 } 946 leaf operation { 947 type enumeration { 948 enum create { 949 description "Create"; 950 } 951 enum delete { 952 description "Delete"; 953 } 954 enum insert { 955 description "Insert"; 956 } 957 enum merge { 958 description "Merge"; 959 } 960 enum move { 961 description "Move"; 962 } 963 enum replace { 964 description "Replace"; 965 } 966 enum remove { 967 description 968 "Delete the target node if it currently exists."; 969 } 970 } 971 mandatory true; 972 description 973 "The datastore operation requested"; 974 } 976 leaf target { 977 type ypatch:target-resource-offset; 978 mandatory true; 979 description 980 "Identifies the target data node"; 981 } 983 leaf point { 984 when "(../operation = 'insert' or ../operation = 'move')" 985 + "and (../where = 'before' or ../where = 'after')" { 986 description 987 "This leaf only applies for 'insert' or 'move' 988 operations, before or after an existing entry."; 989 } 990 type ypatch:target-resource-offset; 991 description 992 "The absolute URL path for the data node"; 993 } 995 leaf where { 996 when "../operation = 'insert' or ../operation = 'move'" { 997 description 998 "This leaf only applies for 'insert' or 'move' 999 operations."; 1000 } 1001 type enumeration { 1002 enum before { 1003 description 1004 "Insert or move a data node before."; 1005 } 1006 enum after { 1007 description 1008 "Insert or move a data node after."; 1010 } 1011 enum first { 1012 description 1013 "Insert or move a data node so it becomes ordered 1014 as the first entry."; 1015 } 1016 enum last { 1017 description 1018 "Insert or move a data node so it becomes ordered 1019 as the last entry."; 1020 } 1021 } 1022 default last; 1023 description 1024 "Identifies where a data resource will be inserted 1025 or moved."; 1026 } 1028 anydata value { 1029 when "../operation = 'create' " 1030 + "or ../operation = 'merge' " 1031 + "or ../operation = 'replace' " 1032 + "or ../operation = 'insert'" { 1033 description 1034 "The anydata 'value' is only used for 'create', 1035 'merge', 'replace', and 'insert' operations."; 1036 } 1037 description 1038 "Value used for this edit operation."; 1039 } 1040 } 1041 description "Subsequent Edits"; 1042 } 1043 augment "/configure/output/yang-patch-status/edit-status/edit/" 1044 + "edit-status-choice/ok" { 1045 leaf notify-follows { 1046 type boolean; 1047 description "Notify Follows Indication"; 1048 } 1049 uses fpc:subsequent-edits; 1050 description "Configure output augments"; 1051 } 1053 grouping op-header { 1054 uses client-id; 1055 uses execution-delay; 1056 leaf operation-id { 1057 type uint64; 1058 mandatory true; 1059 description "Operation Identifier"; 1060 } 1061 description "Common Operation header"; 1062 } 1063 grouping monitor-response { 1064 leaf operation-id { 1065 type uint64; 1066 mandatory true; 1067 description "Operation Identifier"; 1068 } 1069 choice edit-status-choice { 1070 description 1071 "A choice between different types of status 1072 responses for each 'edit' entry."; 1073 leaf ok { 1074 type empty; 1075 description 1076 "This 'edit' entry was invoked without any 1077 errors detected by the server associated 1078 with this edit."; 1079 } 1080 case errors { 1081 uses rc:errors; 1082 description 1083 "The server detected errors associated with the 1084 edit identified by the same 'edit-id' value."; 1085 } 1086 } 1087 description "Monitor Response"; 1088 } 1090 // Common RPCs 1091 rpc register_monitor { 1092 description "Used to register monitoring of parameters/events"; 1093 input { 1094 uses fpc:op-header; 1095 list monitor { 1096 key monitor-key; 1097 uses fpc:monitor-config; 1098 description "Monitor Configuration"; 1099 } 1100 } 1101 output { 1102 uses fpc:monitor-response; 1103 } 1104 } 1105 rpc deregister_monitor { 1106 description "Used to de-register monitoring of 1107 parameters/events"; 1108 input { 1109 uses fpc:op-header; 1110 list monitor { 1111 key monitor-key; 1112 uses fpc:monitor-key; 1113 min-elements 1; 1114 leaf send_data { 1115 type boolean; 1116 description "Indicates if NOTIFY with final data 1117 is desired upon deregistration"; 1118 } 1119 description "Monitor Identifier"; 1120 } 1121 } 1122 output { 1123 uses fpc:monitor-response; 1124 } 1125 } 1126 rpc probe { 1127 description "Probe the status of a registered monitor"; 1128 input { 1129 uses fpc:op-header; 1130 list monitor { 1131 key monitor-key; 1132 uses fpc:monitor-key; 1133 min-elements 1; 1134 description "Monitor"; 1135 } 1136 } 1137 output { 1138 uses fpc:monitor-response; 1139 } 1140 } 1142 // Notification Messages & Structures 1143 notification config-result-notification { 1144 uses ypatch:yang-patch-status; 1145 description "Configuration Result Notification"; 1146 } 1147 augment "/config-result-notification" { 1148 uses fpc:subsequent-edits; 1149 description "config-result-notificatio augment"; 1150 } 1152 identity notification-cause { 1153 description "Notification Cause"; 1155 } 1156 identity subscribed-event-occurred { 1157 base "notification-cause"; 1158 description "Subscribed Event Occurence"; 1159 } 1160 identity low-threshold-crossed { 1161 base "notification-cause"; 1162 description "Subscribed Event Occurence"; 1163 } 1164 identity high-threshold-crossed { 1165 base "notification-cause"; 1166 description "Subscribed Event Occurence"; 1167 } 1168 identity periodic-report { 1169 base "notification-cause"; 1170 description "Periodic Report"; 1171 } 1172 identity scheduled-report { 1173 base "notification-cause"; 1174 description "Scheduled Report"; 1175 } 1176 identity probe { 1177 base "notification-cause"; 1178 description "Probe"; 1179 } 1180 identity deregistration-final-value { 1181 base "notification-cause"; 1182 description "Probe"; 1183 } 1184 identity monitoring-suspension { 1185 base "notification-cause"; 1186 description "Indicates monitoring suspension"; 1187 } 1188 identity monitoring-resumption { 1189 base "notification-cause"; 1190 description "Indicates that monitoring has resumed"; 1191 } 1192 identity dpn-available { 1193 base "notification-cause"; 1194 description "DPN Candidate Available"; 1195 } 1196 identity dpn-unavailable { 1197 base "notification-cause"; 1198 description "DPN Unavailable"; 1199 } 1200 notification notify { 1201 leaf notification-id { 1202 type uint32; 1203 description "Notification Identifier"; 1204 } 1205 leaf timestamp { 1206 type uint32; 1207 description "timestamp"; 1208 } 1209 list report { 1210 key monitor-key; 1211 uses fpc:monitor-key; 1212 min-elements 1; 1213 leaf trigger { 1214 type identityref { 1215 base "notification-cause"; 1216 } 1217 description "Notification Cause"; 1218 } 1219 choice value { 1220 case dpn-candidate-available { 1221 leaf node-id { 1222 type inet:uri; 1223 description "Topology URI"; 1224 } 1225 list supported-interface-list { 1226 key role-key; 1227 uses fpc:role-key; 1228 description "Support Intefaces"; 1229 } 1230 description "DPN Candidate Information"; 1231 } 1232 case dpn-unavailable { 1233 leaf dpn-id { 1234 type fpc:fpc-identity; 1235 description "DPN Identifier for DPN Unavailable"; 1236 } 1237 description "DPN Unavailable"; 1238 } 1239 anydata report-value { 1240 description "Any non integer report"; 1241 } 1242 description "Report Value"; 1243 } 1244 description "Report"; 1245 } 1246 description "Notify Message"; 1247 } 1248 } 1249 1251 3.2. FPC YANG Settings and Extensions Model 1253 This module defines the base data elements in FPC that are likely to 1254 be extended. 1256 This module references [RFC6991], ietf-trafficselector-types and 1257 ietf-pmip-qos modules. 1259 file "ietf-dmm-fpc-settingsext@2018-05-17.yang" 1260 module ietf-dmm-fpc-settingsext { 1261 yang-version 1.1; 1262 namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpc-settingsext"; 1263 prefix fpcbase; 1265 import ietf-inet-types { prefix inet; 1266 revision-date 2013-07-15; } 1267 import ietf-trafficselector-types { prefix traffic-selectors; 1268 revision-date 2018-05-17; } 1269 import ietf-yang-types { prefix ytypes; 1270 revision-date 2013-07-15; } 1271 import ietf-pmip-qos { prefix pmipqos; 1272 revision-date 2018-05-17; } 1273 import ietf-diam-trafficclassifier { prefix rfc5777; 1274 revision-date 2018-05-17; } 1276 organization "IETF Distributed Mobility Management (DMM) 1277 Working Group"; 1279 contact 1280 "WG Web: 1281 WG List: 1283 WG Chair: Dapeng Liu 1284 1286 WG Chair: Sri Gundavelli 1287 1289 Editor: Satoru Matsushima 1290 1292 Editor: Lyle Bertz 1293 "; 1295 description 1296 "This module contains YANG definition for 1297 Forwarding Policy Configuration Protocol(FPCP). 1299 It contains Settings defintions as well as Descriptor and 1300 Action extensions. 1302 Copyright (c) 2016 IETF Trust and the persons identified as the 1303 document authors. All rights reserved. 1305 This document is subject to BCP 78 and the IETF Trust's Legal 1306 Provisions Relating to IETF Documents 1307 (http://trustee.ietf.org/license-info) in effect on the date of 1308 publication of this document. Please review these documents 1309 carefully, as they describe your rights and restrictions with 1310 respect to this document. Code Components extracted from this 1311 document must include Simplified BSD License text as described 1312 in Section 4.e of the Trust Legal Provisions and are provided 1313 without warranty as described in the Simplified BSD License."; 1315 revision 2018-05-17 { 1316 description "Initial Revision."; 1317 reference "draft-ietf-dmm-fpc-cpdp-10"; 1318 } 1320 //Tunnel Information 1321 identity tunnel-type { 1322 description "Tunnel Type"; 1323 } 1324 identity grev1 { 1325 base "fpcbase:tunnel-type"; 1326 description "GRE v1"; 1327 } 1328 identity grev2 { 1329 base "fpcbase:tunnel-type"; 1330 description "GRE v2"; 1331 } 1332 identity ipinip { 1333 base "fpcbase:tunnel-type"; 1334 description "IP in IP"; 1335 } 1336 identity gtpv1 { 1337 base "fpcbase:tunnel-type"; 1338 description "GTP version 1 Tunnel"; 1339 } 1340 identity gtpv2 { 1341 base "fpcbase:tunnel-type"; 1342 description "GTP version 2 Tunnel"; 1343 } 1345 grouping tunnel-value { 1346 container tunnel-info { 1347 leaf tunnel-local-address { 1348 type inet:ip-address; 1349 description "local tunnel address"; 1350 } 1351 leaf tunnel-remote-address { 1352 type inet:ip-address; 1353 description "remote tunnel address"; 1354 } 1355 leaf mtu-size { 1356 type uint32; 1357 description "MTU size"; 1358 } 1359 leaf tunnel { 1360 type identityref { 1361 base "fpcbase:tunnel-type"; 1362 } 1363 description "tunnel type"; 1364 } 1365 leaf payload-type { 1366 type enumeration { 1367 enum ipv4 { 1368 value 0; 1369 description "IPv4"; 1370 } 1371 enum ipv6 { 1372 value 1; 1373 description "IPv6"; 1374 } 1375 enum dual { 1376 value 2; 1377 description "IPv4 and IPv6"; 1378 } 1379 } 1380 description "Payload Type"; 1381 } 1382 leaf gre-key { 1383 type uint32; 1384 description "GRE_KEY"; 1385 } 1386 container gtp-tunnel-info { 1387 leaf local-tunnel-identifier { 1388 type uint32; 1389 description "Tunnel Endpoint IDentifier (TEID)"; 1390 } 1391 leaf remote-tunnel-identifier { 1392 type uint32; 1393 description "Tunnel Endpoint IDentifier (TEID)"; 1394 } 1395 leaf sequence-numbers-enabled { 1396 type boolean; 1397 description "Sequence No. Enabled"; 1398 } 1399 description "GTP Tunnel Information"; 1400 } 1401 leaf ebi { 1402 type fpcbase:ebi-type; 1403 description "EPS Bearier Identifier"; 1404 } 1405 leaf lbi { 1406 type fpcbase:ebi-type; 1407 description "Linked Bearier Identifier"; 1408 } 1409 description "Tunnel Information"; 1410 } 1411 description "Tunnel Value"; 1412 } 1414 ////////////////////////////// 1415 // DESCRIPTOR DEFINITIONS 1417 // From 3GPP TS 24.008 version 13.5.0 Release 13 1418 typedef packet-filter-direction { 1419 type enumeration { 1420 enum preRel7Tft { 1421 value 0; 1422 description "Pre-Release 7 TFT"; 1423 } 1424 enum uplink { 1425 value 1; 1426 description "uplink"; 1427 } 1428 enum downlink { 1429 value 2; 1430 description "downlink"; 1431 } 1432 enum bidirectional { 1433 value 3; 1434 description "bi-direcitonal"; 1435 } 1436 } 1437 description "Packet Filter Direction"; 1438 } 1439 typedef component-type-id { 1440 type uint8 { 1441 range "16 | 17 | 32 | 33 | 35 | 48 | 64 | 65 |" 1442 + " 80 | 81 | 96 | 112 | 128"; 1444 } 1445 description "Specifies the Component Type"; 1446 } 1447 grouping packet-filter { 1448 leaf direction { 1449 type fpcbase:packet-filter-direction; 1450 description "Filter Direction"; 1451 } 1452 leaf identifier { 1453 type uint8 { 1454 range "1..15"; 1455 } 1456 description "Filter Identifier"; 1457 } 1458 leaf evaluation-precedence { 1459 type uint8; 1460 description "Evaluation Precedence"; 1461 } 1462 list contents { 1463 key component-type-identifier; 1464 description "Filter Contents"; 1465 leaf component-type-identifier { 1466 type fpcbase:component-type-id; 1467 description "Component Type"; 1468 } 1469 choice value { 1470 leaf ipv4-local { 1471 type inet:ipv4-address; 1472 description "IPv4 Local Address"; 1473 } 1474 leaf ipv6-prefix-local { 1475 type inet:ipv6-prefix; 1476 description "IPv6 Local Prefix"; 1477 } 1478 leaf ipv4-ipv6-remote { 1479 type inet:ip-address; 1480 description "Ipv4 Ipv6 remote address"; 1481 } 1482 leaf ipv6-prefix-remote { 1483 type inet:ipv6-prefix; 1484 description "IPv6 Remote Prefix"; 1485 } 1486 leaf next-header { 1487 type uint8; 1488 description "Next Header"; 1489 } 1490 leaf local-port { 1491 type inet:port-number; 1492 description "Local Port"; 1493 } 1494 case local-port-range { 1495 leaf local-port-lo { 1496 type inet:port-number; 1497 description "Local Port Min Value"; 1498 } 1499 leaf local-port-hi { 1500 type inet:port-number; 1501 description "Local Port Max Value"; 1502 } 1503 } 1504 leaf remote-port { 1505 type inet:port-number; 1506 description "Remote Port"; 1507 } 1508 case remote-port-range { 1509 leaf remote-port-lo { 1510 type inet:port-number; 1511 description "Remote Por Min Value"; 1512 } 1513 leaf remote-port-hi { 1514 type inet:port-number; 1515 description "Remote Port Max Value"; 1516 } 1517 } 1518 leaf ipsec-index { 1519 type traffic-selectors:ipsec-spi; 1520 description "IPSec Index"; 1521 } 1522 leaf traffic-class { 1523 type inet:dscp; 1524 description "Traffic Class"; 1525 } 1526 case traffic-class-range { 1527 leaf traffic-class-lo { 1528 type inet:dscp; 1529 description "Traffic Class Min Value"; 1530 } 1531 leaf traffic-class-hi { 1532 type inet:dscp; 1533 description "Traffic Class Max Value"; 1534 } 1535 } 1536 leaf-list flow-label { 1537 type inet:ipv6-flow-label; 1538 description "Flow Label"; 1539 } 1540 description "Component Value"; 1541 } 1542 } 1543 description "Packet Filter"; 1544 } 1546 grouping prefix-descriptor { 1547 leaf destination-ip { 1548 type inet:ip-prefix; 1549 description "Rule of destination IP"; 1550 } 1551 leaf source-ip { 1552 type inet:ip-prefix; 1553 description "Rule of source IP"; 1554 } 1555 description "Traffic descriptor based upon source/ 1556 destination as IP prefixes"; 1557 } 1559 grouping fpc-descriptor-value { 1560 choice descriptor-value { 1561 mandatory true; 1562 leaf all-traffic { 1563 type empty; 1564 description "admit any"; 1565 } 1566 leaf no-traffic { 1567 type empty; 1568 description "deny any"; 1569 } 1570 case prefix-descriptor { 1571 uses fpcbase:prefix-descriptor; 1572 description "IP Prefix descriptor"; 1573 } 1574 case pmip-selector { 1575 uses traffic-selectors:traffic-selector; 1576 description "PMIP Selector"; 1577 } 1578 container rfc5777-classifier-template { 1579 uses rfc5777:classifier; 1580 description "RFC 5777 Classifier"; 1581 } 1582 container packet-filter { 1583 uses fpcbase:packet-filter; 1584 description "Packet Filter"; 1585 } 1586 case tunnel-info { 1587 uses fpcbase:tunnel-value; 1588 description "Tunnel Descriptor (only 1589 considers source info)"; 1590 } 1591 description "Descriptor Value"; 1592 } 1593 description "FPC Descriptor Values"; 1594 } 1596 // Next Hop Structures 1597 typedef fpc-service-path-id { 1598 type uint32 { 1599 range "0..33554431"; 1600 } 1601 description "SERVICE_PATH_ID"; 1602 } 1603 typedef fpc-mpls-label { 1604 type uint32 { 1605 range "0..1048575"; 1606 } 1607 description "MPLS label"; 1608 } 1609 typedef segment-id { 1610 type string { 1611 length "16"; 1612 } 1613 description "SR Segement Identifier"; 1614 } 1615 grouping fpc-nexthop { 1616 choice next-hop-value { 1617 leaf ip-address { 1618 type inet:ip-address; 1619 description "IP Value"; 1620 } 1621 leaf mac-address { 1622 type ytypes:mac-address; 1623 description "MAC Address Value"; 1624 } 1625 leaf service-path { 1626 type fpcbase:fpc-service-path-id; 1627 description "Service Path Value"; 1628 } 1629 leaf mpls-path { 1630 type fpcbase:fpc-mpls-label; 1631 description "MPLS Value"; 1632 } 1633 leaf nsh { 1634 type string { 1635 length "16"; 1637 } 1638 description "Network Service Header"; 1639 } 1640 leaf interface { 1641 type uint16; 1642 description "If (interface) Value"; 1643 } 1644 leaf segment-identifier { 1645 type fpcbase:segment-id; 1646 description "Segment Id"; 1647 } 1648 leaf-list mpls-label-stack { 1649 type fpcbase:fpc-mpls-label; 1650 description "MPLS Stack"; 1651 } 1652 leaf-list mpls-sr-stack { 1653 type fpcbase:fpc-mpls-label; 1654 description "MPLS SR Stack"; 1655 } 1656 leaf-list srv6-stack { 1657 type fpcbase:segment-id; 1658 description "Segment Id"; 1659 } 1660 case tunnel-info { 1661 uses fpcbase:tunnel-value; 1662 description "Tunnel Descriptor (only 1663 considers source info)"; 1664 } 1665 description "Value"; 1666 } 1667 description "Nexthop Value"; 1668 } 1670 ////////////////////////////// 1671 // PMIP Integration // 1672 typedef pmip-commandset { 1673 type bits { 1674 bit assign-ip { 1675 position 0; 1676 description "Assign IP"; 1677 } 1678 bit assign-dpn { 1679 position 1; 1680 description "Assign DPN"; 1681 } 1682 bit session { 1683 position 2; 1684 description "Session Level"; 1686 } 1687 bit uplink { 1688 position 3; 1689 description "Uplink"; 1690 } 1691 bit downlink { 1692 position 4; 1693 description "Downlink"; 1694 } 1695 } 1696 description "PMIP Instructions"; 1697 } 1698 /////////////////////////////// 1699 // 3GPP Integration // 1701 // Type Defs 1702 typedef fpc-qos-class-identifier { 1703 type uint8 { 1704 range "1..9"; 1705 } 1706 description "QoS Class Identifier (QCI)"; 1707 } 1708 typedef ebi-type { 1709 type uint8 { 1710 range "0..15"; 1711 } 1712 description "EUTRAN Bearere Identifier (EBI) Type"; 1713 } 1714 typedef imsi-type { 1715 type uint64; 1716 description 1717 "International Mobile Subscriber Identity (IMSI) 1718 Value Type"; 1719 } 1720 // Instructions 1721 typedef threegpp-instr { 1722 type bits { 1723 bit assign-ip { 1724 position 0; 1725 description "Assign IP Address/Prefix"; 1726 } 1727 bit assign-fteid-ip { 1728 position 1; 1729 description "Assign FTEID-IP"; 1730 } 1731 bit assign-fteid-teid { 1732 position 2; 1733 description "Assign FTEID-TEID"; 1735 } 1736 bit session { 1737 position 3; 1738 description "Commands apply to the Session Level"; 1739 } 1740 bit uplink { 1741 position 4; 1742 description "Commands apply to the Uplink"; 1743 } 1744 bit downlink { 1745 position 5; 1746 description "Commands apply to the Downlink"; 1747 } 1748 bit assign-dpn { 1749 position 6; 1750 description "Assign DPN"; 1751 } 1752 } 1753 description "Instruction Set for 3GPP R11"; 1754 } 1756 ////////////////////////////// 1757 // ACTION VALUE AUGMENTS 1758 grouping fpc-action-value { 1759 choice action-value { 1760 mandatory true; 1761 leaf drop { 1762 type empty; 1763 description "Drop Traffic"; 1764 } 1765 container rewrite { 1766 choice rewrite-value { 1767 case prefix-descriptor { 1768 uses fpcbase:prefix-descriptor; 1769 description "IP Prefix descriptor"; 1770 } 1771 case pmip-selector { 1772 uses traffic-selectors:traffic-selector; 1773 description "PMIP Selector"; 1774 } 1775 container rfc5777-classifier-template { 1776 uses rfc5777:classifier; 1777 description "RFC 5777 Classifier"; 1778 } 1779 description "Rewrite Choice"; 1780 } 1781 description "Rewrite/NAT value"; 1782 } 1783 container copy-forward-nexthop { 1784 uses fpcbase:fpc-nexthop; 1785 description "Copy Forward Value"; 1786 } 1787 container nexthop { 1788 uses fpcbase:fpc-nexthop; 1789 description "NextHop Value"; 1790 } 1791 case qos { 1792 leaf trafficclass { 1793 type inet:dscp; 1794 description "Traffic Class"; 1795 } 1796 uses pmipqos:qosattribute; 1797 leaf qci { 1798 type fpcbase:fpc-qos-class-identifier; 1799 description "QCI"; 1800 } 1801 leaf ue-agg-max-bitrate { 1802 type uint32; 1803 description "UE Aggregate Max Bitrate"; 1804 } 1805 leaf apn-ambr { 1806 type uint32; 1807 description 1808 "Access Point Name Aggregate Max Bit Rate"; 1809 } 1810 description "QoS Attributes"; 1811 } 1812 description "Action Value"; 1813 } 1814 description "FPC Action Value"; 1815 } 1817 // Instructions 1818 grouping instructions { 1819 container command-set { 1820 choice instr-type { 1821 leaf instr-3gpp-mob { 1822 type fpcbase:threegpp-instr; 1823 description "3GPP GTP Mobility Instructions"; 1824 } 1825 leaf instr-pmip { 1826 type pmip-commandset; 1827 description "PMIP Instructions"; 1828 } 1829 description "Instruction Value Choice"; 1830 } 1831 description "Instructions"; 1832 } 1833 description "Instructions Value"; 1834 } 1835 } 1836 1838 3.3. PMIP QoS Model 1840 This module defines the base protocol elements specified in this 1841 document. 1843 This module references [RFC6991]. 1845 file "ietf-pmip-qos@2018-05-17.yang" 1846 module ietf-pmip-qos { 1847 yang-version 1.1; 1849 namespace 1850 "urn:ietf:params:xml:ns:yang:ietf-pmip-qos"; 1852 prefix "qos-pmip"; 1854 import ietf-inet-types { 1855 prefix inet; 1856 revision-date 2013-07-15; 1857 } 1858 import ietf-trafficselector-types { prefix traffic-selectors; 1859 revision-date 2018-05-17; } 1861 organization "IETF Distributed Mobility Management (DMM) 1862 Working Group"; 1864 contact 1865 "WG Web: 1866 WG List: 1868 WG Chair: Dapeng Liu 1869 1871 WG Chair: Sri Gundavelli 1872 1874 Editor: Satoru Matsushima 1875 1877 Editor: Lyle Bertz 1878 "; 1880 description 1881 "This module contains a collection of YANG definitions for 1882 quality of service paramaters used in Proxy Mobile IPv6. 1884 Copyright (c) 2016 IETF Trust and the persons identified as the 1885 document authors. All rights reserved. 1887 This document is subject to BCP 78 and the IETF Trust's Legal 1888 Provisions Relating to IETF Documents 1889 (http://trustee.ietf.org/license-info) in effect on the date of 1890 publication of this document. Please review these documents 1891 carefully, as they describe your rights and restrictions with 1892 respect to this document. Code Components extracted from this 1893 document must include Simplified BSD License text as described 1894 in Section 4.e of the Trust Legal Provisions and are provided 1895 without warranty as described in the Simplified BSD License."; 1897 revision 2018-05-17 { 1898 description "Initial Revision."; 1899 reference "RFC 6088: Traffic Selectors for Flow Bindings"; 1900 } 1902 // Type Definitions 1904 // QoS Option Field Type Definitions 1905 typedef sr-id { 1906 type uint8; 1907 description 1908 "An 8-bit unsigned integer used for identifying the QoS 1909 Service Request."; 1910 } 1912 typedef traffic-class { 1913 type inet:dscp; 1914 description 1915 "Traffic Class consists of a 6-bit DSCP field followed by a 1916 2-bit reserved field."; 1917 reference 1918 "RFC 3289: Management Information Base for the 1919 Differentiated Services Architecture 1920 RFC 2474: Definition of the Differentiated Services Field 1921 (DS Field) in the IPv4 and IPv6 Headers 1922 RFC 2780: IANA Allocation Guidelines For Values In 1923 the Internet Protocol and Related Headers"; 1924 } 1926 typedef operational-code { 1927 type enumeration { 1928 enum RESPONSE { 1929 value 0; 1930 description "Response to a QoS request"; 1931 } 1932 enum ALLOCATE { 1933 value 1; 1934 description "Request to allocate QoS resources"; 1935 } 1936 enum DE-ALLOCATE { 1937 value 2; 1938 description "Request to de-Allocate QoS resources"; 1939 } 1940 enum MODIFY { 1941 value 3; 1942 description "Request to modify QoS parameters for a 1943 previously negotiated QoS Service Request"; 1944 } 1945 enum QUERY { 1946 value 4; 1947 description "Query to list the previously negotiated QoS 1948 Service Requests that are still active"; 1949 } 1950 enum NEGOTIATE { 1951 value 5; 1952 description "Response to a QoS Service Request with a 1953 counter QoS proposal"; 1954 } 1955 } 1956 description 1957 "The type of QoS request. Reserved values: (6) to (255) 1958 Currently not used. Receiver MUST ignore the option 1959 received with any value in this range."; 1960 } 1962 //Value definitions 1963 typedef Per-MN-Agg-Max-DL-Bit-Rate-Value { 1964 type uint32; 1965 description 1966 "The aggregate maximum downlink bit rate that is 1967 requested/allocated for all the mobile node's IP flows. 1968 The measurement units are bits per second."; 1969 } 1971 typedef Per-MN-Agg-Max-UL-Bit-Rate-Value { 1972 type uint32; 1973 description 1974 "The aggregate maximum uplink bit rate that is 1975 requested/allocated for the mobile node's IP flows. The 1976 measurement units are bits per second."; 1977 } 1979 // Generic Structure for the uplink and downlink 1980 grouping Per-Session-Agg-Max-Bit-Rate-Value { 1981 leaf max-rate { 1982 type uint32; 1983 mandatory true; 1984 description 1985 "The aggregate maximum bit rate that is requested/allocated 1986 for all the IP flows associated with that mobility session. 1987 The measurement units are bits per second."; 1988 } 1989 leaf service-flag { 1990 type boolean; 1991 mandatory true; 1992 description 1993 "This flag is used for extending the scope of the 1994 target flows for Per-Session-Agg-Max-UL/DL-Bit-Rate 1995 from(UL)/to(DL) the mobile node's other mobility sessions 1996 sharing the same Service Identifier."; 1997 reference 1998 "RFC 5149 - Service Selection mobility option"; 1999 } 2000 leaf exclude-flag { 2001 type boolean; 2002 mandatory true; 2003 description 2004 "This flag is used to request that the uplink/downlink 2005 flows for which the network is providing 2006 Guaranteed-Bit-Rate service be excluded from the 2007 target IP flows for which 2008 Per-Session-Agg-Max-UL/DL-Bit-Rate is measured."; 2009 } 2010 description "Per-Session-Agg-Max-Bit-Rate Value"; 2011 } 2013 grouping Allocation-Retention-Priority-Value { 2014 leaf priority-level { 2015 type uint8 { 2016 range "0..15"; 2017 } 2018 mandatory true; 2019 description 2020 "This is a 4-bit unsigned integer value. It is used to decide 2021 whether a mobility session establishment or modification 2022 request can be accepted; this is typically used for 2023 admission control of Guaranteed Bit Rate traffic in case of 2024 resource limitations."; 2025 } 2026 leaf preemption-capability { 2027 type enumeration { 2028 enum enabled { 2029 value 0; 2030 description "enabled"; 2031 } 2032 enum disabled { 2033 value 1; 2034 description "disabled"; 2035 } 2036 enum reserved1 { 2037 value 2; 2038 description "reserved1"; 2039 } 2040 enum reserved2 { 2041 value 3; 2042 description "reserved2"; 2043 } 2044 } 2045 mandatory true; 2046 description 2047 "This is a 2-bit unsigned integer value. It defines whether a 2048 service data flow can get resources tha were already 2049 assigned to another service data flow with a lower priority 2050 level."; 2051 } 2052 leaf preemption-vulnerability { 2053 type enumeration { 2054 enum enabled { 2055 value 0; 2056 description "enabled"; 2057 } 2058 enum disabled { 2059 value 1; 2060 description "disabled"; 2061 } 2062 enum reserved1 { 2063 value 2; 2064 description "reserved1"; 2065 } 2066 enum reserved2 { 2067 value 3; 2068 description "reserved2"; 2069 } 2070 } 2071 mandatory true; 2072 description 2073 "This is a 2-bit unsigned integer value. It defines whether a 2074 service data flow can lose the resources assigned to it in 2075 order to admit a service data flow with a higher priority 2076 level."; 2077 } 2078 description "Allocation-Retention-Priority Value"; 2079 } 2081 typedef Aggregate-Max-DL-Bit-Rate-Value { 2082 type uint32; 2083 description 2084 "The aggregate maximum downlink bit rate that is 2085 requested/allocated for downlink IP flows. The measurement 2086 units are bits per second."; 2087 } 2089 typedef Aggregate-Max-UL-Bit-Rate-Value { 2090 type uint32; 2091 description 2092 "The aggregate maximum downlink bit rate that is 2093 requested/allocated for downlink IP flows. The measurement 2094 units are bits per second."; 2095 } 2097 typedef Guaranteed-DL-Bit-Rate-Value { 2098 type uint32; 2099 description 2100 "The guaranteed bandwidth in bits per second for downlink 2101 IP flows. The measurement units are bits per second."; 2102 } 2104 typedef Guaranteed-UL-Bit-Rate-Value { 2105 type uint32; 2106 description 2107 "The guaranteed bandwidth in bits per second for uplink 2108 IP flows. The measurement units are bits per second."; 2109 } 2111 grouping QoS-Vendor-Specific-Attribute-Value-Base { 2112 leaf vendorid { 2113 type uint32; 2114 mandatory true; 2115 description 2116 "The Vendor ID is the SMI (Structure of Management 2117 Information) Network Management Private Enterprise Code of 2118 the IANA-maintained 'Private Enterprise Numbers' 2119 registry."; 2121 reference 2122 "'PRIVATE ENTERPRISE NUMBERS', SMI Network Management 2123 Private Enterprise Codes, April 2014, 2124 "; 2125 } 2126 leaf subtype { 2127 type uint8; 2128 mandatory true; 2129 description 2130 "An 8-bit field indicating the type of vendor-specific 2131 information carried in the option. The namespace for this 2132 sub-type is managed by the vendor identified by the 2133 Vendor ID field."; 2134 } 2135 description 2136 "QoS Vendor-Specific Attribute."; 2137 } 2139 //Primary Structures (groupings) 2140 grouping qosattribute { 2141 leaf per-mn-agg-max-dl { 2142 type qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value; 2143 description "Per-MN-Agg-Max-DL-Bit-Rate Value"; 2144 } 2145 leaf per-mn-agg-max-ul { 2146 type qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value; 2147 description "Per-MN-Agg-Max-UL-Bit-Rate Value"; 2148 } 2149 container per-session-agg-max-dl { 2150 uses qos-pmip:Per-Session-Agg-Max-Bit-Rate-Value; 2151 description "Per-Session-Agg-Max-Bit-Rate Value"; 2152 } 2153 container per-session-agg-max-ul { 2154 uses qos-pmip:Per-Session-Agg-Max-Bit-Rate-Value; 2155 description "Per-Session-Agg-Max-Bit-Rate Value"; 2156 } 2157 uses qos-pmip:Allocation-Retention-Priority-Value; 2158 leaf agg-max-dl { 2159 type qos-pmip:Aggregate-Max-DL-Bit-Rate-Value; 2160 description "Aggregate-Max-DL-Bit-Rate Value"; 2161 } 2162 leaf agg-max-ul { 2163 type qos-pmip:Aggregate-Max-UL-Bit-Rate-Value; 2164 description "Aggregate-Max-UL-Bit-Rate Value"; 2165 } 2166 leaf gbr-dl { 2167 type qos-pmip:Guaranteed-DL-Bit-Rate-Value; 2168 description "Guaranteed-DL-Bit-Rate Value"; 2170 } 2171 leaf gbr-ul { 2172 type qos-pmip:Guaranteed-UL-Bit-Rate-Value; 2173 description "Guaranteed-UL-Bit-Rate Value"; 2174 } 2175 description "PMIP QoS Attributes. Note Vendor option 2176 is not a part of this grouping"; 2177 } 2179 grouping qosoption { 2180 leaf srid { 2181 type sr-id; 2182 mandatory true; 2183 description "Service Request Identifier"; 2184 } 2185 leaf trafficclass { 2186 type traffic-class; 2187 mandatory true; 2188 description "Traffic Class"; 2189 } 2190 leaf operationcode { 2191 type operational-code; 2192 mandatory true; 2193 description "Operation Code"; 2194 } 2195 uses qos-pmip:qosattribute; 2196 uses qos-pmip:QoS-Vendor-Specific-Attribute-Value-Base; 2197 container traffic-selector { 2198 uses traffic-selectors:traffic-selector; 2199 description "traffic selector"; 2200 } 2201 description "PMIP QoS Option"; 2202 } 2203 } 2204 2206 3.4. Traffic Selectors YANG Model 2208 This module defines traffic selector types commonly used in Proxy 2209 Mobile IP (PMIP). 2211 This module references [RFC6991]. 2213 file "ietf-trafficselector-types@2018-05-17.yang" 2214 module ietf-trafficselector-types { 2215 yang-version 1.1; 2217 namespace 2218 "urn:ietf:params:xml:ns:yang:ietf-trafficselector-types"; 2220 prefix "traffic-selectors"; 2222 import ietf-inet-types { 2223 prefix inet; 2224 revision-date 2013-07-15; 2225 } 2227 organization "IETF Distributed Mobility Management (DMM) 2228 Working Group"; 2230 contact 2231 "WG Web: 2232 WG List: 2234 WG Chair: Dapeng Liu 2235 2237 WG Chair: Sri Gundavelli 2238 2240 Editor: Satoru Matsushima 2241 2243 Editor: Lyle Bertz 2244 "; 2246 description 2247 "This module contains a collection of YANG definitions for 2248 traffic selectors for flow bindings. 2250 Copyright (c) 2016 IETF Trust and the persons identified as the 2251 document authors. All rights reserved. 2253 This document is subject to BCP 78 and the IETF Trust's Legal 2254 Provisions Relating to IETF Documents 2255 (http://trustee.ietf.org/license-info) in effect on the date of 2256 publication of this document. Please review these documents 2257 carefully, as they describe your rights and restrictions with 2258 respect to this document. Code Components extracted from this 2259 document must include Simplified BSD License text as described 2260 in Section 4.e of the Trust Legal Provisions and are provided 2261 without warranty as described in the Simplified BSD License."; 2263 revision 2018-05-17 { 2264 description 2265 "Initial Revision."; 2267 reference 2268 "RFC 6088: Traffic Selectors for Flow Bindings"; 2269 } 2271 // Identities 2272 identity traffic-selector-format { 2273 description 2274 "The base type for Traffic-Selector Formats"; 2275 } 2277 identity ipv4-binary-selector-format { 2278 base traffic-selector-format; 2279 description 2280 "IPv4 Binary Traffic Selector Format"; 2281 } 2283 identity ipv6-binary-selector-format { 2284 base traffic-selector-format; 2285 description 2286 "IPv6 Binary Traffic Selector Format"; 2287 } 2289 // Type definitions and groupings 2290 typedef ipsec-spi { 2291 type uint32; 2292 description 2293 "The first 32-bit IPsec Security Parameter Index (SPI) 2294 value on data. This field is defined in [RFC4303]."; 2295 reference 2296 "RFC 4303: IP Encapsulating Security 2297 Payload (ESP)"; 2298 } 2300 grouping traffic-selector-base { 2301 description "A grouping of the commen leaves between the 2302 v4 and v6 Traffic Selectors"; 2303 container ipsec-spi-range { 2304 presence "Enables setting ipsec spi range"; 2305 description 2306 "Inclusive range representing IPSec Security Parameter 2307 Indices to be used. When only start-spi is present, it 2308 represents a single spi."; 2309 leaf start-spi { 2310 type ipsec-spi; 2311 mandatory true; 2312 description 2313 "The first 32-bit IPsec SPI value on data."; 2314 } 2316 leaf end-spi { 2317 type ipsec-spi; 2318 must ". >= ../start-spi" { 2319 error-message 2320 "The end-spi must be greater than or equal 2321 to start-spi"; 2322 } 2323 description 2324 "If more than one contiguous SPI value needs to be matched, 2325 then this field indicates the end value of a range."; 2326 } 2327 } 2328 container source-port-range { 2329 presence "Enables setting source port range"; 2330 description 2331 "Inclusive range representing source ports to be used. 2332 When only start-port is present, it represents a single 2333 port. These value(s) are from the range of port numbers 2334 defined by IANA (http://www.iana.org)."; 2335 leaf start-port { 2336 type inet:port-number; 2337 mandatory true; 2338 description 2339 "The first 16-bit source port number to be matched"; 2340 } 2341 leaf end-port { 2342 type inet:port-number; 2343 must ". >= ../start-port" { 2344 error-message 2345 "The end-port must be greater than or equal to start-port"; 2346 } 2347 description 2348 "The last 16-bit source port number to be matched"; 2349 } 2350 } 2351 container destination-port-range { 2352 presence "Enables setting destination port range"; 2353 description 2354 "Inclusive range representing destination ports to be used. 2355 When only start-port is present, it represents a single 2356 port."; 2357 leaf start-port { 2358 type inet:port-number; 2359 mandatory true; 2360 description 2361 "The first 16-bit destination port number to be matched"; 2362 } 2363 leaf end-port { 2364 type inet:port-number; 2365 must ". >= ../start-port" { 2366 error-message 2367 "The end-port must be greater than or equal to 2368 start-port"; 2369 } 2370 description 2371 "The last 16-bit destination port number to be matched"; 2372 } 2373 } 2374 } 2376 grouping ipv4-binary-traffic-selector { 2377 container source-address-range-v4 { 2378 presence "Enables setting source IPv4 address range"; 2379 description 2380 "Inclusive range representing IPv4 addresses to be used. When 2381 only start-address is present, it represents a single 2382 address."; 2383 leaf start-address { 2384 type inet:ipv4-address; 2385 mandatory true; 2386 description 2387 "The first source address to be matched"; 2388 } 2389 leaf end-address { 2390 type inet:ipv4-address; 2391 description 2392 "The last source address to be matched"; 2393 } 2394 } 2395 container destination-address-range-v4 { 2396 presence "Enables setting destination IPv4 address range"; 2397 description 2398 "Inclusive range representing IPv4 addresses to be used. 2399 When only start-address is present, it represents a 2400 single address."; 2401 leaf start-address { 2402 type inet:ipv4-address; 2403 mandatory true; 2404 description 2405 "The first destination address to be matched"; 2406 } 2407 leaf end-address { 2408 type inet:ipv4-address; 2409 description 2410 "The last destination address to be matched"; 2411 } 2413 } 2414 container ds-range { 2415 presence "Enables setting dscp range"; 2416 description 2417 "Inclusive range representing DiffServ Codepoints to be used. 2418 When only start-ds is present, it represents a single 2419 Codepoint."; 2420 leaf start-ds { 2421 type inet:dscp; 2422 mandatory true; 2423 description 2424 "The first differential service value to be matched"; 2425 } 2426 leaf end-ds { 2427 type inet:dscp; 2428 must ". >= ../start-ds" { 2429 error-message 2430 "The end-ds must be greater than or equal to start-ds"; 2431 } 2432 description 2433 "The last differential service value to be matched"; 2434 } 2435 } 2436 container protocol-range { 2437 presence "Enables setting protocol range"; 2438 description 2439 "Inclusive range representing IP protocol(s) to be used. When 2440 only start-protocol is present, it represents a single 2441 protocol."; 2442 leaf start-protocol { 2443 type uint8; 2444 mandatory true; 2445 description 2446 "The first 8-bit protocol value to be matched."; 2447 } 2448 leaf end-protocol { 2449 type uint8; 2450 must ". >= ../start-protocol" { 2451 error-message 2452 "The end-protocol must be greater than or equal to 2453 start-protocol"; 2454 } 2455 description 2456 "The last 8-bit protocol value to be matched."; 2457 } 2458 } 2459 description "ipv4 binary traffic selector"; 2460 } 2461 grouping ipv6-binary-traffic-selector { 2462 container source-address-range-v6 { 2463 presence "Enables setting source IPv6 address range"; 2464 description 2465 "Inclusive range representing IPv6 addresses to be used. 2466 When only start-address is present, it represents a 2467 single address."; 2468 leaf start-address { 2469 type inet:ipv6-address; 2470 mandatory true; 2471 description 2472 "The first source address, from the 2473 range of 128-bit IPv6 addresses to be matched"; 2474 } 2475 leaf end-address { 2476 type inet:ipv6-address; 2477 description 2478 "The last source address, from the 2479 range of 128-bit IPv6 addresses to be matched"; 2480 } 2481 } 2482 container destination-address-range-v6 { 2483 presence "Enables setting destination IPv6 address range"; 2484 description 2485 "Inclusive range representing IPv6 addresses to be used. 2486 When only start-address is present, it represents a 2487 single address."; 2488 leaf start-address { 2489 type inet:ipv6-address; 2490 mandatory true; 2491 description 2492 "The first destination address, from the 2493 range of 128-bit IPv6 addresses to be matched"; 2494 } 2495 leaf end-address { 2496 type inet:ipv6-address; 2497 description 2498 "The last destination address, from the 2499 range of 128-bit IPv6 addresses to be matched"; 2500 } 2501 } 2502 container flow-label-range { 2503 presence "Enables setting Flow Label range"; 2504 description 2505 "Inclusive range representing IPv4 addresses to be used. When 2506 only start-flow-label is present, it represents a single 2507 flow label."; 2508 leaf start-flow-label { 2509 type inet:ipv6-flow-label; 2510 description 2511 "The first flow label value to be matched"; 2512 } 2513 leaf end-flow-label { 2514 type inet:ipv6-flow-label; 2515 must ". >= ../start-flow-label" { 2516 error-message 2517 "The end-flow-lable must be greater than or equal to 2518 start-flow-label"; 2519 } 2520 description 2521 "The first flow label value to be matched"; 2522 } 2523 } 2524 container traffic-class-range { 2525 presence "Enables setting the traffic class range"; 2526 description 2527 "Inclusive range representing IPv4 addresses to be used. When 2528 only start-traffic-class is present, it represents a single 2529 traffic class."; 2530 leaf start-traffic-class { 2531 type inet:dscp; 2532 description 2533 "The first traffic class value to be matched"; 2534 reference 2535 "RFC 3260: New Terminology and Clarifications for Diffserv 2536 RFC 3168: The Addition of Explicit Congestion Notification 2537 (ECN) to IP"; 2538 } 2539 leaf end-traffic-class { 2540 type inet:dscp; 2541 must ". >= ../start-traffic-class" { 2542 error-message 2543 "The end-traffic-class must be greater than or equal to 2544 start-traffic-class"; 2545 } 2546 description 2547 "The last traffic class value to be matched"; 2548 } 2549 } 2550 container next-header-range { 2551 presence "Enables setting Next Header range"; 2552 description 2553 "Inclusive range representing Next Headers to be used. When 2554 only start-next-header is present, it represents a 2555 single Next Header."; 2556 leaf start-next-header { 2557 type uint8; 2558 description 2559 "The first 8-bit next header value to be matched."; 2560 } 2561 leaf end-next-header { 2562 type uint8; 2563 must ". >= ../start-next-header" { 2564 error-message 2565 "The end-next-header must be greater than or equal to 2566 start-next-header"; 2567 } 2568 description 2569 "The last 8-bit next header value to be matched."; 2570 } 2571 } 2572 description "ipv6 binary traffic selector"; 2573 } 2575 grouping traffic-selector { 2576 leaf ts-format { 2577 type identityref { 2578 base traffic-selector-format; 2579 } 2580 description "Traffic Selector Format"; 2581 } 2582 uses traffic-selectors:traffic-selector-base; 2583 uses traffic-selectors:ipv4-binary-traffic-selector; 2584 uses traffic-selectors:ipv6-binary-traffic-selector; 2585 description 2586 "The traffic selector includes the parameters used to match 2587 packets for a specific flow binding."; 2588 reference 2589 "RFC 6089: Flow Bindings in Mobile IPv6 and Network 2590 Mobility (NEMO) Basic Support"; 2591 } 2592 } 2593 2595 3.5. RFC 5777 Classifier YANG Model 2597 This module defines the RFC 5777 Classifer. 2599 This module references [RFC5777]. 2601 file "ietf-diam-trafficclassifier@2018-05-17.yang" 2602 module ietf-diam-trafficclassifier { 2603 yang-version 1.1; 2604 namespace 2605 "urn:ietf:params:xml:ns:yang:ietf-diam-trafficclassifier"; 2607 prefix "diamclassifier"; 2609 import ietf-inet-types { 2610 prefix inet; 2611 revision-date 2013-07-15; 2612 } 2613 import ietf-yang-types { prefix yang-types; } 2615 organization "IETF Distributed Mobility Management (DMM) 2616 Working Group"; 2618 contact 2619 "WG Web: 2620 WG List: 2622 WG Chair: Dapeng Liu 2623 2625 WG Chair: Sri Gundavelli 2626 2628 Editor: Satoru Matsushima 2629 2631 Editor: Lyle Bertz 2632 "; 2634 description 2635 "This module contains a collection of YANG definitions for 2636 traffic classification and QoS Attributes for Diameter. 2638 Copyright (c) 2018 IETF Trust and the persons identified as the 2639 document authors. All rights reserved. 2641 This document is subject to BCP 78 and the IETF Trust's Legal 2642 Provisions Relating to IETF Documents 2643 (http://trustee.ietf.org/license-info) in effect on the date of 2644 publication of this document. Please review these documents 2645 carefully, as they describe your rights and restrictions with 2646 respect to this document. Code Components extracted from this 2647 document must include Simplified BSD License text as described 2648 in Section 4.e of the Trust Legal Provisions and are provided 2649 without warranty as described in the Simplified BSD License."; 2651 revision 2018-05-17 { 2652 description 2653 "Initial"; 2654 reference 2655 "RFC 5777: Traffic Classification and Quality of Service (QoS) 2656 Attributes for Diameter"; 2657 } 2659 typedef eui64-address-type { 2660 type string { 2661 length "6"; 2662 } 2663 description 2664 "specifies a single layer 2 address in EUI-64 format. 2665 The value is an 8-octet encoding of the address as 2666 it would appear in the frame header."; 2667 } 2668 typedef direction-type { 2669 type enumeration { 2670 enum IN { 2671 value 0; 2672 description 2673 "Applies to flows from the managed terminal."; 2674 } 2675 enum OUT { 2676 value 1; 2677 description 2678 "Applies to flows to the managed terminal."; 2679 } 2680 enum BOTH { 2681 value 2; 2682 description 2683 "Applies to flows both to and from the managed 2684 terminal."; 2685 } 2686 } 2687 description 2688 "Specifies in which direction to apply the classifier."; 2689 } 2690 typedef negated-flag-type { 2691 type enumeration { 2692 enum False { value 0; 2693 description "false"; } 2694 enum True { value 1; 2695 description "True"; } 2696 } 2697 description 2698 "When set to True, the meaning of the match is 2699 inverted and the classifier will match addresses 2700 other than those specified by the From-Spec or 2701 To-Spec AVP. 2703 Note that the negation does not impact the port 2704 comparisons."; 2705 } 2706 grouping index { 2707 leaf index { 2708 type uint16; 2709 mandatory true; 2710 description "Identifier used for referencing"; 2711 } 2712 description "Index Value"; 2713 } 2714 grouping to-from-spec-value { 2715 leaf-list ip-address { 2716 type inet:ip-address; 2717 description "IP address"; 2718 } 2719 list ip-address-range { 2720 key index; 2721 uses diamclassifier:index; 2722 leaf ip-address-start { 2723 type inet:ip-address; 2724 description "IP Address Start"; 2725 } 2726 leaf ip-address-end { 2727 type inet:ip-address; 2728 description "IP Address End"; 2729 } 2730 description "IP Address Range"; 2731 } 2732 leaf-list ip-address-mask { 2733 type inet:ip-prefix; 2734 description "IP Address Mask"; 2735 } 2736 leaf-list mac-address { 2737 type yang-types:mac-address; 2738 description "MAC address"; 2739 } 2740 list mac-address-mask { 2741 key mac-address; 2742 leaf mac-address { 2743 type yang-types:mac-address; 2744 mandatory true; 2745 description "MAC address"; 2746 } 2747 leaf macaddress-mask-pattern { 2748 type yang-types:mac-address; 2749 mandatory true; 2750 description 2751 "The value specifies the bit positions of a 2752 MAC address that are taken for matching."; 2753 } 2754 description "MAC Address Mask"; 2755 } 2756 leaf-list eui64-address { 2757 type diamclassifier:eui64-address-type; 2758 description "EUI64 Address"; 2759 } 2760 list eui64-address-mask { 2761 key eui64-address; 2762 leaf eui64-address { 2763 type diamclassifier:eui64-address-type; 2764 mandatory true; 2765 description "eui64 address"; 2766 } 2767 leaf eui64-address-mask-pattern { 2768 type diamclassifier:eui64-address-type; 2769 mandatory true; 2770 description 2771 "The value is 8 octets specifying the bit 2772 positions of a EUI64 address that are taken 2773 for matching."; 2774 } 2775 description "EUI64 Address Mask"; 2776 } 2777 leaf-list port { 2778 type inet:port-number; 2779 description "Port Number"; 2780 } 2781 list port-range { 2782 key index; 2783 uses diamclassifier:index; 2784 leaf ip-address-start { 2785 type inet:port-number; 2786 description "Port Start"; 2787 } 2788 leaf ip-address-end { 2789 type inet:port-number; 2790 description "Port End"; 2791 } 2792 description "Port Range"; 2793 } 2794 leaf negated { 2795 type diamclassifier:negated-flag-type; 2796 description "Negated"; 2797 } 2798 leaf use-assigned-address { 2799 type boolean; 2800 description "Use Assigned Address"; 2801 } 2802 description 2803 "Basic traffic description value"; 2804 } 2806 grouping option-type-group { 2807 leaf option-type { 2808 type uint8; 2809 mandatory true; 2810 description "Option Type"; 2811 } 2812 leaf-list ip-option-value { 2813 type string; 2814 description "Option Value"; 2815 } 2816 leaf negated { 2817 type diamclassifier:negated-flag-type; 2818 description "Negated"; 2819 } 2820 description "Common X Option Pattern"; 2821 } 2822 typedef vlan-id { 2823 type uint32 { 2824 range "0..4095"; 2825 } 2826 description "VLAN ID"; 2827 } 2829 grouping classifier { 2830 leaf protocol { 2831 type uint8; 2832 description "Protocol"; 2833 } 2834 leaf direction { 2835 type diamclassifier:direction-type; 2836 description "Direction"; 2837 } 2838 list from-spec { 2839 key index; 2840 uses diamclassifier:index; 2841 uses diamclassifier:to-from-spec-value; 2842 description "from specification"; 2843 } 2844 list to-spec { 2845 key index; 2846 uses diamclassifier:index; 2847 uses diamclassifier:to-from-spec-value; 2848 description "to specification"; 2849 } 2850 leaf-list disffserv-code-point { 2851 type inet:dscp; 2852 description "DSCP"; 2853 } 2854 leaf fragmentation-flag { 2855 type enumeration { 2856 enum DF { 2857 value 0; 2858 description "Don't Fragment"; 2859 } 2860 enum MF { 2861 value 1; 2862 description "More Fragments"; 2863 } 2864 } 2865 description "Fragmenttation Flag"; 2866 } 2867 list ip-option { 2868 key option-type; 2869 uses diamclassifier:option-type-group; 2870 description "IP Option Value"; 2871 } 2872 list tcp-option { 2873 key option-type; 2874 uses diamclassifier:option-type-group; 2875 description "TCP Option Value"; 2876 } 2877 list tcp-flag { 2878 key tcp-flag-type; 2879 leaf tcp-flag-type { 2880 type uint32; 2881 mandatory true; 2882 description "TCP Flag Type"; 2883 } 2884 leaf negated { 2885 type diamclassifier:negated-flag-type; 2886 description "Negated"; 2887 } 2888 description "TCP Flags"; 2889 } 2890 list icmp-option { 2891 key option-type; 2892 uses diamclassifier:option-type-group; 2893 description "ICMP Option Value"; 2894 } 2895 list eth-option { 2896 key index; 2897 uses diamclassifier:index; 2898 container eth-proto-type { 2899 leaf-list eth-ether-type { 2900 type string { 2901 length "2"; 2902 } 2903 description "value of ethertype field"; 2904 } 2905 leaf-list eth-sap { 2906 type string { 2907 length "2"; 2908 } 2909 description "802.2 SAP"; 2910 } 2911 description "Ether Proto Type"; 2912 } 2913 list vlan-id-range { 2914 key index; 2915 uses diamclassifier:index; 2916 leaf-list s-vlan-id-start { 2917 type diamclassifier:vlan-id; 2918 description "S-VID VLAN ID Start"; 2919 } 2920 leaf-list s-vlan-id-end { 2921 type diamclassifier:vlan-id; 2922 description "S-VID VLAN ID End"; 2923 } 2924 leaf-list c-vlan-id-start { 2925 type diamclassifier:vlan-id; 2926 description "C-VID VLAN ID Start"; 2927 } 2928 leaf-list c-vlan-id-end { 2929 type diamclassifier:vlan-id; 2930 description "C-VID VLAN ID End"; 2931 } 2932 description "VLAN ID Range"; 2933 } 2934 list user-priority-range { 2935 key index; 2936 uses diamclassifier:index; 2937 leaf-list low-user-priority { 2938 type uint32 { 2939 range "0..7"; 2941 } 2942 description "Low User Priority"; 2943 } 2944 leaf-list high-user-priority { 2945 type uint32 { 2946 range "0..7"; 2947 } 2948 description "High User Priority"; 2949 } 2950 description "User priority range"; 2951 } 2952 description "Ether Option"; 2953 } 2954 description "RFC 5777 Classifier"; 2955 } 2956 } 2957 2959 4. FPC YANG Tree Structure 2961 This section only shows the structure for FPC YANG model. NOTE, it 2962 does NOT show the settings, Action values or Descriptor Value. 2964 descriptor_value: 2965 +--rw (descriptor-value) 2966 +--:(all-traffic) 2967 | +--rw all-traffic? empty 2968 +--:(no-traffic) 2969 | +--rw no-traffic? empty 2970 +--:(prefix-descriptor) 2971 | +--rw destination-ip? inet:ip-prefix 2972 | +--rw source-ip? inet:ip-prefix 2973 +--:(pmip-selector) 2974 | +--rw ts-format? identityref 2975 | +--rw ipsec-spi-range! 2976 | | +--rw start-spi ipsec-spi 2977 | | +--rw end-spi? ipsec-spi 2978 | +--rw source-port-range! 2979 | | +--rw start-port inet:port-number 2980 | | +--rw end-port? inet:port-number 2981 | +--rw destination-port-range! 2982 | | +--rw start-port inet:port-number 2983 | | +--rw end-port? inet:port-number 2984 | +--rw source-address-range-v4! 2985 | | +--rw start-address inet:ipv4-address 2986 | | +--rw end-address? inet:ipv4-address 2987 | +--rw destination-address-range-v4! 2988 | | +--rw start-address inet:ipv4-address 2989 | | +--rw end-address? inet:ipv4-address 2990 | +--rw ds-range! 2991 | | +--rw start-ds inet:dscp 2992 | | +--rw end-ds? inet:dscp 2993 | +--rw protocol-range! 2994 | | +--rw start-protocol uint8 2995 | | +--rw end-protocol? uint8 2996 | +--rw source-address-range-v6! 2997 | | +--rw start-address inet:ipv6-address 2998 | | +--rw end-address? inet:ipv6-address 2999 | +--rw destination-address-range-v6! 3000 | | +--rw start-address inet:ipv6-address 3001 | | +--rw end-address? inet:ipv6-address 3002 | +--rw flow-label-range! 3003 | | +--rw start-flow-label? inet:ipv6-flow-label 3004 | | +--rw end-flow-label? inet:ipv6-flow-label 3005 | +--rw traffic-class-range! 3006 | | +--rw start-traffic-class? inet:dscp 3007 | | +--rw end-traffic-class? inet:dscp 3008 | +--rw next-header-range! 3009 | +--rw start-next-header? uint8 3010 | +--rw end-next-header? uint8 3011 +--:(rfc5777-classifier-template) 3012 | +--rw rfc5777-classifier-template 3013 | +--rw protocol? uint8 3014 | +--rw direction? diamclassifier:direction-type 3015 | +--rw from-spec* [index] 3016 | | +--rw index uint16 3017 | | +--rw ip-address* inet:ip-address 3018 | | +--rw ip-address-range* [index] 3019 | | | +--rw index uint16 3020 | | | +--rw ip-address-start? inet:ip-address 3021 | | | +--rw ip-address-end? inet:ip-address 3022 | | +--rw ip-address-mask* inet:ip-prefix 3023 | | +--rw mac-address* yang-types:mac-address 3024 | | +--rw mac-address-mask* [mac-address] 3025 | | | +--rw mac-address yang-types:mac-address 3026 | | | +--rw macaddress-mask-pattern yang-types:mac-address 3027 | | +--rw eui64-address* 3028 diamclassifier:eui64-address-type 3029 | | +--rw eui64-address-mask* [eui64-address] 3030 | | | +--rw eui64-address 3031 diamclassifier:eui64-address-type 3032 | | | +--rw eui64-address-mask-pattern 3033 diamclassifier:eui64-address-type 3034 | | +--rw port* inet:port-number 3035 | | +--rw port-range* [index] 3036 | | | +--rw index uint16 3037 | | | +--rw ip-address-start? inet:port-number 3038 | | | +--rw ip-address-end? inet:port-number 3039 | | +--rw negated? 3040 diamclassifier:negated-flag-type 3041 | | +--rw use-assigned-address? boolean 3042 | +--rw to-spec* [index] 3043 | | +--rw index uint16 3044 | | +--rw ip-address* inet:ip-address 3045 | | +--rw ip-address-range* [index] 3046 | | | +--rw index uint16 3047 | | | +--rw ip-address-start? inet:ip-address 3048 | | | +--rw ip-address-end? inet:ip-address 3049 | | +--rw ip-address-mask* inet:ip-prefix 3050 | | +--rw mac-address* yang-types:mac-address 3051 | | +--rw mac-address-mask* [mac-address] 3052 | | | +--rw mac-address yang-types:mac-address 3053 | | | +--rw macaddress-mask-pattern yang-types:mac-address 3054 | | +--rw eui64-address* 3055 diamclassifier:eui64-address-type 3056 | | +--rw eui64-address-mask* [eui64-address] 3057 | | | +--rw eui64-address 3058 diamclassifier:eui64-address-type 3059 | | | +--rw eui64-address-mask-pattern 3060 diamclassifier:eui64-address-type 3061 | | +--rw port* inet:port-number 3062 | | +--rw port-range* [index] 3063 | | | +--rw index uint16 3064 | | | +--rw ip-address-start? inet:port-number 3065 | | | +--rw ip-address-end? inet:port-number 3066 | | +--rw negated? 3067 diamclassifier:negated-flag-type 3068 | | +--rw use-assigned-address? boolean 3069 | +--rw disffserv-code-point* inet:dscp 3070 | +--rw fragmentation-flag? enumeration 3071 | +--rw ip-option* [option-type] 3072 | | +--rw option-type uint8 3073 | | +--rw ip-option-value* string 3074 | | +--rw negated? diamclassifier:negated-flag-type 3075 | +--rw tcp-option* [option-type] 3076 | | +--rw option-type uint8 3077 | | +--rw ip-option-value* string 3078 | | +--rw negated? diamclassifier:negated-flag-type 3079 | +--rw tcp-flag* [tcp-flag-type] 3080 | | +--rw tcp-flag-type uint32 3081 | | +--rw negated? diamclassifier:negated-flag-type 3082 | +--rw icmp-option* [option-type] 3083 | | +--rw option-type uint8 3084 | | +--rw ip-option-value* string 3085 | | +--rw negated? diamclassifier:negated-flag-type 3086 | +--rw eth-option* [index] 3087 | +--rw index uint16 3088 | +--rw eth-proto-type 3089 | | +--rw eth-ether-type* string 3090 | | +--rw eth-sap* string 3091 | +--rw vlan-id-range* [index] 3092 | | +--rw index uint16 3093 | | +--rw s-vlan-id-start* diamclassifier:vlan-id 3094 | | +--rw s-vlan-id-end* diamclassifier:vlan-id 3095 | | +--rw c-vlan-id-start* diamclassifier:vlan-id 3096 | | +--rw c-vlan-id-end* diamclassifier:vlan-id 3097 | +--rw user-priority-range* [index] 3098 | +--rw index uint16 3099 | +--rw low-user-priority* uint32 3100 | +--rw high-user-priority* uint32 3101 +--:(packet-filter) 3102 | +--rw packet-filter 3103 | +--rw direction? fpcbase:packet-filter-direction 3104 | +--rw identifier? uint8 3105 | +--rw evaluation-precedence? uint8 3106 | +--rw contents* [component-type-identifier] 3107 | +--rw component-type-identifier fpcbase:component-type-id 3108 | +--rw (value)? 3109 | +--:(ipv4-local) 3110 | | +--rw ipv4-local? inet:ipv4-address 3111 | +--:(ipv6-prefix-local) 3112 | | +--rw ipv6-prefix-local? inet:ipv6-prefix 3113 | +--:(ipv4-ipv6-remote) 3114 | | +--rw ipv4-ipv6-remote? inet:ip-address 3115 | +--:(ipv6-prefix-remote) 3116 | | +--rw ipv6-prefix-remote? inet:ipv6-prefix 3117 | +--:(next-header) 3118 | | +--rw next-header? uint8 3119 | +--:(local-port) 3120 | | +--rw local-port? inet:port-number 3121 | +--:(local-port-range) 3122 | | +--rw local-port-lo? inet:port-number 3123 | | +--rw local-port-hi? inet:port-number 3124 | +--:(remote-port) 3125 | | +--rw remote-port? inet:port-number 3126 | +--:(remote-port-range) 3127 | | +--rw remote-port-lo? inet:port-number 3128 | | +--rw remote-port-hi? inet:port-number 3129 | +--:(ipsec-index) 3130 | | +--rw ipsec-index? traffic-selectors:ipsec-spi 3131 | +--:(traffic-class) 3132 | | +--rw traffic-class? inet:dscp 3133 | +--:(traffic-class-range) 3134 | | +--rw traffic-class-lo? inet:dscp 3135 | | +--rw traffic-class-hi? inet:dscp 3136 | +--:(flow-label) 3137 | +--rw flow-label* inet:ipv6-flow-label 3138 +--:(tunnel-info) 3139 +--rw tunnel-info 3140 +--rw tunnel-local-address? inet:ip-address 3141 +--rw tunnel-remote-address? inet:ip-address 3142 +--rw mtu-size? uint32 3143 +--rw tunnel? identityref 3144 +--rw payload-type? enumeration 3145 +--rw gre-key? uint32 3146 +--rw gtp-tunnel-info 3147 | +--rw local-tunnel-identifier? uint32 3148 | +--rw remote-tunnel-identifier? uint32 3149 | +--rw sequence-numbers-enabled? boolean 3150 +--rw ebi? fpcbase:ebi-type 3151 +--rw lbi? fpcbase:ebi-type 3153 action_value: 3154 +--:(action-value) 3155 | +--rw (action-value) 3156 | +--:(drop) 3157 | | +--rw drop? empty 3158 | +--:(rewrite) 3159 | | +--rw rewrite 3160 | | +--rw (rewrite-value)? 3161 | | +--:(prefix-descriptor) 3162 | | | +--rw destination-ip? inet:ip-prefix 3163 | | | +--rw source-ip? inet:ip-prefix 3164 | | +--:(pmip-selector) 3165 | | | +--rw ts-format? identityref 3166 | | | +--rw ipsec-spi-range! 3167 | | | | +--rw start-spi ipsec-spi 3168 | | | | +--rw end-spi? ipsec-spi 3169 | | | +--rw source-port-range! 3170 | | | | +--rw start-port inet:port-number 3171 | | | | +--rw end-port? inet:port-number 3172 | | | +--rw destination-port-range! 3173 | | | | +--rw start-port inet:port-number 3174 | | | | +--rw end-port? inet:port-number 3175 | | | +--rw source-address-range-v4! 3176 | | | | +--rw start-address inet:ipv4-address 3177 | | | | +--rw end-address? inet:ipv4-address 3178 | | | +--rw destination-address-range-v4! 3179 | | | | +--rw start-address inet:ipv4-address 3180 | | | | +--rw end-address? inet:ipv4-address 3181 | | | +--rw ds-range! 3182 | | | | +--rw start-ds inet:dscp 3183 | | | | +--rw end-ds? inet:dscp 3184 | | | +--rw protocol-range! 3185 | | | | +--rw start-protocol uint8 3186 | | | | +--rw end-protocol? uint8 3187 | | | +--rw source-address-range-v6! 3188 | | | | +--rw start-address inet:ipv6-address 3189 | | | | +--rw end-address? inet:ipv6-address 3190 | | | +--rw destination-address-range-v6! 3191 | | | | +--rw start-address inet:ipv6-address 3192 | | | | +--rw end-address? inet:ipv6-address 3193 | | | +--rw flow-label-range! 3194 | | | | +--rw start-flow-label? inet:ipv6-flow-label 3195 | | | | +--rw end-flow-label? inet:ipv6-flow-label 3196 | | | +--rw traffic-class-range! 3197 | | | | +--rw start-traffic-class? inet:dscp 3198 | | | | +--rw end-traffic-class? inet:dscp 3199 | | | +--rw next-header-range! 3200 | | | +--rw start-next-header? uint8 3201 | | | +--rw end-next-header? uint8 3202 | | +--:(rfc5777-classifier-template) 3203 | | +--rw rfc5777-classifier-template 3204 | | +--rw protocol? uint8 3205 | | +--rw direction? 3206 diamclassifier:direction-type 3207 | | +--rw from-spec* [index] 3208 | | | +--rw index uint16 3209 | | | +--rw ip-address* inet:ip-address 3210 | | | +--rw ip-address-range* [index] 3211 | | | | +--rw index uint16 3212 | | | | +--rw ip-address-start? inet:ip-address 3213 | | | | +--rw ip-address-end? inet:ip-address 3214 | | | +--rw ip-address-mask* inet:ip-prefix 3215 | | | +--rw mac-address* yang-types:mac-address 3216 | | | +--rw mac-address-mask* [mac-address] 3217 | | | | +--rw mac-address 3218 yang-types:mac-address 3219 | | | | +--rw macaddress-mask-pattern 3220 yang-types:mac-address 3221 | | | +--rw eui64-address* 3222 diamclassifier:eui64-address-type 3223 | | | +--rw eui64-address-mask* [eui64-address] 3224 | | | | +--rw eui64-address 3225 diamclassifier:eui64-address-type 3226 | | | | +--rw eui64-address-mask-pattern 3227 diamclassifier:eui64-address-type 3228 | | | +--rw port* inet:port-number 3229 | | | +--rw port-range* [index] 3230 | | | | +--rw index uint16 3231 | | | | +--rw ip-address-start? inet:port-number 3232 | | | | +--rw ip-address-end? inet:port-number 3233 | | | +--rw negated? 3234 diamclassifier:negated-flag-type 3235 | | | +--rw use-assigned-address? boolean 3236 | | +--rw to-spec* [index] 3237 | | | +--rw index uint16 3238 | | | +--rw ip-address* inet:ip-address 3239 | | | +--rw ip-address-range* [index] 3240 | | | | +--rw index uint16 3241 | | | | +--rw ip-address-start? inet:ip-address 3242 | | | | +--rw ip-address-end? inet:ip-address 3243 | | | +--rw ip-address-mask* inet:ip-prefix 3244 | | | +--rw mac-address* 3245 yang-types:mac-address 3246 | | | +--rw mac-address-mask* [mac-address] 3247 | | | | +--rw mac-address 3248 yang-types:mac-address 3249 | | | | +--rw macaddress-mask-pattern 3250 yang-types:mac-address 3251 | | | +--rw eui64-address* 3252 diamclassifier:eui64-address-type 3253 | | | +--rw eui64-address-mask* [eui64-address] 3254 | | | | +--rw eui64-address 3255 diamclassifier:eui64-address-type 3256 | | | | +--rw eui64-address-mask-pattern 3257 diamclassifier:eui64-address-type 3258 | | | +--rw port* inet:port-number 3259 | | | +--rw port-range* [index] 3260 | | | | +--rw index uint16 3261 | | | | +--rw ip-address-start? inet:port-number 3262 | | | | +--rw ip-address-end? inet:port-number 3263 | | | +--rw negated? 3264 diamclassifier:negated-flag-type 3265 | | | +--rw use-assigned-address? boolean 3266 | | +--rw disffserv-code-point* inet:dscp 3267 | | +--rw fragmentation-flag? enumeration 3268 | | +--rw ip-option* [option-type] 3269 | | | +--rw option-type uint8 3270 | | | +--rw ip-option-value* string 3271 | | | +--rw negated? 3272 diamclassifier:negated-flag-type 3273 | | +--rw tcp-option* [option-type] 3274 | | | +--rw option-type uint8 3275 | | | +--rw ip-option-value* string 3276 | | | +--rw negated? 3277 diamclassifier:negated-flag-type 3278 | | +--rw tcp-flag* [tcp-flag-type] 3279 | | | +--rw tcp-flag-type uint32 3280 | | | +--rw negated? 3281 diamclassifier:negated-flag-type 3282 | | +--rw icmp-option* [option-type] 3283 | | | +--rw option-type uint8 3284 | | | +--rw ip-option-value* string 3285 | | | +--rw negated? 3286 diamclassifier:negated-flag-type 3287 | | +--rw eth-option* [index] 3288 | | +--rw index uint16 3289 | | +--rw eth-proto-type 3290 | | | +--rw eth-ether-type* string 3291 | | | +--rw eth-sap* string 3292 | | +--rw vlan-id-range* [index] 3293 | | | +--rw index uint16 3294 | | | +--rw s-vlan-id-start* 3295 diamclassifier:vlan-id 3296 | | | +--rw s-vlan-id-end* 3297 diamclassifier:vlan-id 3298 | | | +--rw c-vlan-id-start* 3299 diamclassifier:vlan-id 3300 | | | +--rw c-vlan-id-end* 3301 diamclassifier:vlan-id 3302 | | +--rw user-priority-range* [index] 3303 | | +--rw index uint16 3304 | | +--rw low-user-priority* uint32 3305 | | +--rw high-user-priority* uint32 3306 | +--:(copy-forward-nexthop) 3307 | | +--rw copy-forward-nexthop 3308 | | +--rw (next-hop-value)? 3309 | | +--:(ip-address) 3310 | | | +--rw ip-address? inet:ip-address 3311 | | +--:(mac-address) 3312 | | | +--rw mac-address? ytypes:mac-address 3313 | | +--:(service-path) 3314 | | | +--rw service-path? fpcbase:fpc-service-path-id 3315 | | +--:(mpls-path) 3316 | | | +--rw mpls-path? fpcbase:fpc-mpls-label 3317 | | +--:(nsh) 3318 | | | +--rw nsh? string 3319 | | +--:(interface) 3320 | | | +--rw interface? uint16 3321 | | +--:(segment-identifier) 3322 | | | +--rw segment-identifier? fpcbase:segment-id 3323 | | +--:(mpls-label-stack) 3324 | | | +--rw mpls-label-stack* fpcbase:fpc-mpls-label 3325 | | +--:(mpls-sr-stack) 3326 | | | +--rw mpls-sr-stack* fpcbase:fpc-mpls-label 3327 | | +--:(srv6-stack) 3328 | | | +--rw srv6-stack* fpcbase:segment-id 3329 | | +--:(tunnel-info) 3330 | | +--rw tunnel-info 3331 | | +--rw tunnel-local-address? inet:ip-address 3332 | | +--rw tunnel-remote-address? inet:ip-address 3333 | | +--rw mtu-size? uint32 3334 | | +--rw tunnel? identityref 3335 | | +--rw payload-type? enumeration 3336 | | +--rw gre-key? uint32 3337 | | +--rw gtp-tunnel-info 3338 | | | +--rw local-tunnel-identifier? uint32 3339 | | | +--rw remote-tunnel-identifier? uint32 3340 | | | +--rw sequence-numbers-enabled? boolean 3341 | | +--rw ebi? fpcbase:ebi-type 3342 | | +--rw lbi? fpcbase:ebi-type 3343 | +--:(nexthop) 3344 | | +--rw nexthop 3345 | | +--rw (next-hop-value)? 3346 | | +--:(ip-address) 3347 | | | +--rw ip-address? inet:ip-address 3348 | | +--:(mac-address) 3349 | | | +--rw mac-address? ytypes:mac-address 3350 | | +--:(service-path) 3351 | | | +--rw service-path? fpcbase:fpc-service-path-id 3352 | | +--:(mpls-path) 3353 | | | +--rw mpls-path? fpcbase:fpc-mpls-label 3354 | | +--:(nsh) 3355 | | | +--rw nsh? string 3356 | | +--:(interface) 3357 | | | +--rw interface? uint16 3358 | | +--:(segment-identifier) 3359 | | | +--rw segment-identifier? fpcbase:segment-id 3360 | | +--:(mpls-label-stack) 3361 | | | +--rw mpls-label-stack* fpcbase:fpc-mpls-label 3362 | | +--:(mpls-sr-stack) 3363 | | | +--rw mpls-sr-stack* fpcbase:fpc-mpls-label 3364 | | +--:(srv6-stack) 3365 | | | +--rw srv6-stack* fpcbase:segment-id 3366 | | +--:(tunnel-info) 3367 | | +--rw tunnel-info 3368 | | +--rw tunnel-local-address? inet:ip-address 3369 | | +--rw tunnel-remote-address? inet:ip-address 3370 | | +--rw mtu-size? uint32 3371 | | +--rw tunnel? identityref 3372 | | +--rw payload-type? enumeration 3373 | | +--rw gre-key? uint32 3374 | | +--rw gtp-tunnel-info 3375 | | | +--rw local-tunnel-identifier? uint32 3376 | | | +--rw remote-tunnel-identifier? uint32 3377 | | | +--rw sequence-numbers-enabled? boolean 3378 | | +--rw ebi? fpcbase:ebi-type 3379 | | +--rw lbi? fpcbase:ebi-type 3380 | +--:(qos) 3381 | +--rw trafficclass? inet:dscp 3382 | +--rw per-mn-agg-max-dl? 3383 qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 3384 | +--rw per-mn-agg-max-ul? 3385 qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 3386 | +--rw per-session-agg-max-dl 3387 | | +--rw max-rate uint32 3388 | | +--rw service-flag boolean 3389 | | +--rw exclude-flag boolean 3390 | +--rw per-session-agg-max-ul 3391 | | +--rw max-rate uint32 3392 | | +--rw service-flag boolean 3393 | | +--rw exclude-flag boolean 3394 | +--rw priority-level uint8 3395 | +--rw preemption-capability enumeration 3396 | +--rw preemption-vulnerability enumeration 3397 | +--rw agg-max-dl? 3398 qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 3399 | +--rw agg-max-ul? 3400 qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 3401 | +--rw gbr-dl? 3402 qos-pmip:Guaranteed-DL-Bit-Rate-Value 3403 | +--rw gbr-ul? 3404 qos-pmip:Guaranteed-UL-Bit-Rate-Value 3405 | +--rw qci? 3406 fpcbase:fpc-qos-class-identifier 3407 | +--rw ue-agg-max-bitrate? uint32 3408 | +--rw apn-ambr? uint32 3410 policy-configuration-value: 3411 | | | +--rw (policy-configuration-value)? 3412 | | | +--:(descriptor-value) 3413 | | | | ... 3414 | | | +--:(action-value) 3415 | | | | ... 3416 | | | +--:(setting-value) 3417 | | | +--rw setting? 3419 policy-configuration: 3420 | | | +--rw policy-configuration* [index] 3421 | | | +--rw index uint16 3422 | | | +--rw extensible? boolean 3423 | | | +--rw static-attributes* string 3424 | | | +--rw mandatory-attributes* string 3425 | | | +--rw entity-state? enumeration 3426 | | | +--rw version? uint32 3427 | | | +--rw (policy-configuration-value)? 3428 | | | ... 3430 module: ietf-dmm-fpc 3431 +--rw tenant* [tenant-key] 3432 +--rw tenant-key fpc:fpc-identity 3433 +--rw topology-information-model 3434 | +--rw service-group* [service-group-key role-key] 3435 | | +--rw service-group-key fpc:fpc-identity 3436 | | +--rw service-group-name? string 3437 | | +--rw role-key identityref 3438 | | +--rw role-name? string 3439 | | +--rw protocol* identityref 3440 | | +--rw feature* identityref 3441 | | +--rw service-group-configuration* [index] 3442 | | | +--rw index uint16 3443 | | | +--rw (policy-configuration-value)? 3444 | | | | ... 3445 | | +--rw dpn* [dpn-key] 3446 | | +--rw dpn-key fpc:fpc-identity 3447 | | +--rw referenced-interface* [interface-key] 3448 | | +--rw interface-key fpc:fpc-identity 3449 | | +--rw peer-service-group-key* fpc:fpc-identity 3450 | +--rw dpn* [dpn-key] 3451 | | +--rw dpn-key fpc:fpc-identity 3452 | | +--rw dpn-name? string 3453 | | +--rw dpn-resource-mapping-reference? string 3454 | | +--rw domain-key fpc:fpc-identity 3455 | | +--rw service-group-key* fpc:fpc-identity 3456 | | +--rw interface* [interface-key] 3457 | | | +--rw interface-key fpc:fpc-identity 3458 | | | +--rw interface-name? string 3459 | | | +--rw role? identityref 3460 | | | +--rw protocol* identityref 3461 | | | +--rw interface-configuration* [index] 3462 | | | +--rw (policy-configuration-value)? 3463 | | | | ... 3464 | | +--rw dpn-policy-configuration* [policy-template-key] 3465 | | +--rw policy-template-key fpc:fpc-identity 3466 | | +--rw policy-configuration* [index] 3467 | | +--rw index uint16 3468 | | +--rw (policy-configuration-value)? 3469 | | | ... 3470 | +--rw domain* [domain-key] 3471 | | +--rw domain-key fpc:fpc-identity 3472 | | +--rw domain-name? string 3473 | | +--rw domain-policy-configuration* [policy-template-key] 3474 | | +--rw policy-template-key fpc:fpc-identity 3475 | | +--rw policy-configuration* [index] 3476 | | | ... 3477 | +--rw dpn-checkpoint 3478 | | +--rw basename? fpc:fpc-identity 3479 | | +--rw base-checkpoint? string 3480 | +--rw service-group-checkpoint 3481 | | +--rw basename? fpc:fpc-identity 3482 | | +--rw base-checkpoint? string 3483 | +--rw dpn-checkpoint 3484 | | +--rw basename? fpc:fpc-identity 3485 | | +--rw base-checkpoint? string 3486 +--rw policy-information-model 3487 | +--rw action-template* [action-template-key] 3488 | | +--rw action-template-key fpc:fpc-identity 3489 | | +--rw (action-value) 3490 | | | ... 3491 | | +--rw extensible? boolean 3492 | | +--rw static-attributes* string 3493 | | +--rw mandatory-attributes* string 3494 | | +--rw entity-state? enumeration 3495 | | +--rw version? uint32 3496 | +--rw descriptor-template* [descriptor-template-key] 3497 | | +--rw descriptor-template-key fpc:fpc-identity 3498 | | +--rw (descriptor-value) 3499 | | | ... 3500 | | +--rw extensible? boolean 3501 | | +--rw static-attributes* string 3502 | | +--rw mandatory-attributes* string 3503 | | +--rw entity-state? enumeration 3504 | | +--rw version? uint32 3505 | +--rw rule-template* [rule-template-key] 3506 | | +--rw rule-template-key fpc:fpc-identity 3507 | | +--rw descriptor-match-type enumeration 3508 | | +--rw descriptor-configuration* [descriptor-template-key] 3509 | | | +--rw descriptor-template-key fpc:fpc-identity 3510 | | | +--rw direction? rfc5777:direction-type 3511 | | | +--rw setting? 3512 | | | +--rw attribute-expression* [index] 3513 | | | +--rw index uint16 3514 | | | +--rw (descriptor-value) 3515 | | | | ... 3516 | | +--rw action-configuration* [action-order] 3517 | | | +--rw action-order uint32 3518 | | | +--rw action-template-key fpc:fpc-identity 3519 | | | +--rw setting? 3520 | | | +--rw attribute-expression* [index] 3521 | | | +--rw index uint16 3522 | | | +--rw (action-value) 3523 | | | | ... 3524 | | +--rw extensible? boolean 3525 | | +--rw static-attributes* string 3526 | | +--rw mandatory-attributes* string 3527 | | +--rw entity-state? enumeration 3528 | | +--rw version? uint32 3529 | | +--rw rule-configuration* [index] 3530 | | +--rw index uint16 3531 | | +--rw (policy-configuration-value)? 3532 | | | ... 3533 | +--rw policy-template* [policy-template-key] 3534 | | +--rw policy-template-key fpc:fpc-identity 3535 | | +--rw rule-template* [precedence] 3536 | | | +--rw precedence uint32 3537 | | | +--rw rule-template-key fpc:fpc-identity 3538 | | +--rw extensible? boolean 3539 | | +--rw static-attributes* string 3540 | | +--rw mandatory-attributes* string 3541 | | +--rw entity-state? enumeration 3542 | | +--rw version? uint32 3543 | | +--rw policy-configuration* [index] 3544 | | ... 3545 | +--rw basename? fpc:fpc-identity 3546 | +--rw base-checkpoint? string 3547 +--rw mobility-context* [mobility-context-key] 3548 | +--rw mobility-context-key fpc:fpc-identity 3549 | +--rw delegating-ip-prefix* inet:ip-prefix 3550 | +--rw parent-context? fpc:fpc-identity 3551 | +--rw child-context* fpc:fpc-identity 3552 | +--rw mobile-node 3553 | | +--rw ip-address* inet:ip-address 3554 | | +--rw imsi? fpcbase:imsi-type 3555 | | +--rw mn-policy-configuration* [policy-template-key] 3556 | | +--rw policy-template-key fpc:fpc-identity 3557 | | +--rw policy-configuration* [index] 3558 | | ... 3559 | +--rw domain 3560 | | +--rw domain-key? fpc:fpc-identity 3561 | | +--rw domain-policy-configuration* [policy-template-key] 3562 | | +--rw policy-template-key fpc:fpc-identity 3563 | | +--rw policy-configuration* [index] 3564 | | ... 3566 | +--rw dpn* [dpn-key] 3567 | +--rw dpn-key fpc:fpc-identity 3568 | +--rw dpn-policy-configuration* [policy-template-key] 3569 | | +--rw policy-template-key fpc:fpc-identity 3570 | | +--rw policy-configuration* [index] 3571 | | ... 3572 | +--rw role? identityref 3573 | +--rw service-data-flow* [identifier] 3574 | +--rw identifier uint32 3575 | +--rw service-group-key? fpc:fpc-identity 3576 | +--rw interface* [interface-key] 3577 | | +--rw interface-key fpc:fpc-identity 3578 | +--rw service-data-flow-policy- 3579 configuration* [policy-template-key] 3580 | +--rw policy-template-key fpc:fpc-identity 3581 | +--rw policy-configuration* [index] 3582 | ... 3583 +--rw monitor* [monitor-key] 3584 +--rw extensible? boolean 3585 +--rw static-attributes* string 3586 +--rw mandatory-attributes* string 3587 +--rw entity-state? enumeration 3588 +--rw version? uint32 3589 +--rw monitor-key fpc:fpc-identity 3590 +--rw target? string 3591 +--rw deferrable? boolean 3592 +--rw (configuration) 3593 +--:(period) 3594 | +--rw period? uint32 3595 +--:(threshold-config) 3596 | +--rw low? uint32 3597 | +--rw hi? uint32 3598 +--:(schedule) 3599 | +--rw schedule? uint32 3600 +--:(event-identities) 3601 | +--rw event-identities* identityref 3602 +--:(event-ids) 3603 +--rw event-ids* uint32 3605 rpcs: 3606 +---x configure 3607 | +---w input 3608 | | +---w client-id fpc:client-identifier 3609 | | +---w execution-delay? uint32 3610 | | +---w yang-patch 3611 | | +---w patch-id string 3612 | | +---w comment? string 3613 | | +---w edit* [edit-id] 3614 | | +---w edit-id string 3615 | | +---w operation enumeration 3616 | | +---w target target-resource-offset 3617 | | +---w point? target-resource-offset 3618 | | +---w where? enumeration 3619 | | +---w value? 3620 | | +---w reference-scope? fpc:ref-scope 3621 | | +---w command-set 3622 | | +---w (instr-type)? 3623 | | +--:(instr-3gpp-mob) 3624 | | | +---w instr-3gpp-mob? fpcbase:threegpp-instr 3625 | | +--:(instr-pmip) 3626 | | +---w instr-pmip? pmip-commandset 3627 | +--ro output 3628 | +--ro yang-patch-status 3629 | +--ro patch-id string 3630 | +--ro (global-status)? 3631 | | +--:(global-errors) 3632 | | | +--ro errors 3633 | | | +--ro error* 3634 | | | +--ro error-type enumeration 3635 | | | +--ro error-tag string 3636 | | | +--ro error-app-tag? string 3637 | | | +--ro error-path? instance-identifier 3638 | | | +--ro error-message? string 3639 | | | +--ro error-info? 3640 | | +--:(ok) 3641 | | +--ro ok? empty 3642 | +--ro edit-status 3643 | +--ro edit* [edit-id] 3644 | +--ro edit-id string 3645 | +--ro (edit-status-choice)? 3646 | +--:(ok) 3647 | | +--ro ok? empty 3648 | | +--ro notify-follows? boolean 3649 | | +--ro subsequent-edit* [edit-id] 3650 | | +--ro edit-id string 3651 | | +--ro operation enumeration 3652 | | +--ro target 3653 ypatch:target-resource-offset 3654 | | +--ro point? 3655 ypatch:target-resource-offset 3656 | | +--ro where? enumeration 3657 | | +--ro value? 3658 | +--:(errors) 3659 | +--ro errors 3660 | +--ro error* 3661 | +--ro error-type enumeration 3662 | +--ro error-tag string 3663 | +--ro error-app-tag? string 3664 | +--ro error-path? 3665 instance-identifier 3666 | +--ro error-message? string 3667 | +--ro error-info? 3668 +---x register_monitor 3669 | +---w input 3670 | | +---w client-id fpc:client-identifier 3671 | | +---w execution-delay? uint32 3672 | | +---w operation-id uint64 3673 | | +---w monitor* [monitor-key] 3674 | | +---w extensible? boolean 3675 | | +---w static-attributes* string 3676 | | +---w mandatory-attributes* string 3677 | | +---w entity-state? enumeration 3678 | | +---w version? uint32 3679 | | +---w monitor-key fpc:fpc-identity 3680 | | +---w target? string 3681 | | +---w deferrable? boolean 3682 | | +---w (configuration) 3683 | | +--:(period) 3684 | | | +---w period? uint32 3685 | | +--:(threshold-config) 3686 | | | +---w low? uint32 3687 | | | +---w hi? uint32 3688 | | +--:(schedule) 3689 | | | +---w schedule? uint32 3690 | | +--:(event-identities) 3691 | | | +---w event-identities* identityref 3692 | | +--:(event-ids) 3693 | | +---w event-ids* uint32 3694 | +--ro output 3695 | +--ro operation-id uint64 3696 | +--ro (edit-status-choice)? 3697 | +--:(ok) 3698 | | +--ro ok? empty 3699 | +--:(errors) 3700 | +--ro errors 3701 | +--ro error* 3702 | +--ro error-type enumeration 3703 | +--ro error-tag string 3704 | +--ro error-app-tag? string 3705 | +--ro error-path? instance-identifier 3706 | +--ro error-message? string 3707 | +--ro error-info? 3708 +---x deregister_monitor 3709 | +---w input 3710 | | +---w client-id fpc:client-identifier 3711 | | +---w execution-delay? uint32 3712 | | +---w operation-id uint64 3713 | | +---w monitor* [monitor-key] 3714 | | +---w monitor-key fpc:fpc-identity 3715 | | +---w send_data? boolean 3716 | +--ro output 3717 | +--ro operation-id uint64 3718 | +--ro (edit-status-choice)? 3719 | +--:(ok) 3720 | | +--ro ok? empty 3721 | +--:(errors) 3722 | +--ro errors 3723 | +--ro error* 3724 | +--ro error-type enumeration 3725 | +--ro error-tag string 3726 | +--ro error-app-tag? string 3727 | +--ro error-path? instance-identifier 3728 | +--ro error-message? string 3729 | +--ro error-info? 3730 +---x probe 3731 +---w input 3732 | +---w client-id fpc:client-identifier 3733 | +---w execution-delay? uint32 3734 | +---w operation-id uint64 3735 | +---w monitor* [monitor-key] 3736 | +---w monitor-key fpc:fpc-identity 3737 +--ro output 3738 +--ro operation-id uint64 3739 +--ro (edit-status-choice)? 3740 +--:(ok) 3741 | +--ro ok? empty 3742 +--:(errors) 3743 +--ro errors 3744 +--ro error* 3745 +--ro error-type enumeration 3746 +--ro error-tag string 3747 +--ro error-app-tag? string 3748 +--ro error-path? instance-identifier 3749 +--ro error-message? string 3750 +--ro error-info? 3752 notifications: 3753 +---n config-result-notification 3754 | +--ro yang-patch-status 3755 | | +--ro patch-id string 3756 | | +--ro (global-status)? 3757 | | | +--:(global-errors) 3758 | | | | +--ro errors 3759 | | | | +--ro error* 3760 | | | | +--ro error-type enumeration 3761 | | | | +--ro error-tag string 3762 | | | | +--ro error-app-tag? string 3763 | | | | +--ro error-path? instance-identifier 3764 | | | | +--ro error-message? string 3765 | | | | +--ro error-info? 3766 | | | +--:(ok) 3767 | | | +--ro ok? empty 3768 | | +--ro edit-status 3769 | | +--ro edit* [edit-id] 3770 | | +--ro edit-id string 3771 | | +--ro (edit-status-choice)? 3772 | | +--:(ok) 3773 | | | +--ro ok? empty 3774 | | +--:(errors) 3775 | | +--ro errors 3776 | | +--ro error* 3777 | | +--ro error-type enumeration 3778 | | +--ro error-tag string 3779 | | +--ro error-app-tag? string 3780 | | +--ro error-path? 3781 instance-identifier 3782 | | +--ro error-message? string 3783 | | +--ro error-info? 3784 | +--ro subsequent-edit* [edit-id] 3785 | +--ro edit-id string 3786 | +--ro operation enumeration 3787 | +--ro target ypatch:target-resource-offset 3788 | +--ro point? ypatch:target-resource-offset 3789 | +--ro where? enumeration 3790 | +--ro value? 3791 +---n notify 3792 +--ro notification-id? uint32 3793 +--ro timestamp? uint32 3794 +--ro report* [monitor-key] 3795 +--ro monitor-key fpc:fpc-identity 3796 +--ro trigger? identityref 3797 +--ro (value)? 3798 +--:(dpn-candidate-available) 3799 | +--ro node-id? inet:uri 3800 | +--ro supported-interface-list* [role-key] 3801 | +--ro role-key identityref 3802 +--:(dpn-unavailable) 3803 | +--ro dpn-id? fpc:fpc-identity 3804 +--:(report-value) 3805 +--ro report-value? 3806 Figure 1: YANG FPC Agent Tree 3808 5. Work Team Participants 3810 Participants in the FPSM work team discussion include Satoru 3811 Matsushima, Danny Moses, Sri Gundavelli, Marco Liebsch, Pierrick 3812 Seite, Alper Yegin, Carlos Bernardos, Charles Perkins and Fred 3813 Templin. 3815 6. References 3817 6.1. Normative References 3819 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3820 Requirement Levels", BCP 14, RFC 2119, 3821 DOI 10.17487/RFC2119, March 1997, 3822 . 3824 [RFC5777] Korhonen, J., Tschofenig, H., Arumaithurai, M., Jones, M., 3825 Ed., and A. Lior, "Traffic Classification and Quality of 3826 Service (QoS) Attributes for Diameter", RFC 5777, 3827 DOI 10.17487/RFC5777, February 2010, 3828 . 3830 [RFC6088] Tsirtsis, G., Giarreta, G., Soliman, H., and N. Montavont, 3831 "Traffic Selectors for Flow Bindings", RFC 6088, 3832 DOI 10.17487/RFC6088, January 2011, 3833 . 3835 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 3836 RFC 6991, DOI 10.17487/RFC6991, July 2013, 3837 . 3839 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 3840 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 3841 . 3843 [RFC8072] Bierman, A., Bjorklund, M., and K. Watsen, "YANG Patch 3844 Media Type", RFC 8072, DOI 10.17487/RFC8072, February 3845 2017, . 3847 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 3848 and R. Wilton, "Network Management Datastore Architecture 3849 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 3850 . 3852 6.2. Informative References 3854 [I-D.ietf-dmm-fpc-cpdp] 3855 Matsushima, S., Bertz, L., Liebsch, M., Gundavelli, S., 3856 Moses, D., and C. Perkins, "Protocol for Forwarding Policy 3857 Configuration (FPC) in DMM", draft-ietf-dmm-fpc-cpdp-12 3858 (work in progress), June 2018. 3860 [RFC3958] Daigle, L. and A. Newton, "Domain-Based Application 3861 Service Location Using SRV RRs and the Dynamic Delegation 3862 Discovery Service (DDDS)", RFC 3958, DOI 10.17487/RFC3958, 3863 January 2005, . 3865 [RFC7222] Liebsch, M., Seite, P., Yokota, H., Korhonen, J., and S. 3866 Gundavelli, "Quality-of-Service Option for Proxy Mobile 3867 IPv6", RFC 7222, DOI 10.17487/RFC7222, May 2014, 3868 . 3870 Authors' Addresses 3872 Satoru Matsushima 3873 SoftBank 3874 1-9-1,Higashi-Shimbashi,Minato-Ku 3875 Tokyo 105-7322 3876 Japan 3878 Email: satoru.matsushima@g.softbank.co.jp 3880 Lyle Bertz 3881 6220 Sprint Parkway 3882 Overland Park KS, 66251 3883 USA 3885 Email: lylebe551144@gmail.com 3887 Marco Liebsch 3888 NEC Laboratories Europe 3889 NEC Europe Ltd. 3890 Kurfuersten-Anlage 36 3891 D-69115 Heidelberg 3892 Germany 3894 Phone: +49 6221 4342146 3895 Email: liebsch@neclab.eu 3896 Sri Gundavelli 3897 Cisco 3898 170 West Tasman Drive 3899 San Jose, CA 95134 3900 USA 3902 Email: sgundave@cisco.com 3904 Danny Moses 3906 Email: danny.moses@intel.com 3908 Charles E. Perkins 3909 Futurewei Inc. 3910 2330 Central Expressway 3911 Santa Clara, CA 95050 3912 USA 3914 Phone: +1-408-330-4586 3915 Email: charliep@computer.org