| < draft-ietf-mboned-multicast-yang-model-04.txt | draft-ietf-mboned-multicast-yang-model-05.txt > | |||
|---|---|---|---|---|
| MBONED WG Z. Zhang | MBONED WG Z. Zhang | |||
| Internet-Draft ZTE Corporation | Internet-Draft ZTE Corporation | |||
| Intended status: Standards Track C. Wang | Intended status: Standards Track C. Wang | |||
| Expires: May 2, 2021 Individual | Expires: 26 February 2022 Individual | |||
| Y. Cheng | Y. Cheng | |||
| China Unicom | China Unicom | |||
| X. Liu | X. Liu | |||
| Volta Networks | Volta Networks | |||
| M. Sivakumar | M. Sivakumar | |||
| Juniper networks | Juniper networks | |||
| October 29, 2020 | 25 August 2021 | |||
| Multicast YANG Data Model | Multicast YANG Data Model | |||
| draft-ietf-mboned-multicast-yang-model-04 | draft-ietf-mboned-multicast-yang-model-05 | |||
| Abstract | Abstract | |||
| This document provides a general multicast YANG data model, which | This document provides a general multicast YANG data model, which | |||
| takes full advantages of existed multicast protocol models to control | takes full advantages of existed multicast protocol models to control | |||
| the multicast network, and guides the deployment of multicast | the multicast network, and guides the deployment of multicast | |||
| service. | service. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 2, 2021. | This Internet-Draft will expire on 26 February 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | ||||
| carefully, as they describe your rights and restrictions with respect | Please review these documents carefully, as they describe your rights | |||
| to this document. Code Components extracted from this document must | and restrictions with respect to this document. Code Components | |||
| include Simplified BSD License text as described in Section 4.e of | extracted from this document must include Simplified BSD License text | |||
| the Trust Legal Provisions and are provided without warranty as | as described in Section 4.e of the Trust Legal Provisions and are | |||
| described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Conventions Used in This Document . . . . . . . . . . . . 4 | 1.2. Conventions Used in This Document . . . . . . . . . . . . 4 | |||
| 1.3. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | 1.3. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.4. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 | 1.4. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 | |||
| 1.5. Usage of Multicast Model . . . . . . . . . . . . . . . . 4 | 1.5. Usage of Multicast Model . . . . . . . . . . . . . . . . 5 | |||
| 2. Design of the multicast model . . . . . . . . . . . . . . . . 6 | 1.5.1. Example . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2.1. Scope of Model . . . . . . . . . . . . . . . . . . . . . 6 | 2. Design of the multicast model . . . . . . . . . . . . . . . . 8 | |||
| 2.2. Specification . . . . . . . . . . . . . . . . . . . . . . 7 | 2.1. Scope of Model . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3. Module Structure . . . . . . . . . . . . . . . . . . . . . . 7 | 2.2. Specification . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.1. UML like Class Diagram for Multicast YANG data Model . . 7 | 3. Module Structure . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.2. Model Structure . . . . . . . . . . . . . . . . . . . . . 9 | 3.1. UML like Class Diagram for Multicast YANG data Model . . 8 | |||
| 3.2. Model Structure . . . . . . . . . . . . . . . . . . . . . 10 | ||||
| 3.3. Multicast YANG data model Configuration . . . . . . . . . 12 | 3.3. Multicast YANG data model Configuration . . . . . . . . . 12 | |||
| 3.4. Multicast YANG data model State . . . . . . . . . . . . . 13 | 3.4. Multicast YANG data model State . . . . . . . . . . . . . 13 | |||
| 3.5. Multicast YANG data model Notification . . . . . . . . . 13 | 3.5. Multicast YANG data model Notification . . . . . . . . . 13 | |||
| 4. Multicast YANG data Model . . . . . . . . . . . . . . . . . . 13 | 4. Multicast YANG data Model . . . . . . . . . . . . . . . . . . 14 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 27 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 33 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 28 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 34 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 31 | 8.2. Informative References . . . . . . . . . . . . . . . . . 37 | |||
| Appendix A. Data Tree Example . . . . . . . . . . . . . . . . . 34 | Appendix A. Data Tree Example . . . . . . . . . . . . . . . . . 40 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| 1. Introduction | 1. Introduction | |||
| Currently, there are many multicast protocol YANG models, such as | Currently, there are many multicast protocol YANG models, such as | |||
| PIM, MLD, and BIER and so on. But all these models are distributed | PIM, MLD, and BIER and so on. But all these models are distributed | |||
| in different working groups as separate files and focus on the | in different working groups as separate files and focus on the | |||
| protocol itself. Furthermore, they cannot describe a high-level | protocol itself. Furthermore, they cannot describe a high-level | |||
| multicast service required by network operators. | multicast service required by network operators. | |||
| This document provides a general and all-round multicast model, which | This document provides a general and all-round multicast model, which | |||
| stands at a high level to take full advantages of these | stands at a high level to take full advantages of these | |||
| aforementioned models to control the multicast network, and guide the | aforementioned models to control the multicast network, and guide the | |||
| deployment of multicast service. | deployment of multicast service. | |||
| This model is designed to be used along with other multicast YANG | This document does not define any specific protocol model, instead, | |||
| models such as PIM [I-D.ietf-pim-yang], which are not covered in this | it depends on many existing multicast protocol models and relates | |||
| document. | several multicast information together to fulfill multicast service. | |||
| This model can be used along with other multicast YANG models such as | ||||
| PIM [I-D.ietf-pim-yang], which are not covered in this document. | ||||
| 1.1. Terminology | 1.1. Terminology | |||
| The terminology for describing YANG data models is found in [RFC6020] | The terminology for describing YANG data models is found in [RFC6020] | |||
| and [RFC7950], including: | and [RFC7950], including: | |||
| o augment | * augment | |||
| o data model | * data model | |||
| o data node | * data node | |||
| o identity | * identity | |||
| o module | * module | |||
| The following abbreviations are used in this document and the defined | The following abbreviations are used in this document and the defined | |||
| model: | model: | |||
| BIER: Bit Index Explicit Replication [RFC8279]. | BABEL: [RFC8966]. | |||
| MLD: Multicast Listener Discovery [I-D.ietf-bier-mld]. | BGP: Border Gateway Protocol [RFC4271]. | |||
| PIM: Protocol Independent Multicast [RFC7761]. | BIER: Bit Index Explicit Replication [RFC8279]. | |||
| BGP: Border Gateway Protocol [RFC4271]. | BIER-TE: Traffic Engineering for Bit Index Explicit Replication | |||
| [I-D.ietf-bier-te-arch]. | ||||
| MVPN: Multicast in MPLS/BGP IP VPNs [RFC6513]. | ISIS: Intermediate System to Intermediate System Routeing Exchange | |||
| Protocol [RFC1195]. | ||||
| MLD: Multicast Listener Discovery [I-D.ietf-bier-mld]. | ||||
| MLDP: Label Distribution Protocol Extensions for Point-to-Multipoint | MLDP: Label Distribution Protocol Extensions for Point-to-Multipoint | |||
| and Multipoint-to-Multipoint Label Switched Paths [RFC6388]. | and Multipoint-to-Multipoint Label Switched Paths [RFC6388]. | |||
| OSPF: Open Shortest Path First [RFC2328]. | MVPN: Multicast in MPLS/BGP IP VPNs [RFC6513]. | |||
| ISIS: Intermediate System to Intermediate System Routeing Exchange | ||||
| Protocol [RFC1195]. | ||||
| BABEL: [I-D.ietf-babel-rfc6126bis]. | OSPF: Open Shortest Path First [RFC2328]. | |||
| P2MP-TE: Point-to-Multipoint Traffic Engineering [RFC4875]. | P2MP-TE: Point-to-Multipoint Traffic Engineering [RFC4875]. | |||
| BIER-TE: Traffic Engineering for Bit Index Explicit Replication | PIM: Protocol Independent Multicast [RFC7761]. | |||
| [I-D.ietf-bier-te-arch]. | ||||
| SR-P2MP: Segment Routing Point-to-Multipoint | ||||
| [I-D.ietf-pim-sr-p2mp-policy]. | ||||
| 1.2. Conventions Used in This Document | 1.2. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 1.3. Tree Diagrams | 1.3. Tree Diagrams | |||
| skipping to change at page 4, line 26 ¶ | skipping to change at page 4, line 31 ¶ | |||
| [RFC8340]. | [RFC8340]. | |||
| 1.4. Prefixes in Data Node Names | 1.4. Prefixes in Data Node Names | |||
| In this document, names of data nodes, actions, and other data model | In this document, names of data nodes, actions, and other data model | |||
| objects are often used without a prefix, as long as it is clear from | objects are often used without a prefix, as long as it is clear from | |||
| the context in which YANG module each name is defined. Otherwise, | the context in which YANG module each name is defined. Otherwise, | |||
| names are prefixed using the standard prefix associated with the | names are prefixed using the standard prefix associated with the | |||
| corresponding YANG module, as shown in Table 1. | corresponding YANG module, as shown in Table 1. | |||
| +----------+--------------------+----------------------+ | +==========+====================+===============================+ | |||
| | Prefix | YANG module | Reference | | | Prefix | YANG module | Reference | | |||
| +----------+--------------------+----------------------+ | +==========+====================+===============================+ | |||
| | inet | ietf-inet-types | [RFC6991] | | | inet | ietf-inet-types | [RFC6991] | | |||
| | | | | | +----------+--------------------+-------------------------------+ | |||
| | rt-types | ietf-routing-types | [RFC8294] | | | isis | ietf-isis | [I-D.ietf-isis-yang-isis-cfg] | | |||
| | | | | | +----------+--------------------+-------------------------------+ | |||
| | rt | ietf-routing | [RFC8349] | | | ospf | ietf-ospf | [I-D.ietf-ospf-yang] | | |||
| | | | | | +----------+--------------------+-------------------------------+ | |||
| | ospf | ietf-ospf | [I-D.ietf-ospf-yang] | | | rt-types | ietf-routing-types | [RFC8294] | | |||
| +----------+--------------------+----------------------+ | +----------+--------------------+-------------------------------+ | |||
| | rt | ietf-routing | [RFC8349] | | ||||
| +----------+--------------------+-------------------------------+ | ||||
| | yang | ietf-yang-types | [RFC6991] | | ||||
| +----------+--------------------+-------------------------------+ | ||||
| Table 1 | Table 1 | |||
| 1.5. Usage of Multicast Model | 1.5. Usage of Multicast Model | |||
| This multicast YANG data model is mainly used by the management tools | This multicast YANG data model is mainly used by the management tools | |||
| run by the network operators, in order to manage, monitor and debug | run by the network operators, in order to manage, monitor and debug | |||
| the network resources which are used to deliver multicast service. | the network resources that are used to deliver multicast service. | |||
| This model is used for gathering data from the network as well. | This model is used for gathering data from the network as well. | |||
| +------------------------+ | +------------------------+ | |||
| | Multicast Model | | | Multicast Model | | |||
| +------------------------+ | +------------------------+ | |||
| | | | | | | | | |||
| | | | | | | | | |||
| | +---------+ +----------+ | | +---------+ +----------+ | |||
| | | EMS/NMS | |Controller| | | | EMS/NMS | |Controller| | |||
| | +---------+ +----------+ | | +---------+ +----------+ | |||
| | | | | | | | | |||
| | | | | | | | | |||
| +------------------------------------------------+ | +------------------------------------------------+ | |||
| | Network Element1.....N | | | Network Element1.....N | | |||
| +------------------------------------------------+ | +------------------------------------------------+ | |||
| Figure 1: Usage of Multicast Model | Figure 1: Usage of Multicast Model | |||
| Detailly, in figure 1, there is an example of usage of this multicast | Figure 1 illustrates example use cases for this multicast model. | |||
| model. Network operators can use this model in a controller which is | Network operators can use this model in a controller which is | |||
| responsible to implement specific multicast flows with specific | responsible to implement specific multicast flows with specific | |||
| protocols and invoke the corresponding protocols' model to configure | protocols and work with the corresponding protocols' model to | |||
| the network elements through NETCONF/RESTCONF/CLI. Or network | configure the network elements through NETCONF/RESTCONF/CLI. Or | |||
| operators can use this model to the EMS/NMS to manage the network | network operators can use this model to the EMS (Element Management | |||
| elements or configure the network elements directly. | System)/ NMS (Network Management System) to manage or configure the | |||
| network elements directly. | ||||
| On the other hand, when the network elements detect failure or some | ||||
| other changes, the network devices can send the affected multicast | ||||
| flows and the associated overlay/ transport/ underlay information to | ||||
| the controller. Then the controller/ EMS/NMS can respond immediately | ||||
| due to the failure and distribute new model for the flows to the | ||||
| network nodes quickly. Such as the changing of the failure overlay | ||||
| protocol to another one, as well as transport and underlay protocol. | ||||
| Specifically, in section 3, it provides a human readability of the | ||||
| whole multicast network through UML like class diagram, which frames | ||||
| different multicast components and correlates them in a readable | ||||
| fashion. Then, based on this UML like class diagram, there is | ||||
| instantiated and detailed YANG model in Section 4. | ||||
| The usage of this model is flexible. The multicast-keys indicate the | ||||
| flow characters. The flow can be L3 multicast flow, or L2 flow which | ||||
| is also called BUM (Broadcast, Unknown unicast, Multicast) flow in | ||||
| EVPN ([RFC7432]) deployment. | ||||
| Among the multicast-keys, the group-address of L3 multicast flow and | ||||
| the mac-address of BUM flow are the most important keys. The other | ||||
| keys are optional, and need not be all set. For example, only group- | ||||
| address is set, this is (*,G) analogous. If source-address and | ||||
| group-address are both set, this is (S,G) analogous. In addition to | ||||
| the source-address and group-address, when vpn-rd is also set, this | ||||
| is MVPN use case. If mac-address and vpn-rd are set, this is EVPN | ||||
| use case. In case vni-value is set with associated group-address, | ||||
| etc., this is NVO3 multicast use case. | ||||
| * When the controller manages all the ingress and egress routers for | ||||
| the flow, it sends the model that is set with flow characters, | ||||
| ingress and egress nodes information to the ingress and egress | ||||
| nodes. Then the ingress and egress nodes can work without any | ||||
| other dynamic overlay protocols. | ||||
| * When the controller manages the ingress nodes only for the flow, | ||||
| it sends the model that is set with the flow characters to the | ||||
| ingress nodes. The dynamic overlay protocol can be set or not. | ||||
| If the overlay protocol is set, the nodes use the protocol to | ||||
| signal the flow information with other nodes. If the overlay | ||||
| protocol is not set, the nodes use the local running overlay | ||||
| protocol to signal the flow information. | ||||
| * When the transport protocol is set in the model, the nodes | ||||
| encapsulate the flow according to the transport protocol. When | ||||
| the transport protocol is not set in the model, the nodes use the | ||||
| local configured transport protocol for encapsulation. | ||||
| * When the transport protocol is set in the model, the underlay | ||||
| protocol may be set in the model also. In case the underlay | ||||
| protocol is set, the nodes use the underlay protocol to signal and | ||||
| build the transport/forwarding layer. In case the underlay | ||||
| protocol is not set, the nodes use the local configured underlay | ||||
| protocol to signal and build the transport/forwarding layer. | ||||
| * More than one ingress node for a multicast flow can be set in the | ||||
| model. In this situation, two or more ingress nodes can used for | ||||
| a multicast flow forwarding, the ingress routers can be backup for | ||||
| each other. More information can be found in | ||||
| [I-D.szcl-mboned-redundant-ingress-failover]. | ||||
| 1.5.1. Example | ||||
| +------------+ | +------------+ | |||
| | +---------------------------+ | | +---------------------------+ | |||
| +--------------+ Controller | | | +--------------+ Controller | | | |||
| | | +-----------+ | | | | +-----------+ | | |||
| | +------------+ | | | | +------------+ | | | |||
| | | | | | | | | |||
| | +-----------------------------+ | | | | +-----------------------------+ | | | |||
| | | | | | | | | | | | | |||
| | | +------+---+--+ | | | | +------+---+--+ | | |||
| skipping to change at page 5, line 49 ¶ | skipping to change at page 7, line 27 ¶ | |||
| | | +------+------+ | | | | +------+------+ | | |||
| +---+-----+----+ | | | +---+-----+----+ | | | |||
| Source +-|Ingress router| BIER domain | | | Source +-|Ingress router| BIER domain | | | |||
| +---------+----+ | | | +---------+----+ | | | |||
| | +------+------+ | | | +------+------+ | | |||
| | |Egress router+--+ Receiver| | | |Egress router+--+ Receiver| | |||
| | +------+----+-+ | | | +------+----+-+ | | |||
| | | | | | | | | | | |||
| +-----------------------------+ +--------------+ | +-----------------------------+ +--------------+ | |||
| Figure 2: Example | Figure 2: Example | |||
| The network administrator can use the multicast model and associated | The network administrator can use the multicast model and associated | |||
| models to deploy the multicast service. For example, suppose that | models to deploy the multicast service. For example, suppose that | |||
| the flow for a multicast service is 233.252.0.0/16, the flow should | the flow for a multicast service is 233.252.0.0/16, the flow should | |||
| be forwarded by BIER [RFC8279] with MPLS encapsulation [RFC8296]. | be forwarded by BIER [RFC8279] with MPLS encapsulation [RFC8296]. | |||
| Correspoding IGP protocol which is used to build BIER transport layer | Corresponding IGP protocol which is used to build BIER transport | |||
| is OSPF [RFC2328]. | layer is OSPF [RFC2328]. | |||
| In this model, the correspond key is set to 233.252.0.0/16, the | ||||
| transport technology is set to BIER. The BIER underlay protocol is | ||||
| set to OSPF. The model is sent to every egde router from the | ||||
| controller. If the BIER transport layer which depends on OSPF has | ||||
| not been built in the network, the multicast YANG model will invoke | ||||
| the BIER YANG model which is defined in [I-D.ietf-bier-bier-yang] | ||||
| generation in the controller. After the BIER transport layer is | ||||
| built, the ingress router encapsulates the multicast flow with BIER | ||||
| header and sends it into the network. Intermediate routers forward | ||||
| the flows to all the egress nodes by BIER forwarding. | ||||
| On the other hand, when the network elements detect failure or some | ||||
| other changes, the network devices can send the affected multicast | ||||
| flows and the associated overlay/ transport/ underlay information to | ||||
| the controller. Then the controller/ EMS/NMS can response | ||||
| immediately due to the failure and distribute new model for the flows | ||||
| to the network nodes quickly. Such as the changing of the failure | ||||
| overlay protocol to another one, as well as transport and underlay | ||||
| protocol. | ||||
| Specifically, in section 3, it provides a human readability of the | In this model, the corresponding group-address that is in multicast- | |||
| whole multicast network through UML like class diagram, which frames | keys is set to 233.252.0.0/16, the transport technology is set to | |||
| different multicast components and correlates them in a readable | BIER. The BIER underlay protocol is set to OSPF. The model is sent | |||
| fashion. Then, based on this UML like class diagram, there is | to every edge router from the controller. If the BIER transport | |||
| instantiated and detailed YANG model in Section 5. | layer which depends on OSPF has not been built in the network, the | |||
| multicast YANG model may invoke the BIER YANG model that is defined | ||||
| in [I-D.ietf-bier-bier-yang] generation in the controller. After the | ||||
| BIER transport layer is built, the ingress router encapsulates the | ||||
| multicast flow with BIER header and sends it into the network. | ||||
| Intermediate routers forward the flows to all the egress nodes by | ||||
| BIER forwarding. | ||||
| In other words, this document does not define any specific protocol | Another example for this figure is, the controller can act as the | |||
| model, instead, it depends on many existed multicast protocol models | BIER overlay only. The routers in the domain build BIER forwarding | |||
| and relates several multicast information together to fulfill | plane beforehand. The controller sends the multicast group-address | |||
| multicast service. | and/or the source-address to the edge routers in BIER domain only, | |||
| without transport and underlay set in the model. Then the ingres | ||||
| router can encapsulate the multicast flow with BIER encapsulation | ||||
| automatically. | ||||
| 2. Design of the multicast model | 2. Design of the multicast model | |||
| 2.1. Scope of Model | 2.1. Scope of Model | |||
| This model can be used to configure and manage Multicast service. | This model can be used to configure and manage Multicast service. | |||
| The operational state data can be retrieved by this model. The | The operational state data can be retrieved by this model. The | |||
| subscription and push mechanism defined in [RFC8639] and [RFC8641] | subscription and push mechanism defined in [RFC8639] and [RFC8641] | |||
| can be implemented by the user to subscribe to notifications on the | can be implemented by the user to subscribe to notifications on the | |||
| data nodes in this model. | data nodes in this model. | |||
| skipping to change at page 7, line 17 ¶ | skipping to change at page 8, line 30 ¶ | |||
| not allow some of the advanced parameters to be configurable. The | not allow some of the advanced parameters to be configurable. The | |||
| occasionally implemented parameters are modeled as optional features | occasionally implemented parameters are modeled as optional features | |||
| in this model. This model can be extended, and it has been | in this model. This model can be extended, and it has been | |||
| structured in a way that such extensions can be conveniently made. | structured in a way that such extensions can be conveniently made. | |||
| 2.2. Specification | 2.2. Specification | |||
| The configuration data nodes cover configurations. The container | The configuration data nodes cover configurations. The container | |||
| "multicast-model" is the top level container in this data model. The | "multicast-model" is the top level container in this data model. The | |||
| presence of this container is expected to enable Multicast service | presence of this container is expected to enable Multicast service | |||
| functionality. The notification includes the error reason and the | functionality. The notification is used to notify the controller | |||
| associated data nodes. | that there is error and the error reason. | |||
| 3. Module Structure | 3. Module Structure | |||
| This model imports and augments the ietf-routing YANG model defined | This model imports and augments the ietf-routing YANG model defined | |||
| in [RFC8349]. Both configuration data nodes and state data nodes of | in [RFC8349]. Both configuration data nodes and state data nodes of | |||
| [RFC8349] are augmented. | [RFC8349] are augmented. | |||
| The YANG data model defined in this document conforms to the Network | The YANG data model defined in this document conforms to the Network | |||
| Management Datastore Architecture (NMDA) [RFC8342]. The operational | Management Datastore Architecture (NMDA) [RFC8342]. The operational | |||
| state data is combined with the associated configuration data in the | state data is combined with the associated configuration data in the | |||
| skipping to change at page 8, line 16 ¶ | skipping to change at page 9, line 16 ¶ | |||
| +-----+Multi|keys | | +-----+Multi|keys | | |||
| | +-----------+ | | +-----------+ | |||
| | |Group Addr | | | |Group Addr | | |||
| | +-----------+ | | +-----------+ | |||
| | |Source Addr| +--------+-----------------+ | | |Source Addr| +--------+-----------------+ | |||
| | +-----------+ | | | | | +-----------+ | | | | |||
| | |VPN Info | | | +------+-------+ | | |VPN Info | | | +------+-------+ | |||
| | +-----------+ | +-----+------+ | Ing/Eg Nodes | | | +-----------+ | +-----+------+ | Ing/Eg Nodes | | |||
| | |VNI Info | | |Overlay Tech| +--------------+ | | |VNI Info | | |Overlay Tech| +--------------+ | |||
| | +-----------+ | +------------+ |Ingress Nodes | | | +-----------+ | +------------+ |Ingress Nodes | | |||
| | | | MLD | +--------------+ | | | | EVPN | +--------------+ | |||
| | | +------------+ |Egress Nodes | | | | +------------+ |Egress Nodes | | |||
| | Contain | | MVPN | +-------+------+ | | Contain | | MLD | +-------+------+ | |||
| | +-----------+ | +------------+ | relate | | +-----------+ | +------------+ | relate | |||
| | | Multicast +----+ | BGP | \|/ | | | Multicast +----+ |MLD-Snooping| \|/ | |||
| +-----+ Overlay | +------------+ +----------------+ | +-----+ Overlay | +------------+ +----------------+ | |||
| | | | |MLD|Snooping| | BIER Nodes Info| | | | | | MVPN | | BIER Nodes Info| | |||
| | +-----------+ +------------+ +----------------+ | | +-----------+ +------------+ +----------------+ | |||
| | | BFR|ID | | | | PIM | | BFR-ID | | |||
| | +----------------+ | | +------------+ +----------------+ | |||
| | | | | |||
| +--------+--+ +---------------+----------+----------+ | +--------+--+ +---------------+----------+----------+ | |||
| | Multicast |Contain | | | | | | Multicast |Contain | | | | | |||
| | Model | | +--+---+ +---+----+ +--+---+ | | Model | | +--+---+ +---+----+ +--+---+ | |||
| +--------+--+ | | MPLS | |BIER|TE | | BIER | | +--------+--+ | | BIER | |BIER-TE | | MPLS | | |||
| | +---------+--+ +------+ +--------+ +------+ | | +---------+--+ +------+ +--------+ +------+ | |||
| | | Multicast | | | | Multicast | | |||
| +----+ Transport | invoke +-----+ +----------+ | +----+ Transport | invoke +-----+ +----------+ +-------+ | |||
| | | | | PIM | |Cisco Mode| | | | | | PIM | |Cisco Mode| |SR-P2MP| | |||
| | +---------+--+ +--+--+ +----+-----+ | | +---------+--+ +--+--+ +----+-----+ +---+---+ | |||
| | | | | | | | | | | | |||
| | | | | | | | | | | | |||
| | +---------------+-----------+ | | +---------------+----------+-----------+ | |||
| | | | | |||
| | +--------------+---------+---------+ | | +--------------+---------+---------+ | |||
| | | | | | | | | | | | | |||
| | | +--+---+ +--+---+ +--+--+ | | | +--+---+ +--+---+ +--+--+ | |||
| | +----------+-- | OSPF | | PIM | |BABEL| | | +----------+-- | BABEL| | BGP | |ISIS | | |||
| | | Multicast | +------+ +------+ +-----+ | | | Multicast | +------+ +------+ +-----+ | |||
| +----+ Underlay | invoke | +----+ Underlay | invoke | |||
| | | +------+ +------+ | | | +------+ +------+ +-----+ | |||
| +----------+-- | ISIS | | BGP | | +----------+-- | OSPF | | PIM | |RIFT | | |||
| | +--+---+ +--+---+ | | +--+---+ +--+---+ +--+--+ | |||
| | | | | | | | | | |||
| +--------------+---------+ | +--------------+---------+---------+ | |||
| Figure 3: UML like Class Diagram for Multicast YANG data Model | Figure 3: UML like Class Diagram for Multicast YANG data Model | |||
| 3.2. Model Structure | 3.2. Model Structure | |||
| module: ietf-multicast-model | module: ietf-multicast-model | |||
| +--rw multicast-model | +--rw multicast-model | |||
| +--rw multicast-keys* | +--rw multicast-keys* | |||
| [vpn-rd source-address group-address vni-type vni-value] | [vpn-rd source-address group-address mac-address vni-value] | |||
| +--rw vpn-rd rt-types:route-distinguisher | +--rw vpn-rd rt-types:route-distinguisher | |||
| +--rw source-address ip-multicast-source-address | +--rw source-address ip-multicast-source-address | |||
| +--rw group-address | +--rw group-address | |||
| rt-types:ip-multicast-group-address | | rt-types:ip-multicast-group-address | |||
| +--rw vni-type virtual-type | +--rw mac-address yang:mac-address | |||
| +--rw vni-value uint32 | +--rw vni-value uint32 | |||
| +--rw multicast-overlay | +--rw multicast-overlay | |||
| | +--rw ingress-egress | | +--rw vni-type? virtual-type | |||
| | | +--rw ingress-node? inet:ip-address | | +--rw ingress-egress | |||
| | | +--rw egress-nodes* [egress-node] | | | +--rw ingress-nodes* [ingress-node] | |||
| | | +--rw egress-node inet:ip-address | | | | +--rw ingress-node inet:ip-address | |||
| | +--rw bier-ids | | | +--rw egress-nodes* [egress-node] | |||
| | | +--rw sub-domain? uint16 | | | +--rw egress-node inet:ip-address | |||
| | | +--rw ingress-node? uint16 | | +--rw bier-ids {bier}? | |||
| | | +--rw egress-nodes* [egress-node] | | | +--rw sub-domain? uint16 | |||
| | | +--rw egress-node uint16 | | | +--rw ingress-nodes* [ingress-node] | |||
| | +--rw (overlay-tech-type)? | | | | +--rw ingress-node uint16 | |||
| | +--:(bgp) | | | +--rw egress-nodes* [egress-node] | |||
| | +--:(evpn) | | | +--rw egress-node uint16 | |||
| | +--:(mld) | | +--rw dynamic-overlay | |||
| | | +--rw mld-instance-group? | | +--rw type? identityref | |||
| rt-types:ip-multicast-group-address | | +--rw mld | |||
| | +--:(mld-snooping) | | +--rw mld-instance-group? | |||
| | +--:(mvpn) | | rt-types:ip-multicast-group-address | |||
| | +--:(pim) | +--rw multicast-transport | |||
| +--rw multicast-transport | | +--rw type? identityref | |||
| | +--rw (transport)? | | +--rw bier | |||
| | +--:(bier) | | | +--rw sub-domain? uint16 | |||
| | | +--rw bier | | | +--rw bitstringlength? uint16 | |||
| | | +--rw sub-domain? uint16 | | | +--rw set-identifier? uint16 | |||
| | | +--rw bitstringlength? uint16 | | | +--rw (encap-type)? | |||
| | | +--rw set-identifier? uint16 | | | +--:(mpls) | |||
| | | +--rw (encap-type)? | | | +--:(eth) | |||
| | | +--:(mpls) | | | +--:(ipv6) | |||
| | | +--:(eth) | | +--rw bier-te | |||
| | | +--:(ipv6) | | | +--rw sub-domain? uint16 | |||
| | +--:(bier-te) | | | +--rw bitstringlength? uint16 | |||
| | | +--rw bier-te | | | +--rw set-identifier? uint16 | |||
| | | +--rw sub-domain? uint16 | | | +--rw (encap-type)? | |||
| | | +--rw bitstringlength? uint16 | | | | +--:(mpls) | |||
| | | +--rw set-identifier? uint16 | | | | +--:(eth) | |||
| | | +--rw (encap-type)? | | | | +--:(ipv6) | |||
| | | | +--:(mpls) | | | +--rw bitstring* [name] | |||
| | | | +--:(eth) | | | +--rw name string | |||
| | | | +--:(ipv6) | | | +--rw bier-te-adj* [adj-id] | |||
| | | +--rw bier-te-adj* uint16 | | | +--rw adj-id uint16 | |||
| | +--:(cisco-mode) | | +--rw cisco-mdt | |||
| | | +--rw cisco-mode | | | +--rw p-group? rt-types:ip-multicast-group-address | |||
| | | +--rw p-group? | | +--rw rsvp-te-p2mp | |||
| rt-types:ip-multicast-group-address | | | +--rw template-name? string | |||
| | +--:(mpls) | | +--rw pim | |||
| | | +--rw mpls | | | +--rw source-address? ip-multicast-source-address | |||
| | | +--rw (mpls-lsp-type)? | | | +--rw group-address | |||
| | | +--:(mldp) | | | rt-types:ip-multicast-group-address | |||
| | | | +--rw mldp-lsp | | +--rw sr-p2mp | |||
| | | | +--rw root-address? | | +--rw ir-segment-lists* [name] | |||
| ip-multicast-source-address | | | +--rw name string | |||
| | | | +--rw lsp-id? uint32 | | +--rw replication-segment* [replication-id node-id] | |||
| | | | +--rw backup-lsp-id? uint32 | | +--rw replication-id tree-sid | |||
| | | +--:(p2mp-te) | | +--rw node-id inet:ip-address | |||
| | | +--rw p2mp-te-lsp | +--rw multicast-underlay | |||
| | | +--rw root-address? | +--rw type? identityref | |||
| ip-multicast-source-address | +--rw ospf | |||
| | | +--rw lsp-id? uint32 | | +--rw topology? string | |||
| | | +--rw backup-lsp-id? uint32 | +--rw isis | |||
| | +--:(pim) | | +--rw topology? string | |||
| | +--rw pim | +--rw pim | |||
| +--rw multicast-underlay | +--rw source-address? ip-multicast-source-address | |||
| +--rw (underlay)? | +--rw group-address | |||
| +--:(bgp) | rt-types:ip-multicast-group-address | |||
| +--:(ospf) | ||||
| | +--rw ospf | ||||
| | +--rw topology? | ||||
| -> /rt:routing/control-plane-protocols | ||||
| /control-plane-protocol/ospf:ospf | ||||
| /topologies/topology/name | ||||
| +--:(isis) | ||||
| +--:(babel) | ||||
| notifications: | notifications: | |||
| +---n head-end-event | +---n ingress-egress-event | |||
| +--ro event-type? enumeration | +--ro event-type? enumeration | |||
| +--ro multicast-key | +--ro multicast-key | |||
| | +--ro vpn-rd? rt-types:route-distinguisher | | +--ro vpn-rd? rt-types:route-distinguisher | |||
| | +--ro source-address? ip-multicast-source-address | | +--ro source-address? ip-multicast-source-address | |||
| | +--ro group-address? rt-types:ip-multicast-group-address | | +--ro group-address? rt-types:ip-multicast-group-address | |||
| | +--ro vni-type? virtual-type | | +--ro mac-address? yang:mac-address | |||
| | +--ro vni-value? uint32 | | +--ro vni-value? uint32 | |||
| +--ro (overlay-tech-type)? | +--ro dynamic-overlay | |||
| | +--:(bgp) | | +--ro type? identityref | |||
| | +--:(evpn) | | +--ro mld | |||
| | +--:(mld) | | +--ro mld-instance-group? | |||
| | | +--ro mld-instance-group? | | rt-types:ip-multicast-group-address | |||
| rt-types:ip-multicast-group-address | +--ro transport-tech | |||
| | +--:(mld-snooping) | | +--ro type? identityref | |||
| | +--:(mvpn) | | +--ro bier | |||
| | +--:(pim) | | | +--ro sub-domain? uint16 | |||
| +--ro transport-tech | | | +--ro bitstringlength? uint16 | |||
| | +--ro (transport)? | | | +--ro set-identifier? uint16 | |||
| | +--:(bier) | | | +--ro (encap-type)? | |||
| | | +--ro bier | | | +--:(mpls) | |||
| | | +--ro sub-domain? uint16 | | | +--:(eth) | |||
| | | +--ro bitstringlength? uint16 | | | +--:(ipv6) | |||
| | | +--ro set-identifier? uint16 | | +--ro bier-te | |||
| | | +--ro (encap-type)? | | | +--ro sub-domain? uint16 | |||
| | | +--:(mpls) | | | +--ro bitstringlength? uint16 | |||
| | | +--:(eth) | | | +--ro set-identifier? uint16 | |||
| | | +--:(ipv6) | | | +--ro (encap-type)? | |||
| | +--:(bier-te) | | | | +--:(mpls) | |||
| | | +--ro bier-te | | | | +--:(eth) | |||
| | | +--ro sub-domain? uint16 | | | | +--:(ipv6) | |||
| | | +--ro bitstringlength? uint16 | | | +--ro bitstring* [name] | |||
| | | +--ro set-identifier? uint16 | | | +--ro name string | |||
| | | +--ro (encap-type)? | | | +--ro bier-te-adj* [adj-id] | |||
| | | | +--:(mpls) | | | +--ro adj-id uint16 | |||
| | | | +--:(eth) | | +--ro cisco-mdt | |||
| | | | +--:(ipv6) | | | +--ro p-group? rt-types:ip-multicast-group-address | |||
| | | +--ro bier-te-adj* uint16 | | +--ro rsvp-te-p2mp | |||
| | +--:(cisco-mode) | | | +--ro template-name? string | |||
| | | +--ro cisco-mode | | +--ro pim | |||
| | | +--ro p-group? | | | +--ro source-address? ip-multicast-source-address | |||
| rt-types:ip-multicast-group-address | | | +--ro group-address | |||
| | +--:(mpls) | | | rt-types:ip-multicast-group-address | |||
| | | +--ro mpls | | +--ro sr-p2mp | |||
| | | +--ro (mpls-lsp-type)? | | +--ro ir-segment-lists* [name] | |||
| | | +--:(mldp) | | | +--ro name string | |||
| | | | +--ro mldp-lsp | | +--ro replication-segment* [replication-id node-id] | |||
| | | | +--ro root-address? | | +--ro replication-id tree-sid | |||
| ip-multicast-source-address | | +--ro node-id inet:ip-address | |||
| | | | +--ro lsp-id? uint32 | +--ro underlay-tech | |||
| | | | +--ro backup-lsp-id? uint32 | +--ro type? identityref | |||
| | | +--:(p2mp-te) | +--ro ospf | |||
| | | +--ro p2mp-te-lsp | | +--ro topology? string | |||
| | | +--ro root-address? | +--ro isis | |||
| ip-multicast-source-address | | +--ro topology? string | |||
| | | +--ro lsp-id? uint32 | +--ro pim | |||
| | | +--ro backup-lsp-id? uint32 | +--ro source-address? ip-multicast-source-address | |||
| | +--:(pim) | +--ro group-address | |||
| | +--ro pim | rt-types:ip-multicast-group-address | |||
| +--ro underlay-tech | ||||
| +--ro (underlay)? | ||||
| +--:(bgp) | ||||
| +--:(ospf) | ||||
| | +--ro ospf | ||||
| | +--ro topology? | ||||
| -> /rt:routing/control-plane-protocols | ||||
| /control-plane-protocol/ospf:ospf | ||||
| /topologies/topology/name | ||||
| +--:(isis) | ||||
| +--:(babel) | ||||
| 3.3. Multicast YANG data model Configuration | 3.3. Multicast YANG data model Configuration | |||
| This model is used with other protocol data model to provide | This model is used with other protocol data model to provide | |||
| multicast service. | multicast service. | |||
| This model includes multicast service keys and three layers: the | This model includes multicast service keys and three layers: the | |||
| multicast overlay, the transport layer and the multicast underlay | multicast overlay, the transport layer and the multicast underlay | |||
| information. Multicast keys include the features of multicast flow, | information. Multicast keys include the features of multicast flow, | |||
| such as(vpnid, multicast source and multicast group) information. In | such as(vpnid, multicast source and multicast group) information. In | |||
| skipping to change at page 12, line 42 ¶ | skipping to change at page 13, line 25 ¶ | |||
| information including (Subdomain, ingress-node BFR-id, egress-nodes | information including (Subdomain, ingress-node BFR-id, egress-nodes | |||
| BFR-id). If no (ingress-node, egress-nodes) information are defined | BFR-id). If no (ingress-node, egress-nodes) information are defined | |||
| directly, there may need overlay multicast signaling technology, such | directly, there may need overlay multicast signaling technology, such | |||
| as MLD or MVPN, to collect these nodes information. | as MLD or MVPN, to collect these nodes information. | |||
| Multicast transport layer defines the type of transport technologies | Multicast transport layer defines the type of transport technologies | |||
| that can be used to forward multicast flow, including BIER forwarding | that can be used to forward multicast flow, including BIER forwarding | |||
| type, MPLS forwarding type, or PIM forwarding type and so on. One or | type, MPLS forwarding type, or PIM forwarding type and so on. One or | |||
| several transport technologies could be defined at the same time. As | several transport technologies could be defined at the same time. As | |||
| for the detailed parameters for each transport technology, this | for the detailed parameters for each transport technology, this | |||
| multicast YANG data model can invoke the corresponding protocol model | multicast YANG data model may invoke the corresponding protocol model | |||
| to define them. | to define them. | |||
| Multicast underlay defines the type of underlay technologies, such as | Multicast underlay defines the type of underlay technologies, such as | |||
| OSPF, ISIS, BGP, PIM or BABEL and so on. One or several underlay | OSPF, ISIS, BGP, PIM or BABEL and so on. One or several underlay | |||
| technologies could be defined at the same time if there is protective | technologies could be defined at the same time if there is protective | |||
| requirement. As for the specific parameters for each underlay | requirement. As for the specific parameters for each underlay | |||
| technology, this multicast YANG data model can depend the | technology, this multicast YANG data model can depend the | |||
| corresponding protocol model to configure them as well. | corresponding protocol model to configure them as well. | |||
| The configuration modeling branch is composed of the keys, overlay | The configuration modeling branch is composed of the keys, overlay | |||
| layer, transport layer and underlay layer. | layer, transport layer and underlay layer. | |||
| 3.4. Multicast YANG data model State | 3.4. Multicast YANG data model State | |||
| Multicast model states are the same with the configuration. | Multicast model states are the same with the configuration. | |||
| 3.5. Multicast YANG data model Notification | 3.5. Multicast YANG data model Notification | |||
| The defined Notifications include the events of head end nodes. Like | The defined Notifications include the events of ingress or egress | |||
| head node failer, overlay/ transport/ underlay module loading/ | nodes. Like ingress node failure, overlay/ transport/ underlay | |||
| unloading. And the potential failer about some multicast flows and | module loading/ unloading. And the potential failure about some | |||
| associated overlay/ transport/ underlay technologies. | multicast flows and associated overlay/ transport/ underlay | |||
| technologies. | ||||
| 4. Multicast YANG data Model | 4. Multicast YANG data Model | |||
| This module references [RFC1195], [RFC2328], [RFC4271], [RFC4541], | This module references [RFC1195], [RFC2328], [RFC4271], [RFC4541], | |||
| [RFC4875], [RFC5340], [RFC6037], [RFC6388], [RFC6513], [RFC6991], | [RFC4875], [RFC5340], [RFC6037], [RFC6388], [RFC6513], [RFC6991], | |||
| [RFC7348], [RFC7432], [RFC7637], [RFC7716], [RFC7761], [RFC8279], | [RFC7348], [RFC7432], [RFC7637], [RFC7716], [RFC7761], [RFC8279], | |||
| [RFC8294], [RFC8296], [RFC8343], [RFC8344], [RFC8349], [RFC8639], | [RFC8294], [RFC8296], [RFC8343], [RFC8344], [RFC8349], [RFC8639], | |||
| [RFC8641], [I-D.ietf-pim-yang], [I-D.ietf-bier-bier-yang], | [RFC8641], [RFC8926], [RFC8966], [I-D.ietf-pim-yang], | |||
| [I-D.ietf-bier-te-arch], [I-D.ietf-nvo3-geneve], [I-D.ietf-bier-mld], | [I-D.ietf-bier-bier-yang], [I-D.ietf-bier-te-arch], | |||
| [I-D.ietf-bess-evpn-bum-procedure-updates], [I-D.ietf-bier-evpn], | [I-D.ietf-bier-mld], [I-D.ietf-bess-evpn-bum-procedure-updates], | |||
| [I-D.zhang-bier-bierin6], [I-D.ietf-babel-rfc6126bis], | [I-D.ietf-bier-evpn], [I-D.ietf-bier-bierin6], | |||
| [I-D.ietf-bier-pim-signaling]. | [I-D.ietf-bier-pim-signaling], [I-D.ietf-rift-rift], | |||
| [I-D.ietf-isis-yang-isis-cfg]. | ||||
| <CODE BEGINS> file "ietf-multicast-model@2020-10-28.yang" | ||||
| module ietf-multicast-model { | ||||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-multicast-model"; | ||||
| prefix multicast-model; | ||||
| import ietf-inet-types { | <CODE BEGINS> file "ietf-multicast-model@2021-08-26.yang" | |||
| prefix "inet"; | module ietf-multicast-model { | |||
| reference | ||||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| import ietf-routing-types { | ||||
| prefix "rt-types"; | ||||
| reference | ||||
| "RFC 8294: Common YANG Data Types for the Routing Area"; | ||||
| } | ||||
| import ietf-routing { | ||||
| prefix "rt"; | ||||
| reference | ||||
| "RFC 8349: A YANG Data Model for Routing Management | ||||
| (NMDA Version)"; | ||||
| } | ||||
| import ietf-ospf { | ||||
| prefix "ospf"; | ||||
| reference | ||||
| "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; | ||||
| } | ||||
| organization " IETF MBONED (MBONE Deployment) Working Group"; | yang-version 1.1; | |||
| contact | ||||
| "WG List: <mailto:mboned@ietf.org> | ||||
| Editor: Zheng Zhang | namespace "urn:ietf:params:xml:ns:yang:ietf-multicast-model"; | |||
| <mailto:zhang.zheng@zte.com.cn> | prefix ietf-multicast-model; | |||
| Editor: Cui Wang | ||||
| <mailto:lindawangjoy@gmail.com> | ||||
| Editor: Ying Cheng | ||||
| <mailto:chengying10@chinaunicom.cn> | ||||
| Editor: Xufeng Liu | ||||
| <mailto:xufeng.liu.ietf@gmail.com> | ||||
| Editor: Mahesh Sivakumar | ||||
| <mailto:sivakumar.mahesh@gmail.com> | ||||
| "; | ||||
| // RFC Ed.: replace XXXX with actual RFC number and remove | import ietf-yang-types { | |||
| // this note | prefix "yang"; | |||
| reference | ||||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| description | import ietf-inet-types { | |||
| "The module defines the YANG definitions for multicast service | prefix "inet"; | |||
| management. | reference | |||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| import ietf-routing-types { | ||||
| prefix "rt-types"; | ||||
| reference | ||||
| "RFC 8294: Common YANG Data Types for the Routing Area"; | ||||
| } | ||||
| import ietf-routing { | ||||
| prefix "rt"; | ||||
| reference | ||||
| "RFC 8349: A YANG Data Model for Routing Management | ||||
| (NMDA Version)"; | ||||
| } | ||||
| Copyright (c) 2020 IETF Trust and the persons identified as | organization " IETF MBONED (MBONE Deployment) Working Group"; | |||
| authors of the code. All rights reserved. | contact | |||
| "WG List: <mailto:mboned@ietf.org> | ||||
| Editor: Zheng Zhang | ||||
| <mailto:zhang.zheng@zte.com.cn> | ||||
| Editor: Cui Wang | ||||
| <mailto:lindawangjoy@gmail.com> | ||||
| Editor: Ying Cheng | ||||
| <mailto:chengying10@chinaunicom.cn> | ||||
| Editor: Xufeng Liu | ||||
| <mailto:xufeng.liu.ietf@gmail.com> | ||||
| Editor: Mahesh Sivakumar | ||||
| <mailto:sivakumar.mahesh@gmail.com> | ||||
| "; | ||||
| Redistribution and use in source and binary forms, with or | // RFC Ed.: replace XXXX with actual RFC number and remove | |||
| without modification, is permitted pursuant to, and subject | // this note | |||
| to the license terms contained in, the Simplified BSD | ||||
| License set forth in Section 4.c of the IETF Trust's Legal | ||||
| Provisions Relating to IETF Documents | ||||
| (https://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX | description | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC | "The module defines the YANG definitions for multicast service | |||
| itself for full legal notices. | management. | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | Copyright (c) 2021 IETF Trust and the persons identified as | |||
| 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | authors of the code. All rights reserved. | |||
| 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | ||||
| are to be interpreted as described in BCP 14 (RFC 2119) | ||||
| (RFC 8174) when, and only when, they appear in all | ||||
| capitals, as shown here."; | ||||
| revision 2020-09-30 { | Redistribution and use in source and binary forms, with or | |||
| description | without modification, is permitted pursuant to, and subject | |||
| "Initial revision."; | to the license terms contained in, the Simplified BSD | |||
| reference | License set forth in Section 4.c of the IETF Trust's Legal | |||
| "RFC XXXX: A YANG Data Model for multicast YANG."; | Provisions Relating to IETF Documents | |||
| } | (https://trustee.ietf.org/license-info). | |||
| /* | This version of this YANG module is part of RFC XXXX | |||
| *typedef | (https://www.rfc-editor.org/info/rfcXXXX); see the RFC | |||
| */ | itself for full legal notices. | |||
| typedef ip-multicast-source-address { | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | |||
| type union { | 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | |||
| type rt-types:ipv4-multicast-source-address; | 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | |||
| type rt-types:ipv6-multicast-source-address; | are to be interpreted as described in BCP 14 (RFC 2119) | |||
| } | (RFC 8174) when, and only when, they appear in all | |||
| description | capitals, as shown here."; | |||
| "This type represents a version-neutral IP multicast | ||||
| source address. The format of the textual | ||||
| representation implies the IP version."; | ||||
| reference | ||||
| "RFC8294: Common YANG Data Types for the Routing Area."; | ||||
| } | ||||
| typedef virtual-type { | revision 2021-08-26 { | |||
| type enumeration { | description | |||
| enum vxlan { | "Initial revision."; | |||
| description | reference | |||
| "The VXLAN encapsulation is used for flow encapsulation."; | "RFC XXXX: A YANG Data Model for multicast YANG."; | |||
| reference | } | |||
| "RFC 7348: Virtual eXtensible Local Area Network (VXLAN): | ||||
| A Framework for Overlaying Virtualized Layer 2 Networks | ||||
| over Layer 3 Networks."; | ||||
| } | ||||
| enum nvgre { | ||||
| description | ||||
| "The NVGRE encapsulation is used for flow encapsulation."; | ||||
| reference | ||||
| "RFC 7637: NVGRE: Network Virtualization Using Generic | ||||
| Routing Encapsulation."; | ||||
| } | ||||
| enum geneve { | ||||
| description | ||||
| "The GENEVE encapsulation is used for flow encapsulation."; | ||||
| reference | /* | |||
| "I-D.ietf-nvo3-geneve: Geneve: Generic Network | *feature | |||
| Virtualization Encapsulation."; | */ | |||
| } | feature bier { | |||
| } | description | |||
| description | "Cooperation with BIER technology."; | |||
| "The encapsulation type used for the flow. In case the virtual | reference | |||
| type is set, the associated vni-value should also be defined."; | "RFC 8279: | |||
| } // virtual-type | Multicast Using Bit Index Explicit Replication (BIER)."; | |||
| } | ||||
| /* | /* | |||
| * Identities | *typedef | |||
| */ | */ | |||
| typedef ip-multicast-source-address { | ||||
| type union { | ||||
| type enumeration { | ||||
| enum * { | ||||
| description | ||||
| "Any source address."; | ||||
| } | ||||
| } | ||||
| type inet:ipv4-address; | ||||
| type inet:ipv6-address; | ||||
| } | ||||
| description | ||||
| "Multicast source IP address type."; | ||||
| } | ||||
| typedef tree-sid { | ||||
| type union { | ||||
| type rt-types:mpls-label; | ||||
| type inet:ip-prefix; | ||||
| } | ||||
| description | ||||
| "The type of the Segment Identifier of a Replication segment | ||||
| is a SR-MPLS label or a SRv6 SID."; | ||||
| } | ||||
| typedef virtual-type { | ||||
| type enumeration { | ||||
| enum vxlan { | ||||
| description | ||||
| "The VXLAN encapsulation is used for flow encapsulation."; | ||||
| reference | ||||
| "RFC 7348: Virtual eXtensible Local Area Network (VXLAN): | ||||
| A Framework for Overlaying Virtualized Layer 2 Networks | ||||
| over Layer 3 Networks."; | ||||
| } | ||||
| enum nvgre { | ||||
| description | ||||
| "The NVGRE encapsulation is used for flow encapsulation."; | ||||
| reference | ||||
| "RFC 7637: NVGRE: Network Virtualization Using Generic | ||||
| Routing Encapsulation."; | ||||
| } | ||||
| enum geneve { | ||||
| description | ||||
| "The GENEVE encapsulation is used for flow encapsulation."; | ||||
| reference | ||||
| "RFC 8926: Geneve: Generic Network | ||||
| Virtualization Encapsulation."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The encapsulation type used for the flow. | ||||
| When this type is set, the associated vni-value | ||||
| MUST be set."; | ||||
| } // virtual-type | ||||
| identity multicast-model { | /* | |||
| base rt:control-plane-protocol; | * Identities | |||
| description "Identity for the Multicast model."; | */ | |||
| } | ||||
| grouping general-multicast-key { | identity multicast-model { | |||
| description | base "rt:control-plane-protocol"; | |||
| "The general multicast keys. They are used to distinguish | description "Identity for the multicast model."; | |||
| different multicast service."; | } | |||
| leaf vpn-rd { | identity overlay-type { | |||
| type rt-types:route-distinguisher; | description | |||
| description | "Base identity for the type of multicast overlay technology."; | |||
| "A Route Distinguisher used to distinguish | } | |||
| routes from different MVPNs."; | identity transport-type { | |||
| reference | description "Identity for the multicast transport technology."; | |||
| "RFC 8294: Common YANG Data Types for the Routing Area. | } | |||
| RFC 6513: Multicast in MPLS/BGP IP VPNs."; | identity underlay-type { | |||
| } | description "Identity for the multicast underlay technology."; | |||
| leaf source-address { | } | |||
| type ip-multicast-source-address; | identity overlay-pim { | |||
| description | base overlay-type; | |||
| "The IPv4/IPv6 source address of the multicast flow. The | description | |||
| value set to zero means that the receiver interests | "Using PIM as multicast overlay technology. | |||
| in all source that relevant to one given group."; | For example, as BIER overlay."; | |||
| } | reference | |||
| leaf group-address { | "I-D.ietf-bier-pim-signaling: | |||
| type rt-types:ip-multicast-group-address; | PIM Signaling Through BIER Core."; | |||
| description | } | |||
| "The IPv4/IPv6 group address of multicast flow. This | identity mld { | |||
| type represents a version-neutral IP multicast group | base overlay-type; | |||
| address. The format of the textual representation | description | |||
| implies the IP version."; | "Using MLD as multicast overlay technology. | |||
| reference | For example, as BIER overlay."; | |||
| "RFC8294: Common YANG Data Types for the Routing Area."; | reference | |||
| "I-D.ietf-bier-mld: | ||||
| BIER Ingress Multicast Flow Overlay | ||||
| using Multicast Listener Discovery Protocols."; | ||||
| } | ||||
| identity mld-snooping { | ||||
| base overlay-type; | ||||
| description | ||||
| "Using MLD as multicast overlay technology. | ||||
| For example, as BIER overlay."; | ||||
| reference | ||||
| "RFC 4541: | ||||
| Considerations for Internet Group Management | ||||
| Protocol (IGMP) and Multicast Listener | ||||
| Discovery (MLD) Snooping Switches."; | ||||
| } | ||||
| identity evpn { | ||||
| base overlay-type; | ||||
| description | ||||
| "Using EVPN as multicast overlay technology."; | ||||
| reference | ||||
| "RFC 7432: BGP MPLS-Based Ethernet VPN. | ||||
| I-D.ietf-bess-evpn-bum-procedure-updates: | ||||
| Updates on EVPN BUM Procedures. | ||||
| I-D.ietf-bier-evpn: EVPN BUM Using BIER."; | ||||
| } | ||||
| identity mvpn { | ||||
| base overlay-type; | ||||
| description | ||||
| "Using MVPN as multicast overlay technology."; | ||||
| reference | ||||
| "RFC 6513: Multicast in MPLS/BGP IP VPNs. | ||||
| RFC 7716: | ||||
| Global Table Multicast with BGP Multicast VPN | ||||
| (BGP-MVPN) Procedures."; | ||||
| } | ||||
| identity bier { | ||||
| base transport-type; | ||||
| description | ||||
| "Using BIER as multicast transport technology."; | ||||
| reference | ||||
| "RFC 8279: | ||||
| Multicast Using Bit Index Explicit Replication (BIER)."; | ||||
| } | ||||
| identity bier-te { | ||||
| base transport-type; | ||||
| description | ||||
| "Using BIER-TE as multicast transport technology."; | ||||
| reference | ||||
| "I-D.ietf-bier-te-arch: | ||||
| Traffic Engineering for Bit Index Explicit Replication | ||||
| (BIER-TE)"; | ||||
| } | ||||
| identity mldp { | ||||
| base transport-type; | ||||
| description | ||||
| "Using mLDP as multicast transport technology."; | ||||
| reference | ||||
| "RFC 6388: | ||||
| Label Distribution Protocol Extensions | ||||
| for Point-to-Multipoint and Multipoint-to-Multipoint | ||||
| Label Switched Paths. | ||||
| I-D.ietf-mpls-mldp-yang: YANG Data Model for MPLS mLDP."; | ||||
| } | ||||
| identity rsvp-te-p2mp { | ||||
| base transport-type; | ||||
| description | ||||
| "Using P2MP TE as multicast transport technology."; | ||||
| reference | ||||
| "RFC 4875: | ||||
| Extensions to Resource Reservation Protocol | ||||
| - Traffic Engineering (RSVP-TE) for Point-to-Multipoint | ||||
| TE Label Switched Paths (LSPs)."; | ||||
| } | ||||
| identity sr-p2mp { | ||||
| base transport-type; | ||||
| description | ||||
| "Using Segment Routing as multicast transport technology."; | ||||
| reference | ||||
| "I-D.ietf-pim-sr-p2mp-policy: | ||||
| Segment Routing Point-to-Multipoint Policy."; | ||||
| } | ||||
| identity cisco-mdt { | ||||
| base transport-type; | ||||
| description | ||||
| "Using cisco MDT for multicast transport technology."; | ||||
| reference | ||||
| "RFC 6037: | ||||
| Cisco Systems' Solution for Multicast in BGP/MPLS IP VPNs"; | ||||
| } | ||||
| identity pim { | ||||
| base transport-type; | ||||
| base underlay-type; | ||||
| description | ||||
| "Using PIM as multicast transport technology."; | ||||
| reference | ||||
| "RFC 7761: | ||||
| Protocol Independent Multicast - Sparse Mode | ||||
| (PIM-SM): Protocol Specification (Revised)."; | ||||
| } | ||||
| identity bgp { | ||||
| base underlay-type; | ||||
| description | ||||
| "Using BGP as underlay technology to build the multicast | ||||
| transport layer. For example, using BGP as BIER underlay."; | ||||
| reference | ||||
| "I-D.ietf-bier-idr-extensions: BGP Extensions for BIER."; | ||||
| } | ||||
| identity ospf { | ||||
| base underlay-type; | ||||
| description | ||||
| "Using OSPF as multicast underlay technology. | ||||
| For example, using OSPF as BIER underlay."; | ||||
| reference | ||||
| "RFC 8444: | ||||
| OSPFv2 Extensions for Bit Index Explicit Replication (BIER), | ||||
| I-D.ietf-bier-ospfv3-extensions: | ||||
| OSPFv3 Extensions for BIER."; | ||||
| } | ||||
| identity isis { | ||||
| base underlay-type; | ||||
| description | ||||
| "Using ISIS as multicast underlay technology. | ||||
| For example, using ISIS as BIER underlay."; | ||||
| reference | ||||
| "RFC 8401: | ||||
| Bit Index Explicit Replication (BIER) Support via IS-IS"; | ||||
| } | ||||
| identity babel { | ||||
| base underlay-type; | ||||
| description | ||||
| "Using BABEL as multicast underlay technology. | ||||
| For example, using BABEL as BIER underlay."; | ||||
| reference | ||||
| "RFC 8966: The Babel Routing Protocol | ||||
| I-D.zhang-bier-babel-extensions: BIER in BABEL"; | ||||
| } | ||||
| identity rift { | ||||
| base underlay-type; | ||||
| description | ||||
| "Using RIFT as multicast underlay technology. | ||||
| } | For example, using RIFT as BIER underlay."; | |||
| leaf vni-type { | reference | |||
| type virtual-type; | "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. | |||
| description | I-D.zzhang-bier-rift: Supporting BIER with RIFT"; | |||
| "The type of virtual network identifier. Includes the | } | |||
| Vxlan, NVGRE and Geneve. This value and vni-value is | ||||
| used to indicate a specific virtual multicast service."; | ||||
| } | ||||
| leaf vni-value { | ||||
| type uint32; | ||||
| description | ||||
| "The value of Vxlan network identifier, virtual subnet ID | ||||
| or virtual net identifier. This value and vni-type is used | ||||
| to indicate a specific virtual multicast service."; | ||||
| } | ||||
| } // general-multicast-key | ||||
| grouping encap-type { | grouping general-multicast-key { | |||
| description | description | |||
| "The encapsulation type used for flow forwarding."; | "The general multicast keys. They are used to distinguish | |||
| choice encap-type { | different multicast service."; | |||
| case mpls { | leaf vpn-rd { | |||
| description "The BIER forwarding depends on mpls."; | type rt-types:route-distinguisher; | |||
| reference | description | |||
| "RFC 8296: Encapsulation for Bit Index Explicit | "A Route Distinguisher used to distinguish | |||
| Replication (BIER) in MPLS and Non-MPLS Networks."; | routes from different MVPNs."; | |||
| } | reference | |||
| case eth { | "RFC 8294: Common YANG Data Types for the Routing Area. | |||
| description "The BIER forwarding depends on ethernet."; | RFC 6513: Multicast in MPLS/BGP IP VPNs."; | |||
| reference | } | |||
| "RFC 8296: Encapsulation for Bit Index Explicit | leaf source-address { | |||
| Replication (BIER) in MPLS and Non-MPLS Networks."; | type ip-multicast-source-address; | |||
| } | description | |||
| case ipv6 { | "The IPv4/IPv6 source address of the multicast flow. The | |||
| description "The BIER forwarding depends on IPv6."; | value set to zero means that the receiver interests | |||
| reference | in all source that relevant to one given group."; | |||
| "I-D.zhang-bier-bierin6: BIER in IPv6 (BIERin6)"; | } | |||
| } | leaf group-address { | |||
| description "The encapsulation type in BIER."; | type rt-types:ip-multicast-group-address; | |||
| } | description | |||
| } // encap-type | "The IPv4/IPv6 group address of multicast flow. This | |||
| type represents a version-neutral IP multicast group | ||||
| address. The format of the textual representation | ||||
| implies the IP version."; | ||||
| reference | ||||
| "RFC 8294: Common YANG Data Types for the Routing Area."; | ||||
| } | ||||
| leaf mac-address { | ||||
| type yang:mac-address; | ||||
| description | ||||
| "The mac address of flow. In the EVPN situation, the L2 | ||||
| flow that is called | ||||
| BUM (Broadcast, Unknown Unicast, Multicast) | ||||
| can be sent to the other PEs that | ||||
| are in a same broadcast domain."; | ||||
| reference | ||||
| "RFC 6991: Common YANG Data Types. | ||||
| RFC 7432: BGP MPLS-Based Ethernet VPN."; | ||||
| } | ||||
| leaf vni-value { | ||||
| type uint32; | ||||
| description | ||||
| "The value of Vxlan network identifier, virtual subnet ID | ||||
| or virtual net identifier. This value and vni-type is used | ||||
| to indicate a specific virtual multicast service."; | ||||
| } | ||||
| } // general-multicast-key | ||||
| grouping bier-key { | grouping encap-type { | |||
| description | description | |||
| "The key parameters set for BIER/BIER TE forwarding."; | "The encapsulation type used for flow forwarding. | |||
| reference | This encapsulation acts as the inner encapsulation, | |||
| "RFC 8279: Multicast Using Bit Index Explicit Replication | as compare to the outer multicast-transport encapsulation."; | |||
| (BIER)."; | choice encap-type { | |||
| case mpls { | ||||
| description "The BIER forwarding depends on mpls."; | ||||
| reference | ||||
| "RFC 8296: Encapsulation for Bit Index Explicit | ||||
| Replication (BIER) in MPLS and Non-MPLS Networks."; | ||||
| } | ||||
| case eth { | ||||
| description "The BIER forwarding depends on ethernet."; | ||||
| reference | ||||
| "RFC 8296: Encapsulation for Bit Index Explicit | ||||
| Replication (BIER) in MPLS and Non-MPLS Networks."; | ||||
| } | ||||
| case ipv6 { | ||||
| description "The BIER forwarding depends on IPv6."; | ||||
| reference | ||||
| "I-D.ietf-bier-bierin6: BIER in IPv6 (BIERin6)"; | ||||
| } | ||||
| description "The encapsulation type in BIER."; | ||||
| } | ||||
| } // encap-type | ||||
| leaf sub-domain { | grouping bier-key { | |||
| type uint16; | description | |||
| description | "The key parameters set for BIER/BIER TE forwarding."; | |||
| "The subdomain id that the multicast flow belongs to."; | reference | |||
| } | "RFC 8279: Multicast Using Bit Index Explicit Replication | |||
| leaf bitstringlength { | (BIER)."; | |||
| type uint16; | ||||
| description | ||||
| "The bitstringlength used by BIER forwarding."; | ||||
| } | ||||
| leaf set-identifier { | ||||
| type uint16; | ||||
| description | ||||
| "The set identifier used by the multicast flow."; | ||||
| } | ||||
| uses encap-type; | ||||
| } | ||||
| grouping lsp { | leaf sub-domain { | |||
| description "The lsp information."; | type uint16; | |||
| leaf root-address { | description | |||
| type ip-multicast-source-address; | "The subdomain id that the multicast flow belongs to."; | |||
| description | } | |||
| "Root address of the mldp fec."; | leaf bitstringlength { | |||
| } | type uint16; | |||
| leaf lsp-id { | description | |||
| type uint32; | "The bitstringlength used by BIER forwarding."; | |||
| description | } | |||
| "The lsp id that corresponding this flow."; | leaf set-identifier { | |||
| } | type uint16; | |||
| leaf backup-lsp-id { | description | |||
| type uint32; | "The set identifier used by the multicast flow."; | |||
| description | } | |||
| "The backup lsp id that corresponding this flow. | uses encap-type; | |||
| In case the lsp fails, the backup lsp can be used."; | } | |||
| } | ||||
| } // lsp | ||||
| grouping transport-tech { | grouping transport-tech { | |||
| choice transport { | description | |||
| description "The selected transport technology."; | "The transport technology selected for the multicast service. | |||
| container bier { | For one specific multicast flow, it's better to use only one | |||
| description | transport technology for forwarding."; | |||
| "The transport technology is BIER. The BIER technology | ||||
| is introduced in RFC8279. The parameter is consistent | ||||
| with the definition in BIER YANG data model."; | ||||
| reference | ||||
| "RFC 8279: Multicast Using Bit Index Explicit | ||||
| Replication (BIER). | ||||
| I-D.ietf-bier-bier-yang: YANG Data Model for BIER | ||||
| Protocol."; | ||||
| uses bier-key; | leaf type { | |||
| } | type identityref { | |||
| base transport-type; | ||||
| } | ||||
| description "The type of transport technology"; | ||||
| } | ||||
| container bier { | ||||
| when "../type = 'ietf-multicast-model:bier'" { | ||||
| description | ||||
| "Only when BIER is used as transport technology."; | ||||
| } | ||||
| description | ||||
| "The transport technology is BIER. The BIER technology | ||||
| is introduced in RFC8279. The parameters are consistent | ||||
| with the definition in BIER YANG data model."; | ||||
| reference | ||||
| "I-D.ietf-bier-bier-yang: | ||||
| YANG Data Model for BIER Protocol."; | ||||
| uses bier-key; | ||||
| } | ||||
| container bier-te { | ||||
| when "../type = 'ietf-multicast-model:bier-te'" { | ||||
| description | ||||
| "Only when BIER-TE is used as transport technology."; | ||||
| } | ||||
| description | ||||
| "The BIER-TE parameter that may need to be set. | ||||
| The parameters are consistent with the definition in | ||||
| BIER and BIER TE YANG data model."; | ||||
| container bier-te { | reference | |||
| description | "I-D.ietf-bier-bier-yang: | |||
| "The transport technology is BIER-TE."; | YANG Data Model for BIER Protocol | |||
| reference | I-D.ietf-bier-te-yang: | |||
| "I-D.ietf-bier-te-arch: Traffic Engineering for Bit Index | A YANG data model for Traffic Engineering for Bit Index | |||
| Explicit Replication (BIER-TE)"; | Explicit Replication (BIER-TE)"; | |||
| uses bier-key; | uses bier-key; | |||
| leaf-list bier-te-adj { | list bitstring { | |||
| type uint16; | key "name"; | |||
| leaf name { | ||||
| type string; | ||||
| description "The name of the bitstring"; | ||||
| } | ||||
| list bier-te-adj { | ||||
| key "adj-id"; | ||||
| leaf adj-id { | ||||
| type uint16; | ||||
| description | ||||
| "The link adjacency ID used for BIER TE forwarding."; | ||||
| } | ||||
| description | ||||
| "The adjacencies ID used for BIER TE bitstring | ||||
| encapsulation."; | ||||
| } | ||||
| description | ||||
| "The bitstring name and detail used for BIER TE | ||||
| forwarding encapsulation. One or more bitstring can be | ||||
| used for backup path."; | ||||
| } | ||||
| } | ||||
| container cisco-mdt { | ||||
| when "../type = 'ietf-multicast-model:cisco-mdt'" { | ||||
| description | description | |||
| "The adjacencies ID used in BIER TE forwarding | "Only when cisco MDT is used as transport technology."; | |||
| encapsulation."; | } | |||
| } | description "The MDT parameter that may need to be set."; | |||
| } | leaf p-group { | |||
| type rt-types:ip-multicast-group-address; | ||||
| container cisco-mode { | description | |||
| "The address of p-group. It is used to encapsulate | ||||
| and forward flow according to multicast tree from | ||||
| ingress node to egress nodes."; | ||||
| } | ||||
| } | ||||
| container rsvp-te-p2mp { | ||||
| when "../type = 'ietf-multicast-model:rsvp-te-p2mp'" { | ||||
| description | description | |||
| "The transport technology is cisco-mode: Cisco MDT."; | "Only when RSVP TE P2MP is used as transport technology."; | |||
| reference | } | |||
| "RFC 6037: Cisco Systems' Solution for Multicast in | description | |||
| BGP/MPLS IP VPNs"; | "The parameter that may be set. They are consistent with | |||
| the definition in TE data model."; | ||||
| reference | ||||
| "RFC 8776: Common YANG Data Types for Traffic Engineering"; | ||||
| leaf p-group { | leaf template-name { | |||
| type rt-types:ip-multicast-group-address; | type string { | |||
| pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; | ||||
| } | ||||
| description | ||||
| "A type for the name of a TE node template or TE link | ||||
| template."; | ||||
| } | ||||
| } | ||||
| container pim { | ||||
| when "../type = 'ietf-multicast-model:pim'" { | ||||
| description | description | |||
| "The address of p-group. It is used to encapsulate | "Only when PIM is used as transport technology."; | |||
| and forward flow according to multicast tree from | } | |||
| ingress node to egress nodes."; | description "The PIM parameter that may need to be set."; | |||
| } | uses pim; | |||
| uses transport-pim; | } | |||
| } | container sr-p2mp { | |||
| when "../type = 'ietf-multicast-model:sr-p2mp'" { | ||||
| container mpls { | description | |||
| description | "Only when segment routing P2MP is used as transport | |||
| "The transport technology is mpls. Multicast overlay can use | technology."; | |||
| mpls technologies to build transport layer."; | } | |||
| reference | description "The SR-P2MP parameter that may need to be set."; | |||
| "RFC 6513: Multicast in MPLS/BGP IP VPNs."; | list ir-segment-lists { | |||
| key "name"; | ||||
| choice mpls-lsp-type { | leaf name { | |||
| case mldp { | type string; | |||
| description | description "Segment-list name"; | |||
| "The mldp type of lsp is used as multicast | } | |||
| transportation. | description | |||
| The YANG data model defined in 'ietf-mpls-mldp-yang' | "The segment lists used for ingress replication. | |||
| can be invoked."; | The name refers a segment list."; | |||
| reference | } | |||
| "RFC 6388: Label Distribution Protocol Extensions | ||||
| for Point-to-Multipoint and Multipoint-to-Multipoint | ||||
| Label Switched Paths. | ||||
| I-D.ietf-mpls-mldp-yang: | ||||
| YANG Data Model for MPLS mLDP."; | ||||
| container mldp-lsp { | ||||
| description | ||||
| "The specific parameters can be set to use | ||||
| the specific mldp fec."; | ||||
| uses lsp; | ||||
| } | ||||
| } | ||||
| case p2mp-te { | ||||
| description | ||||
| "The p2mp te type of lsp is used as multicast | ||||
| transportation."; | ||||
| reference | ||||
| "RFC 4875: Extensions to Resource Reservation Protocol | ||||
| - Traffic Engineering (RSVP-TE) for Point-to-Multipoint | ||||
| TE Label Switched Paths (LSPs)."; | ||||
| container p2mp-te-lsp { | list replication-segment { | |||
| description | key "replication-id node-id"; | |||
| "The specific parameters can be set to use | leaf replication-id { | |||
| the specific mldp fec."; | type tree-sid; | |||
| uses lsp; | description | |||
| } | "The identifier for a Replication segment that is | |||
| } | unique in context of the Replication Node. | |||
| description "The collection types of mpls tunnels"; | This is a SR-MPLS label or a SRv6 SID"; | |||
| } | } | |||
| } // mpls | leaf node-id { | |||
| type inet:ip-address; | ||||
| description | ||||
| "The address of the Replication Node that the | ||||
| Replication segment is for."; | ||||
| } | ||||
| description | ||||
| "A Multi-point service delivery could be realized via | ||||
| P2MP trees in a Segment Routing domain. | ||||
| It may consist of one or more Replication segment"; | ||||
| reference | ||||
| "I-D.ietf-spring-sr-replication-segment: | ||||
| SR Replication Segment for Multi-point Service | ||||
| Delivery."; | ||||
| } | ||||
| } // sr-p2mp | ||||
| } // transport-tech | ||||
| container pim { | grouping underlay-tech { | |||
| description | description | |||
| "The transport technology is PIM. PIM is used | "The underlay technology selected for the transport layer. | |||
| commonly in traditional network."; | The underlay technology has no straight relationship with | |||
| reference | the multicast overlay, it is used for transport path | |||
| "RFC 7761: Protocol Independent Multicast - Sparse Mode | building, for example BIER forwarding path building."; | |||
| (PIM-SM): Protocol Specification (Revised)."; | ||||
| uses transport-pim; | leaf type { | |||
| } | type identityref { | |||
| } // choice | base underlay-type; | |||
| } // transport-tech | } | |||
| description "The type of underlay technology"; | ||||
| } | ||||
| container ospf { | ||||
| when "../type = 'ietf-multicast-model:ospf'" { | ||||
| description | ||||
| "Only when OSPF is used as underay technology."; | ||||
| } | ||||
| description | ||||
| "If OSPF protocol supports multiple topology feature, | ||||
| the associated topology name may be assigned. | ||||
| In case the topology name is assigned, the specific | ||||
| OSPF topology is used for underly to building the | ||||
| transport layer."; | ||||
| reference | ||||
| "RFC 4915: Multi-Topology Routing"; | ||||
| leaf topology { | ||||
| type string; | ||||
| description | ||||
| "The designed topology name of ospf protocol."; | ||||
| } | ||||
| } | ||||
| container isis { | ||||
| when "../type = 'ietf-multicast-model:isis'" { | ||||
| description | ||||
| "Only when ISIS is used as underay technology."; | ||||
| } | ||||
| description | ||||
| "If ISIS protocol supports multiple topology feature, | ||||
| the associated topology name may be assigned. | ||||
| In case the topology name is assigned, the specific | ||||
| ISIS topology is used for underly to building the | ||||
| transport layer."; | ||||
| reference | ||||
| "RFC 5120: M-IS-IS: Multi Topology Routing in IS-IS"; | ||||
| leaf topology { | ||||
| type string; | ||||
| description | ||||
| "The designed topology name of isis protocol."; | ||||
| } | ||||
| } | ||||
| container pim { | ||||
| when "../type = 'ietf-multicast-model:pim'" { | ||||
| description | ||||
| "Only when PIM is used as underay technology."; | ||||
| } | ||||
| description "The PIM parameter that may need to be set."; | ||||
| uses pim; | ||||
| } | ||||
| } // underlay-tech | ||||
| grouping underlay-tech { | /*overlay*/ | |||
| choice underlay { | ||||
| case bgp { | ||||
| description | ||||
| "The underlay technology is BGP. BGP protocol | ||||
| should run if BGP is used as underlay protocol."; | ||||
| reference | ||||
| "RFC 4271: A Border Gateway Protocol 4 (BGP-4)"; | ||||
| } | ||||
| container ospf { | ||||
| description | ||||
| "The underlay technology is OSPF. OSPF protocol | ||||
| should be triggered to run if OSPF is used as underlay | ||||
| protocol."; | ||||
| reference | ||||
| "RFC 2328: OSPF Version 2. | ||||
| RFC 5340: OSPF for IPv6. | ||||
| I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol."; | ||||
| leaf topology { | grouping overlay-tech { | |||
| type leafref { | container dynamic-overlay { | |||
| path "/rt:routing/rt:control-plane-protocols/" | leaf type { | |||
| + "rt:control-plane-protocol/ospf:ospf/" | type identityref { | |||
| + "ospf:topologies/ospf:topology/ospf:name"; | base overlay-type; | |||
| } | } | |||
| description | description "The type of overlay technology"; | |||
| "The designed topology name of ospf protocol."; | } | |||
| } | container mld { | |||
| } | when "../type = 'ietf-multicast-model:mld'" { | |||
| case isis { | description | |||
| description | "Only when MLD is used as overlay technology."; | |||
| "The underlay technology is ISIS. ISIS protocol should | } | |||
| be triggered to run if ISIS is used as underlay protocol. | description "The MLD parameter that may need to be set."; | |||
| And the associated extensions can be used."; | leaf mld-instance-group { | |||
| reference | type rt-types:ip-multicast-group-address; | |||
| "RFC 1195: Use of OSI IS-IS for Routing in TCP/IP and | description | |||
| Dual Environments"; | "The multicast address used for multiple MLD instance | |||
| } | support."; | |||
| case babel { | } | |||
| description | } | |||
| "The underlay technology is Babel. Babel protocol | description | |||
| should be triggered to run if Babel is used as | "The dynamic overlay technologies and associated parameter | |||
| underlay protocol."; | that may be set."; | |||
| } | ||||
| description "The overlay technology used for multicast service."; | ||||
| } // overlay-tech | ||||
| reference | /*transport*/ | |||
| "I-D.ietf-babel-rfc6126bis: The Babel Routing Protocol."; | ||||
| } | ||||
| } // choice | ||||
| } // underlay-tech | ||||
| /*overlay*/ | grouping pim { | |||
| description | ||||
| "The required information of pim transportion."; | ||||
| leaf source-address { | ||||
| type ip-multicast-source-address; | ||||
| description | ||||
| "The IPv4/IPv6 source address of the multicast flow. The | ||||
| value set to zero means that the receiver interests | ||||
| in all source that relevant to one given group."; | ||||
| } | ||||
| leaf group-address { | ||||
| type rt-types:ip-multicast-group-address; | ||||
| mandatory true; | ||||
| description | ||||
| "The IPv4/IPv6 group address of multicast flow. This | ||||
| type represents a version-neutral IP multicast group | ||||
| address. The format of the textual representation | ||||
| implies the IP version."; | ||||
| } | ||||
| reference | ||||
| "RFC 7761: Protocol Independent Multicast - Sparse Mode | ||||
| (PIM-SM): Protocol Specification (Revised)."; | ||||
| } //pim | ||||
| grouping overlay-tech { | /*underlay*/ | |||
| choice overlay-tech-type { | ||||
| case bgp { | ||||
| description | ||||
| "BGP technology is used for multicast overlay."; | ||||
| reference | ||||
| "RFC 7716: Global Table Multicast with BGP Multicast | ||||
| VPN (BGP-MVPN) Procedures."; | ||||
| } | ||||
| case evpn { | ||||
| description | ||||
| "EVPN technology is used for multicast overlay."; | ||||
| reference | ||||
| "RFC 7432: BGP MPLS-Based Ethernet VPN. | ||||
| I-D.ietf-bess-evpn-bum-procedure-updates: Updates on | ||||
| EVPN BUM Procedures. | ||||
| I-D.ietf-bier-evpn: EVPN BUM Using BIER."; | ||||
| } | ||||
| case mld { | ||||
| description | ||||
| "MLD technology is used for multicast overlay."; | ||||
| reference | ||||
| "I-D.ietf-bier-mld: BIER Ingress Multicast Flow Overlay | ||||
| using Multicast Listener Discovery Protocols."; | ||||
| leaf mld-instance-group { | ||||
| type rt-types:ip-multicast-group-address; | ||||
| description | ||||
| "The multicast address used for multiple MLD instance | ||||
| support."; | ||||
| } | ||||
| } | ||||
| case mld-snooping { | ||||
| description | ||||
| "MLD snooping technology is used for multicast overlay."; | ||||
| reference | ||||
| "RFC 4541: Considerations for Internet Group Management | ||||
| Protocol (IGMP) and Multicast Listener | ||||
| Discovery (MLD) Snooping Switches."; | ||||
| } | ||||
| case mvpn { | ||||
| description | ||||
| "MVPN technology is used for multicast overlay."; | ||||
| reference | ||||
| "RFC 6513: Multicast in MPLS/BGP IP VPNs."; | ||||
| } | ||||
| case pim { | ||||
| description | ||||
| "PIM technology is used for multicast overlay."; | ||||
| reference | ||||
| "I-D.ietf-bier-pim-signaling: PIM Signaling | ||||
| Through BIER Core."; | ||||
| } | ||||
| description | ||||
| "The overlay technology used for multicast service."; | ||||
| } | ||||
| description "The overlay technology used for multicast service."; | ||||
| } // overlay-tech | ||||
| /*transport*/ | container multicast-model { | |||
| description | ||||
| "The model of multicast YANG data. Include keys, overlay, | ||||
| transport and underlay."; | ||||
| grouping transport-pim { | list multicast-keys{ | |||
| description | key "vpn-rd source-address group-address mac-address vni-value"; | |||
| "The requirement information of pim transportion."; | uses general-multicast-key; | |||
| reference | ||||
| "RFC 7761: Protocol Independent Multicast - Sparse Mode | ||||
| (PIM-SM): Protocol Specification (Revised)."; | ||||
| } //transport-pim | ||||
| /*underlay*/ | container multicast-overlay { | |||
| description | ||||
| "The overlay information of multicast service. | ||||
| Overlay technology is used to exchange multicast | ||||
| flows information. Overlay technology may not be | ||||
| used in SDN controlled completely situation, but | ||||
| it can be used in partial SDN controlled situation | ||||
| or non-SDN controlled situation. Different overlay | ||||
| technologies can be choosed according to different | ||||
| deploy consideration."; | ||||
| container multicast-model { | leaf vni-type { | |||
| description | type virtual-type; | |||
| "The model of multicast YANG data. Include keys, overlay, | description | |||
| transport and underlay."; | "The encapsulated type for the multicast flow, | |||
| it is used to carry the virtual network identifier | ||||
| for the multicast service."; | ||||
| } | ||||
| list multicast-keys{ | container ingress-egress { | |||
| key "vpn-rd source-address group-address vni-type vni-value"; | description | |||
| uses general-multicast-key; | "The ingress and egress nodes address collection. | |||
| The ingress node may use the egress nodes set | ||||
| directly to encapsulate the multicast flow by | ||||
| transport technology."; | ||||
| container multicast-overlay { | list ingress-nodes { | |||
| description | key "ingress-node"; | |||
| "The overlay information of multicast service. | description | |||
| Overlay technology is used to exchange multicast | "The egress nodes of multicast flow."; | |||
| flows information. Overlay technology may not be | ||||
| used in SDN controlled completely situation, but | ||||
| it can be used in partial SDN controlled situation | ||||
| or non-SDN controlled situation. Different overlay | ||||
| technologies can be choosed according to different | ||||
| deploy consideration."; | ||||
| container ingress-egress { | leaf ingress-node { | |||
| description | type inet:ip-address; | |||
| "The ingress and egress nodes address collection. | description | |||
| The ingress node may use the egress nodes set | "The ip address of ingress node for one or more | |||
| directly to encapsulate the multicast flow by | multicast flow. Or the ingress node of MVPN and | |||
| transport technology."; | BIER. In MVPN, this is the address of ingress | |||
| PE; in BIER, this is the BFR-prefix of ingress | ||||
| nodes. | ||||
| Two or more ingress nodes may existed for the | ||||
| redundant ingress node protection."; | ||||
| leaf ingress-node { | } | |||
| type inet:ip-address; | } | |||
| description | ||||
| "The ip address of ingress node for one or more | ||||
| multicast flow. Or the ingress node of MVPN and | ||||
| BIER. In MVPN, this is the address of ingress | ||||
| PE; in BIER, this is the BFR-prefix of ingress | ||||
| nodes."; | ||||
| } | ||||
| list egress-nodes { | ||||
| key "egress-node"; | ||||
| description | ||||
| "The egress multicast nodes of the multicast flow. | ||||
| Or the egress node of MVPN and BIER. In MVPN, this | ||||
| is the address of egress PE; in BIER, this is the | ||||
| BFR-prefix of ingress nodes."; | ||||
| leaf egress-node { | list egress-nodes { | |||
| type inet:ip-address; | key "egress-node"; | |||
| description | description | |||
| "The ip-address set of egress multicast nodes."; | "The egress multicast nodes of the multicast flow. | |||
| } | Or the egress node of MVPN and BIER. In MVPN, this | |||
| } | is the address of egress PE; in BIER, this is the | |||
| } | BFR-prefix of ingress nodes."; | |||
| container bier-ids { | leaf egress-node { | |||
| description | type inet:ip-address; | |||
| "The BFR-ids of ingress and egress BIER nodes for | description | |||
| one or more multicast flows. This overlay is used | "The ip-address set of egress multicast nodes."; | |||
| with BIER transport technology. The egress nodes | } | |||
| set can be used to encapsulate the multicast flow | } | |||
| directly in the ingress node."; | } | |||
| reference | ||||
| "RFC 8279: Multicast Using Bit Index Explicit | ||||
| Replication (BIER)"; | ||||
| leaf sub-domain { | container bier-ids { | |||
| type uint16; | if-feature bier; | |||
| description | description | |||
| "The sub-domain that this multicast flow belongs to."; | "The BFR-ids of ingress and egress BIER nodes for | |||
| } | one or more multicast flows. This overlay is used | |||
| leaf ingress-node { | with BIER transport technology. The egress nodes | |||
| type uint16; | set can be used to encapsulate the multicast flow | |||
| description | directly in the ingress node."; | |||
| "The ingress node of multicast flow. This is the | reference | |||
| BFR-id of ingress nodes."; | "RFC 8279: Multicast Using Bit Index Explicit | |||
| } | Replication (BIER)"; | |||
| list egress-nodes { | ||||
| key "egress-node"; | ||||
| description | ||||
| "The egress nodes of multicast flow."; | ||||
| leaf egress-node { | leaf sub-domain { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "The BFR-ids of egress multicast BIER nodes."; | "The sub-domain that this multicast flow belongs to."; | |||
| } | } | |||
| } | list ingress-nodes { | |||
| } | key "ingress-node"; | |||
| uses overlay-tech; | description | |||
| } | "The ingress nodes of multicast flow."; | |||
| leaf ingress-node { | ||||
| type uint16; | ||||
| description | ||||
| "The ingress node of multicast flow. This is the | ||||
| BFR-id of ingress nodes."; | ||||
| } | ||||
| } | ||||
| list egress-nodes { | ||||
| key "egress-node"; | ||||
| description | ||||
| "The egress nodes of multicast flow."; | ||||
| container multicast-transport { | leaf egress-node { | |||
| description | type uint16; | |||
| "The transportion of multicast service. Transport | description | |||
| protocol is responsible for delivering multicast | "The BFR-ids of egress multicast BIER nodes."; | |||
| flows from ingress nodes to egress nodes with or | } | |||
| without specific encapsulation. Different transport | } | |||
| technology can be choosed according to different | } | |||
| deploy consideration. Once a transport technology | uses overlay-tech; | |||
| is choosed, associated protocol should be triggered | } | |||
| to run."; | ||||
| uses transport-tech; | container multicast-transport { | |||
| } | description | |||
| container multicast-underlay { | "The transportion of multicast service. Transport | |||
| description | protocol is responsible for delivering multicast | |||
| "The underlay of multicast service. Underlay protocol | flows from ingress nodes to egress nodes with or | |||
| is used to build transport layer. Underlay protocol | without specific encapsulation. Different transport | |||
| need not be assigned in ordinary network since | technology can be choosed according to different | |||
| existed underlay protocol fits well, but it can be | deploy consideration. Once a transport technology | |||
| assigned in particular networks for better | is choosed, associated protocol should be triggered | |||
| controll. Once a underlay technology is choosed, | to run."; | |||
| associated protocol should be triggered to run."; | ||||
| uses underlay-tech; | uses transport-tech; | |||
| } | } | |||
| description | container multicast-underlay { | |||
| "The model of multicast YANG data. Include keys, | description | |||
| overlay, transport and underlay."; | "The underlay of multicast service. Underlay protocol | |||
| } | is used to build transport layer. Underlay protocol | |||
| } | need not be assigned in ordinary network since | |||
| existed underlay protocol fits well, but it can be | ||||
| assigned in particular networks for better | ||||
| controll. Once a underlay technology is choosed, | ||||
| associated protocol should be triggered to run."; | ||||
| /*Notifications*/ | uses underlay-tech; | |||
| } | ||||
| description | ||||
| "The model of multicast YANG data. Include keys, | ||||
| overlay, transport and underlay."; | ||||
| } | ||||
| } | ||||
| notification head-end-event { | /*Notifications*/ | |||
| leaf event-type { | ||||
| type enumeration { | ||||
| enum down { | ||||
| description | ||||
| "There is something wrong with head end node, | ||||
| and head end node can't work properlay."; | ||||
| } | ||||
| enum module-loaded { | ||||
| description | ||||
| "The new modules that can be used by multicast | ||||
| flows have been loaded."; | ||||
| } | ||||
| enum module-unloaded { | ||||
| description | ||||
| "The new modules that can be used by multicast | ||||
| flows have been unloaded."; | ||||
| } | ||||
| } | ||||
| description "Event type."; | ||||
| } | ||||
| container multicast-key { | ||||
| uses general-multicast-key; | ||||
| description | ||||
| "The associated multicast keys that are influenced by | ||||
| head end node failer."; | ||||
| } | ||||
| uses overlay-tech; | ||||
| container transport-tech { | notification ingress-egress-event { | |||
| description | leaf event-type { | |||
| "The modules can be used to forward multicast flows."; | type enumeration { | |||
| uses transport-tech; | enum down { | |||
| } | description | |||
| "There is something wrong with ingress or egress node, | ||||
| and node can't work properlay."; | ||||
| } | ||||
| enum protocol-enabled { | ||||
| description | ||||
| "The protocol that is used for multicast | ||||
| flows have been enabled."; | ||||
| } | ||||
| enum protocol-disabled { | ||||
| description | ||||
| "The protocol that is used by multicast | ||||
| flows have been disabled."; | ||||
| } | ||||
| } | ||||
| description "Event type."; | ||||
| } | ||||
| container multicast-key { | ||||
| uses general-multicast-key; | ||||
| description | ||||
| "The associated multicast keys that are influenced by | ||||
| ingress or egress node failer."; | ||||
| } | ||||
| uses overlay-tech; | ||||
| container underlay-tech { | container transport-tech { | |||
| description | description | |||
| "There is something wrong with the module which is | "The modules can be used to forward multicast flows."; | |||
| used to build multicast transport layer."; | uses transport-tech; | |||
| uses underlay-tech; | } | |||
| } | container underlay-tech { | |||
| description | description | |||
| "Notification events for the head end nodes. Like head | "There is something wrong with the module which is | |||
| node failer, overlay/ transport/ underlay module | used to build multicast transport layer."; | |||
| loading/ unloading. And the potential failer about some | uses underlay-tech; | |||
| multicast flows and associated | } | |||
| overlay/ transport/ underlay technologies."; | description | |||
| } | "Notification events for the ingress or egress nodes. Like | |||
| } | node failer, overlay/ transport/ underlay module | |||
| <CODE ENDS> | loading/ unloading. And the potential failer about some | |||
| multicast flows and associated | ||||
| overlay/ transport/ underlay technologies."; | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | ||||
| 5. Security Considerations | 5. Security Considerations | |||
| The YANG module specified in this document defines a schema for data | The YANG module specified in this document defines a schema for data | |||
| that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC8446]. | [RFC8446]. | |||
| skipping to change at page 27, line 43 ¶ | skipping to change at page 33, line 33 ¶ | |||
| default). These data nodes may be considered sensitive or vulnerable | default). These data nodes may be considered sensitive or vulnerable | |||
| in some network environments. Write operations (e.g., edit-config) | in some network environments. Write operations (e.g., edit-config) | |||
| to these data nodes without proper protection can have a negative | to these data nodes without proper protection can have a negative | |||
| effect on network operations. These are data nodes and their | effect on network operations. These are data nodes and their | |||
| sensitivity/vulnerability: | sensitivity/vulnerability: | |||
| Under /rt:routing/rt:control-plane-protocols/multicast-model, | Under /rt:routing/rt:control-plane-protocols/multicast-model, | |||
| multicast-model | multicast-model | |||
| These data nodes in this model specifies the configuration for the | * These data nodes in this model specifies the configuration for the | |||
| multicast service at the top level. Modifying the configuration | multicast service at the top level. Modifying the configuration | |||
| can cause multicast service to be deleted or reconstructed. | can cause multicast service to be deleted or reconstructed. | |||
| Some of the readable data nodes in this YANG module may be considered | Some of the readable data nodes in this YANG module may be considered | |||
| sensitive or vulnerable in some network environments. It is thus | sensitive or vulnerable in some network environments. It is thus | |||
| important to control read access (e.g., via get, get-config, or | important to control read access (e.g., via get, get-config, or | |||
| notification) to these data nodes. These are the data nodes and | notification) to these data nodes. These are the data nodes and | |||
| their sensitivity/vulnerability: | their sensitivity/vulnerability: | |||
| /rt:routing/rt:control-plane-protocols/multicast-model, | /rt:routing/rt:control-plane-protocols/multicast-model, | |||
| skipping to change at page 28, line 38 ¶ | skipping to change at page 34, line 32 ¶ | |||
| name: ietf-multicast-model | name: ietf-multicast-model | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-multicast-model | namespace: urn:ietf:params:xml:ns:yang:ietf-multicast-model | |||
| prefix: multicast-model | prefix: multicast-model | |||
| reference: RFC XXXX | reference: RFC XXXX | |||
| 7. Acknowledgements | 7. Acknowledgements | |||
| The authors would like to thank Stig Venaas, Jake Holland, Min Gu for | The authors would like to thank Stig Venaas, Jake Holland, Min Gu, | |||
| their valuable comments and suggestions. | Gyan Mishra for their valuable comments and suggestions. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | |||
| dual environments", RFC 1195, DOI 10.17487/RFC1195, | dual environments", RFC 1195, DOI 10.17487/RFC1195, | |||
| December 1990, <https://www.rfc-editor.org/info/rfc1195>. | December 1990, <https://www.rfc-editor.org/info/rfc1195>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| skipping to change at page 31, line 44 ¶ | skipping to change at page 37, line 34 ¶ | |||
| Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
| DOI 10.17487/RFC8349, March 2018, | DOI 10.17487/RFC8349, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8349>. | <https://www.rfc-editor.org/info/rfc8349>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [I-D.ietf-babel-rfc6126bis] | ||||
| Chroboczek, J. and D. Schinazi, "The Babel Routing | ||||
| Protocol", draft-ietf-babel-rfc6126bis-20 (work in | ||||
| progress), August 2020. | ||||
| [I-D.ietf-bess-evpn-bum-procedure-updates] | [I-D.ietf-bess-evpn-bum-procedure-updates] | |||
| Zhang, Z., Lin, W., Rabadan, J., Patel, K., and A. | Zhang, Z., Lin, W., Rabadan, J., Patel, K., and A. | |||
| Sajassi, "Updates on EVPN BUM Procedures", draft-ietf- | Sajassi, "Updates on EVPN BUM Procedures", Work in | |||
| bess-evpn-bum-procedure-updates-08 (work in progress), | Progress, Internet-Draft, draft-ietf-bess-evpn-bum- | |||
| November 2019. | procedure-updates-09, 9 June 2021, | |||
| <https://www.ietf.org/archive/id/draft-ietf-bess-evpn-bum- | ||||
| procedure-updates-09.txt>. | ||||
| [I-D.ietf-bier-bier-yang] | [I-D.ietf-bier-bier-yang] | |||
| Chen, R., hu, f., Zhang, Z., dai.xianxian@zte.com.cn, d., | Chen, R., Hu, F., Zhang, Z., Dai, X., and M. Sivakumar, | |||
| and M. Sivakumar, "YANG Data Model for BIER Protocol", | "YANG Data Model for BIER Protocol", Work in Progress, | |||
| draft-ietf-bier-bier-yang-07 (work in progress), September | Internet-Draft, draft-ietf-bier-bier-yang-07, 8 September | |||
| 2020. | 2020, <https://www.ietf.org/archive/id/draft-ietf-bier- | |||
| bier-yang-07.txt>. | ||||
| [I-D.ietf-bier-bierin6] | ||||
| Zhang, Z., Zhang, Z., Wijnands, I., Mishra, M., Bidgoli, | ||||
| H., and G. Mishra, "Supporting BIER in IPv6 Networks | ||||
| (BIERin6)", Work in Progress, Internet-Draft, draft-ietf- | ||||
| bier-bierin6-00, 14 June 2021, | ||||
| <https://www.ietf.org/archive/id/draft-ietf-bier- | ||||
| bierin6-00.txt>. | ||||
| [I-D.ietf-bier-evpn] | [I-D.ietf-bier-evpn] | |||
| Zhang, Z., Przygienda, T., Sajassi, A., and J. Rabadan, | Zhang, Z., Przygienda, A., Sajassi, A., and J. Rabadan, | |||
| "EVPN BUM Using BIER", draft-ietf-bier-evpn-03 (work in | "EVPN BUM Using BIER", Work in Progress, Internet-Draft, | |||
| progress), April 2020. | draft-ietf-bier-evpn-04, 2 December 2020, | |||
| <https://www.ietf.org/archive/id/draft-ietf-bier-evpn- | ||||
| 04.txt>. | ||||
| [I-D.ietf-bier-mld] | [I-D.ietf-bier-mld] | |||
| Pfister, P., Wijnands, I., Venaas, S., Wang, C., Zhang, | Pfister, P., Wijnands, I., Venaas, S., Wang, C., Zhang, | |||
| Z., and M. Stenberg, "BIER Ingress Multicast Flow Overlay | Z., and M. Stenberg, "BIER Ingress Multicast Flow Overlay | |||
| using Multicast Listener Discovery Protocols", draft-ietf- | using Multicast Listener Discovery Protocols", Work in | |||
| bier-mld-04 (work in progress), March 2020. | Progress, Internet-Draft, draft-ietf-bier-mld-05, 22 | |||
| February 2021, <https://www.ietf.org/archive/id/draft- | ||||
| ietf-bier-mld-05.txt>. | ||||
| [I-D.ietf-bier-pim-signaling] | [I-D.ietf-bier-pim-signaling] | |||
| Bidgoli, H., Xu, F., Kotalwar, J., Wijnands, I., Mishra, | Bidgoli, H., Xu, F., Kotalwar, J., Wijnands, I., Mishra, | |||
| M., and Z. Zhang, "PIM Signaling Through BIER Core", | M., and Z. Zhang, "PIM Signaling Through BIER Core", Work | |||
| draft-ietf-bier-pim-signaling-10 (work in progress), July | in Progress, Internet-Draft, draft-ietf-bier-pim- | |||
| 2020. | signaling-12, 25 July 2021, | |||
| <https://www.ietf.org/archive/id/draft-ietf-bier-pim- | ||||
| signaling-12.txt>. | ||||
| [I-D.ietf-bier-te-arch] | [I-D.ietf-bier-te-arch] | |||
| Eckert, T., Cauchie, G., and M. Menth, "Tree Engineering | Eckert, T., Cauchie, G., and M. Menth, "Tree Engineering | |||
| for Bit Index Explicit Replication (BIER-TE)", draft-ietf- | for Bit Index Explicit Replication (BIER-TE)", Work in | |||
| bier-te-arch-08 (work in progress), July 2020. | Progress, Internet-Draft, draft-ietf-bier-te-arch-09, 30 | |||
| October 2020, <https://www.ietf.org/internet-drafts/draft- | ||||
| ietf-bier-te-arch-09.txt>. | ||||
| [I-D.ietf-nvo3-geneve] | [I-D.ietf-isis-yang-isis-cfg] | |||
| Gross, J., Ganga, I., and T. Sridhar, "Geneve: Generic | Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. | |||
| Network Virtualization Encapsulation", draft-ietf- | Lhotka, "YANG Data Model for IS-IS Protocol", Work in | |||
| nvo3-geneve-16 (work in progress), March 2020. | Progress, Internet-Draft, draft-ietf-isis-yang-isis-cfg- | |||
| 42, 15 October 2019, <https://www.ietf.org/archive/id/ | ||||
| draft-ietf-isis-yang-isis-cfg-42.txt>. | ||||
| [I-D.ietf-ospf-yang] | [I-D.ietf-ospf-yang] | |||
| Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | Yeung, D., Qu, Y., Zhang, J., Chen, I., and A. Lindem, | |||
| "YANG Data Model for OSPF Protocol", draft-ietf-ospf- | "YANG Data Model for OSPF Protocol", Work in Progress, | |||
| yang-29 (work in progress), October 2019. | Internet-Draft, draft-ietf-ospf-yang-29, 17 October 2019, | |||
| <https://www.ietf.org/archive/id/draft-ietf-ospf-yang- | ||||
| 29.txt>. | ||||
| [I-D.ietf-pim-sr-p2mp-policy] | ||||
| Voyer, D., Filsfils, C., Parekh, R., Bidgoli, H., and Z. | ||||
| Zhang, "Segment Routing Point-to-Multipoint Policy", Work | ||||
| in Progress, Internet-Draft, draft-ietf-pim-sr-p2mp- | ||||
| policy-02, 19 February 2021, | ||||
| <https://www.ietf.org/archive/id/draft-ietf-pim-sr-p2mp- | ||||
| policy-02.txt>. | ||||
| [I-D.ietf-pim-yang] | [I-D.ietf-pim-yang] | |||
| Liu, X., McAllister, P., Peter, A., Sivakumar, M., Liu, | Liu, X., McAllister, P., Peter, A., Sivakumar, M., Liu, | |||
| Y., and f. hu, "A YANG Data Model for Protocol Independent | Y., and F. Hu, "A YANG Data Model for Protocol Independent | |||
| Multicast (PIM)", draft-ietf-pim-yang-17 (work in | Multicast (PIM)", Work in Progress, Internet-Draft, draft- | |||
| progress), May 2018. | ietf-pim-yang-17, 19 May 2018, | |||
| <https://www.ietf.org/archive/id/draft-ietf-pim-yang- | ||||
| 17.txt>. | ||||
| [I-D.zhang-bier-bierin6] | [I-D.ietf-rift-rift] | |||
| Zhang, Z., Zhang, Z., Wijnands, I., Bidgoli, H., and M. | Sharma, A., Thubert, P., Rijsman, B., and D. Afanasiev, | |||
| McBride, "BIER in IPv6 (BIERin6)", draft-zhang-bier- | "RIFT: Routing in Fat Trees", Work in Progress, Internet- | |||
| bierin6-07 (work in progress), July 2020. | Draft, draft-ietf-rift-rift-13, 12 July 2021, | |||
| <https://www.ietf.org/archive/id/draft-ietf-rift-rift- | ||||
| 13.txt>. | ||||
| [I-D.szcl-mboned-redundant-ingress-failover] | ||||
| Shepherd, G., Zhang, Z., Liu, Y., and Y. Cheng, "Multicast | ||||
| Redundant Ingress Router Failover", Work in Progress, | ||||
| Internet-Draft, draft-szcl-mboned-redundant-ingress- | ||||
| failover-01, 8 July 2021, | ||||
| <https://www.ietf.org/archive/id/draft-szcl-mboned- | ||||
| redundant-ingress-failover-01.txt>. | ||||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC4541] Christensen, M., Kimball, K., and F. Solensky, | [RFC4541] Christensen, M., Kimball, K., and F. Solensky, | |||
| "Considerations for Internet Group Management Protocol | "Considerations for Internet Group Management Protocol | |||
| (IGMP) and Multicast Listener Discovery (MLD) Snooping | (IGMP) and Multicast Listener Discovery (MLD) Snooping | |||
| Switches", RFC 4541, DOI 10.17487/RFC4541, May 2006, | Switches", RFC 4541, DOI 10.17487/RFC4541, May 2006, | |||
| <https://www.rfc-editor.org/info/rfc4541>. | <https://www.rfc-editor.org/info/rfc4541>. | |||
| skipping to change at page 34, line 9 ¶ | skipping to change at page 40, line 31 ¶ | |||
| [RFC8639] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard, | [RFC8639] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard, | |||
| E., and A. Tripathy, "Subscription to YANG Notifications", | E., and A. Tripathy, "Subscription to YANG Notifications", | |||
| RFC 8639, DOI 10.17487/RFC8639, September 2019, | RFC 8639, DOI 10.17487/RFC8639, September 2019, | |||
| <https://www.rfc-editor.org/info/rfc8639>. | <https://www.rfc-editor.org/info/rfc8639>. | |||
| [RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications | [RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications | |||
| for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641, | for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641, | |||
| September 2019, <https://www.rfc-editor.org/info/rfc8641>. | September 2019, <https://www.rfc-editor.org/info/rfc8641>. | |||
| [RFC8926] Gross, J., Ed., Ganga, I., Ed., and T. Sridhar, Ed., | ||||
| "Geneve: Generic Network Virtualization Encapsulation", | ||||
| RFC 8926, DOI 10.17487/RFC8926, November 2020, | ||||
| <https://www.rfc-editor.org/info/rfc8926>. | ||||
| [RFC8966] Chroboczek, J. and D. Schinazi, "The Babel Routing | ||||
| Protocol", RFC 8966, DOI 10.17487/RFC8966, January 2021, | ||||
| <https://www.rfc-editor.org/info/rfc8966>. | ||||
| Appendix A. Data Tree Example | Appendix A. Data Tree Example | |||
| This section contains an example of an instance data tree in JSON | This section contains an example of an instance data tree in JSON | |||
| encoding [RFC7951], containing configuration data. | encoding [RFC7951], containing configuration data. | |||
| The configuration example: | The configuration example: | |||
| { | { | |||
| "ietf-multicast-model:multicast-model":{ | "ietf-multicast-model:multicast-model":{ | |||
| "multicast-keys":[ | "multicast-keys":[ | |||
| { | { | |||
| "vpn-rd":"0:65532:4294967292", | "vpn-rd":"0:65532:4294967292", | |||
| "source-address":"*", | "source-address":"*", | |||
| "group-address":"234.232.203.84", | "group-address":"234.232.203.84", | |||
| "vni-type":"nvgre", | "mac-address": "00:00:5e:00:53:01", | |||
| "vni-value":0, | "vni-value":0, | |||
| "multicast-overlay":{ | "multicast-overlay":{ | |||
| "ingress-egress":{ | "vni-type":"nvgre", | |||
| "ingress-node":"146.150.100.0", | "ingress-egress":{ | |||
| "egress-nodes":[ | "ingress-nodes":[ | |||
| { | { | |||
| "egress-node":"110.141.168.0" | "ingress-node":"146.150.100.0" | |||
| } | } | |||
| ] | ], | |||
| }, | "egress-nodes":[ | |||
| }, | { | |||
| "multicast-transport":{ | "egress-node":"110.141.168.0" | |||
| "bier":{ | } | |||
| "sub-domain":0, | ] | |||
| "bitstringlength":256, | } | |||
| "set-identifier":0 | }, | |||
| } | "multicast-transport":{ | |||
| }, | "type": "ietf-multicast-model:bier", | |||
| "multicast-underlay":{ | "bier":{ | |||
| "ospf":{ | "sub-domain":0, | |||
| "topology":"2" | "bitstringlength":256, | |||
| } | "set-identifier":0 | |||
| } | } | |||
| } | }, | |||
| ] | "multicast-underlay":{ | |||
| } | "type": "ietf-multicast-model:ospf", | |||
| } | "ospf":{ | |||
| "topology":"2" | ||||
| } | ||||
| } | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| Authors' Addresses | Authors' Addresses | |||
| Zheng Zhang | Zheng Zhang | |||
| ZTE Corporation | ZTE Corporation | |||
| China | China | |||
| Email: zhang.zheng@zte.com.cn | Email: zhang.zheng@zte.com.cn | |||
| Cui(Linda) Wang | Cui(Linda) Wang | |||
| Individual | Individual | |||
| Australia | Australia | |||
| skipping to change at page 35, line 34 ¶ | skipping to change at page 42, line 31 ¶ | |||
| Email: chengying10@chinaunicom.cn | Email: chengying10@chinaunicom.cn | |||
| Xufeng Liu | Xufeng Liu | |||
| Volta Networks | Volta Networks | |||
| Email: xufeng.liu.ietf@gmail.com | Email: xufeng.liu.ietf@gmail.com | |||
| Mahesh Sivakumar | Mahesh Sivakumar | |||
| Juniper networks | Juniper networks | |||
| 1133 Innovation Way | 1133 Innovation Way | |||
| Sunnyvale, CALIFORNIA 94089 | Sunnyvale, CALIFORNIA 94089, | |||
| USA | United States of America | |||
| Email: sivakumar.mahesh@gmail.com | Email: sivakumar.mahesh@gmail.com | |||
| End of changes. 124 change blocks. | ||||
| 967 lines changed or deleted | 1307 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||