draft-ietf-mpls-static-yang-05.txt | draft-ietf-mpls-static-yang-06.txt | |||
---|---|---|---|---|
MPLS Working Group T. Saad | MPLS Working Group T. Saad | |||
Internet-Draft K. Raza | Internet-Draft K. Raza | |||
Intended status: Standards Track R. Gandhi | Intended status: Standards Track R. Gandhi | |||
Expires: August 19, 2018 Cisco Systems, Inc. | Expires: April 13, 2019 Cisco Systems, Inc. | |||
X. Liu | X. Liu | |||
Jabil | Volta Networks | |||
V. Beeram | V. Beeram | |||
Juniper Networks | Juniper Networks | |||
February 15, 2018 | H. Shah | |||
Ciena | ||||
I. Bryskin | ||||
Huawei Technologies | ||||
October 10, 2018 | ||||
A YANG Data Model for MPLS Static LSPs | A YANG Data Model for MPLS Static LSPs | |||
draft-ietf-mpls-static-yang-05 | draft-ietf-mpls-static-yang-06 | |||
Abstract | Abstract | |||
This document contains the specification for the MPLS Static Label | This document contains the specification for the MPLS Static Label | |||
Switched Paths (LSPs) YANG model. The model allows for the | Switched Paths (LSPs) YANG model. The model allows for the | |||
provisioning of static LSP(s) on LER(s) and LSR(s) devices along a | provisioning of static LSP(s) on LER(s) and LSR(s) devices along a | |||
LSP path without the dependency on any signaling protocol. The MPLS | LSP path without the dependency on any signaling protocol. The MPLS | |||
Static LSP model augments the MPLS base YANG model with specific data | Static LSP model augments the MPLS base YANG model with specific data | |||
to configure and manage MPLS Static LSP(s). | to configure and manage MPLS Static LSP(s). | |||
skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 44 ¶ | |||
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 August 19, 2018. | This Internet-Draft will expire on April 13, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | 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. Model Organization . . . . . . . . . . . . . . . . . . . 3 | 1.2. Acronyms and Abbreviations . . . . . . . . . . . . . . . 3 | |||
1.3. MPLS Static LSPs Model Tree Diagram . . . . . . . . . . . 4 | 2. MPLS Static LSP Model . . . . . . . . . . . . . . . . . . . . 4 | |||
1.4. MPLS Static LSP YANG Module(s) . . . . . . . . . . . . . 6 | 2.1. Model Organization . . . . . . . . . . . . . . . . . . . 4 | |||
2. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 2.2. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 4 | |||
3. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | 2.3. Model Overview . . . . . . . . . . . . . . . . . . . . . 6 | |||
4. Normative References . . . . . . . . . . . . . . . . . . . . 18 | 2.4. Model YANG Module(s) . . . . . . . . . . . . . . . . . . 7 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | ||||
5. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
5.1. Normative References . . . . . . . . . . . . . . . . . . 15 | ||||
5.2. Informative References . . . . . . . . . . . . . . . . . 16 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | ||||
1. Introduction | 1. Introduction | |||
This document describes a YANG data model for configuring and | This document describes a YANG [RFC7950] data model for configuring | |||
managing the Static LSPs feature. The model allows the configuration | and managing the Multiprotocol Label Switching (MPLS) [RFC3031] | |||
of LER and LSR devices with the necessary MPLS cross-connects or | Static LSPs. The model allows the configuration of LER and LSR | |||
bindings to realize an end-to-end LSP service. | devices with the necessary MPLS cross-connects or bindings to realize | |||
an end-to-end LSP service. | ||||
A static LSP is established by manually specifying incoming and | A static LSP is established by manually specifying incoming and | |||
outgoing MPLS label(s) and necessary forwarding information on each | outgoing MPLS label(s) and necessary forwarding information on each | |||
of the traversed Label Edge Router (LER) and Label Switched Router | of the traversed Label Edge Router (LER) and Label Switched Router | |||
(LSR) devices (ingress, transit, or egress nodes) of the forwarding | (LSR) devices (ingress, transit, or egress nodes) of the forwarding | |||
path. | path. | |||
For example, on an ingress LER device, the model is used to associate | For example, on an ingress LER device, the model is used to associate | |||
a specific Forwarding Equivalence Class (FEC) of packets- e.g. | a specific Forwarding Equivalence Class (FEC) of packets- e.g. | |||
matching a specific IP prefix in a Virtual Routing or Forwarding | matching a specific IP prefix in a Virtual Routing or Forwarding | |||
(VRF) instance- to an MPLS outgoing label imposition, next-hop(s) and | (VRF) instance- to an MPLS outgoing label imposition, next-hop(s) and | |||
respective outgoing interface(s) to forward the packet. On an LSR | respective outgoing interface(s) to forward the packet. On an LSR | |||
device, the model is used to create a binding that swaps the incoming | device, the model is used to create a binding that swaps the incoming | |||
label with an outgoing label and forwards the packet on one or | label with an outgoing label and forwards the packet on one or | |||
multiple egress path(s). On an egress LER, it is used to create a | multiple egress path(s). On an egress LER, it is used to create a | |||
binding that decapsulates the incoming MPLS label and performs | binding that decapsulates the incoming MPLS label and performs | |||
forwarding based on the inner MPLS label (if present) or IP | forwarding based on the inner MPLS label (if present) or IP | |||
forwarding in the packet. | forwarding in the packet. | |||
skipping to change at page 2, line 48 ¶ | skipping to change at page 3, line 15 ¶ | |||
matching a specific IP prefix in a Virtual Routing or Forwarding | matching a specific IP prefix in a Virtual Routing or Forwarding | |||
(VRF) instance- to an MPLS outgoing label imposition, next-hop(s) and | (VRF) instance- to an MPLS outgoing label imposition, next-hop(s) and | |||
respective outgoing interface(s) to forward the packet. On an LSR | respective outgoing interface(s) to forward the packet. On an LSR | |||
device, the model is used to create a binding that swaps the incoming | device, the model is used to create a binding that swaps the incoming | |||
label with an outgoing label and forwards the packet on one or | label with an outgoing label and forwards the packet on one or | |||
multiple egress path(s). On an egress LER, it is used to create a | multiple egress path(s). On an egress LER, it is used to create a | |||
binding that decapsulates the incoming MPLS label and performs | binding that decapsulates the incoming MPLS label and performs | |||
forwarding based on the inner MPLS label (if present) or IP | forwarding based on the inner MPLS label (if present) or IP | |||
forwarding in the packet. | forwarding in the packet. | |||
The MPLS Static LSP YANG model is defined in module "ietf-mpls- | The MPLS Static LSP YANG model is broken into two modules "ietf-mpls- | |||
static" and augments the MPLS Base YANG model defined in module | static" and "ietf-mpls-static-extended". The "ietf-mpls-static" | |||
"ietf-mpls" in [I-D.saad-mpls-static-yang]. | module covers basic features for the configuration and management of | |||
unidirectional Static LSP(s), while "ietf-mpls-static-extended" | ||||
covers extended features like the configuration and management of | ||||
bidirectional Static LSP(s) and LSP admission control. | ||||
1.1. Terminology | The module "ietf-mpls-static" augments the MPLS Base YANG model | |||
defined in module "ietf-mpls" in [I-D.ietf-mpls-base-yang]. | ||||
In this document, the key words "MUST", "MUST NOT", "REQUIRED", | 1.1. Terminology | |||
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", | ||||
and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 | ||||
[RFC2119]. | ||||
The following terms are defined in [RFC6020]: | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"OPTIONAL" in this document are to be interpreted as described in BCP | ||||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
o augment, | The terminology for describing YANG data models is found in | |||
[RFC7950]. | ||||
o configuration data, | 1.2. Acronyms and Abbreviations | |||
o data model, | MPLS: Multiprotocol Label Switching | |||
o data node, | LSP: Label Switched Path | |||
o feature, | LSR: Label Switching Router | |||
o mandatory node, | LER: Label Edge Router | |||
o module, | FEC: Forwarding Equivalence Class | |||
o schema tree, | NHLFE: Next Hop Label Forwarding Entry | |||
o state data, | ILM: Incoming Label Map | |||
o RPC operation. | 2. MPLS Static LSP Model | |||
1.2. Model Organization | 2.1. Model Organization | |||
The base MPLS Static LSP model covers the core features with the | The base MPLS Static LSP model covers the core features with the | |||
minimal set of configuration parameters needed to manage and operate | minimal set of configuration parameters needed to manage and operate | |||
MPLS Static LSPs. | MPLS Static LSPs. | |||
Additional MPLS Static LSP parameters as well as optional feature(s) | Additional MPLS Static LSP parameters as well as optional feature(s) | |||
are grouped in a separate MPLS Static LSP extended model. The | are grouped in a separate MPLS Static LSP extended model. The | |||
relationship between the MPLS base and other MPLS modules are shown | relationship between the MPLS base and other MPLS modules are shown | |||
in Figure 1. | in Figure 1. | |||
Routing RIB +-----------+ v: import | Routing module +---------------+ v: import | |||
module | ietf-rib | o: augment | | ietf-routing | o: augment | |||
+-----------+ | +---------------+ | |||
o | o | |||
| | | | |||
v | v | |||
MPLS base +-----------+ v: import | MPLS base +-----------+ v: import | |||
module | ietf-mpls | o: augment | module | ietf-mpls | o: augment | |||
+-----------+ | +-----------+ | |||
o o | o o | |||
| \ | | \ | |||
v v | v v | |||
+------------------+ +--------------------+ | +------------------+ +--------------------+ | |||
skipping to change at page 4, line 30 ¶ | skipping to change at page 4, line 43 ¶ | |||
o | o | |||
| | | | |||
v | v | |||
+---------------------------+ | +---------------------------+ | |||
Extended MPLS | ietf-mpls-static-extended | | Extended MPLS | ietf-mpls-static-extended | | |||
Static LSP +---------------------------+ | Static LSP +---------------------------+ | |||
module | module | |||
Figure 1: Relationship between MPLS modules | Figure 1: Relationship between MPLS modules | |||
1.3. MPLS Static LSPs Model Tree Diagram | 2.2. Model Tree Diagram | |||
The MPLS Static and extendend LSP tree diagram is shown in Figure 2. | The MPLS Static and extended LSP tree diagram as per [RFC8340] is | |||
shown in Figure 2. | ||||
module: ietf-mpls-static | module: ietf-mpls-static | |||
augment /rt:routing/mpls:mpls: | augment /rt:routing/mpls:mpls: | |||
+--rw static-lsps | +--rw static-lsps | |||
+--rw static-lsp* [name] | +--rw static-lsp* [name] | |||
| +--rw name -> ../config/name | | +--rw name string | |||
| +--rw config | | +--rw operation? mpls:mpls-operations-type | |||
| | +--rw name? string | | +--rw in-segment | |||
| | +--rw operation? mpls-operations-type | | | +--rw fec | |||
| +--ro state | | | +--rw (type)? | |||
| | +--ro name? string | | | | +--:(ip-prefix) | |||
| | +--ro operation? mpls-operations-type | | | | | +--rw ip-prefix? inet:ip-prefix | |||
| +--rw (out-segment)? | | | | +--:(mpls-label) | |||
| +--:(simple-path) | | | | | +--rw incoming-label? rt-types:mpls-label | |||
| | +--rw simple-path | | | | +--:(tunnel) | |||
| | +--rw config | | | | +--rw tunnel? te:tunnel-ref | |||
| | | +--rw next-hop? inet:ip-address | | | +--rw incoming-interface? if:interface-ref | |||
| | | +--rw outgoing-label? rt-types:mpls-label | | +--rw out-segment | |||
| | | +--rw outgoing-interface? if:interface-ref | | +--rw (out-segment)? | |||
| | +--ro state | | +--:(nhlfe-single) | |||
| | +--ro next-hop? inet:ip-address | | | +--rw nhlfe-single | |||
| | +--ro outgoing-label? rt-types:mpls-label | | | +--rw remote-labels | |||
| | +--ro outgoing-interface? if:interface-ref | | | | +--rw remote-label* [index] | |||
| +--:(multiple-paths) | | | | +--rw index uint8 | |||
| +--rw paths | | | | +--rw label? rt-types:mpls-label | |||
| +--rw path* [path-index] | | | +--rw outgoing-interface? if:interface-ref | |||
| | +--rw path-index -> ../config/path-index | | +--:(nhlfe-multiple) | |||
| | +--rw config | | +--rw nhlfe-multiple | |||
| | | +--rw path-index? uint16 | | +--rw nhlfe* [index] | |||
| | | +--rw backup-path-index? uint16 | | +--rw index string | |||
| | | +--rw next-hop? inet:ip-address | | +--rw backup-index? string | |||
| | | +--rw outgoing-interface? if:interface-ref | | +--rw loadshare? uint16 | |||
| | | +--rw loadshare? uint16 | | +--rw role? nhlfe-role | |||
| | | +--rw role? enumeration | | +--rw remote-labels | |||
| | +--ro state | | | +--rw remote-label* [index] | |||
| | +--ro path-index? uint16 | | | +--rw index uint8 | |||
| | +--ro backup-path-index? uint16 | | | +--rw label? rt-types:mpls-label | |||
| | +--ro next-hop? inet:ip-address | | +--rw outgoing-interface? if:interface-ref | |||
| | +--ro outgoing-interface? if:interface-ref | ||||
| | +--ro loadshare? uint16 | ||||
| | +--ro role? enumeration | ||||
| +--rw outgoing-labels | ||||
| +--rw outgoing-labels* [index] | ||||
| +--rw index -> ../config/index | ||||
| +--rw config | ||||
| | +--rw index? uint8 | ||||
| | +--rw label? rt-types:mpls-label | ||||
| +--ro state | ||||
| +--ro index? uint8 | ||||
| +--ro label? rt-types:mpls-label | ||||
+--rw mpls-static-ext:bandwidth? uint32 | +--rw mpls-static-ext:bandwidth? uint32 | |||
+--rw mpls-static-ext:lsp-priority-setup? uint8 | +--rw mpls-static-ext:lsp-priority-setup? uint8 | |||
+--rw mpls-static-ext:lsp-priority-hold? uint8 | +--rw mpls-static-ext:lsp-priority-hold? uint8 | |||
module: ietf-mpls-static-extended | module: ietf-mpls-static-extended | |||
augment /rt:routing/mpls:mpls: | augment /rt:routing/mpls:mpls: | |||
+--rw bidir-static-lsps | +--rw bidir-static-lsps | |||
+--rw bidir-static-lsp* [name] | +--rw bidir-static-lsp* [name] | |||
+--rw name string | +--rw name string | |||
+--rw config | +--rw forward-lsp? mpls-static:static-lsp-ref | |||
| +--rw forward-lsp? mpls-static:static-lsp-ref | +--rw reverse-lsp? mpls-static:static-lsp-ref | |||
| +--rw reverse-lsp? mpls-static:static-lsp-ref | ||||
+--ro state | ||||
+--ro forward-lsp? mpls-static:static-lsp-ref | ||||
+--ro reverse-lsp? mpls-static:static-lsp-ref | ||||
Figure 2: MPLS Static LSP tree diagram | Figure 2: MPLS Static LSP tree diagram | |||
1.4. MPLS Static LSP YANG Module(s) | 2.3. Model Overview | |||
This document defines two YANG modules for MPLS Static LSP(s) | ||||
configuration and management: ietf-mpls-static.yang and ietf-mpls- | ||||
static-extended.yang. | ||||
The ietf-mpls-static module imports the followinig modules: | ||||
o ietf-inet-types defined in [RFC6991] | ||||
o ietf-routing defined in [RFC8349] | ||||
o ietf-routing-types defined in [RFC8294] | ||||
o ietf-interfaces defined in [RFC8343] | ||||
o ietf-mpls defined in [I-D.ietf-mpls-base-yang] | ||||
o ietf-te defined in [I-D.ietf-teas-yang-te] | ||||
ietf-mpls-static module contains the following high-level types and | ||||
groupings: | ||||
static-lsp-ref: | ||||
A YANG reference type for a static LSP that can be used by data | ||||
models to reference a configured static LSP. | ||||
in-segment: | ||||
A YANG grouping that describes parameters of an incoming class of | ||||
FEC associated with a specific LSP as described in the MPLS | ||||
architecture document [RFC3031]. The model allows the following | ||||
types of traffic to be mapped onto the static LSP on an ingress | ||||
LER: | ||||
o Unlabeled traffic destined to a specific prefix | ||||
o Labeled traffic arriving with a specific label | ||||
o Traffic carried on a TE tunnel whose LSP is | ||||
statically created via this model. | ||||
out-segment: | ||||
A YANG grouping that describes parameters for the forwarding | ||||
path(s) and their associated attributes for an LSP. The model | ||||
allows for the following cases: | ||||
o single forwarding path or NHLFE | ||||
o multiple forwarding path(s) or NHLFE(s), each of which can | ||||
serve a primary, backup or both role(s). | ||||
2.4. Model YANG Module(s) | ||||
Configuring LSPs through an LSR/LER involves the following steps: | ||||
o Enabling MPLS on MPLS capable interfaces. | ||||
o Configuring in-segments and out-segments on LER(s) and LSR(s) | ||||
traversed by the LSP. | ||||
o Setting up the cross-connect per LSP to associate segments and/or | ||||
to indicate connection origination and termination. | ||||
o Optionally specifying label stack actions. | ||||
o Optionally specifying segment traffic parameters. | ||||
The objects covered by this model are derived from the Incoming Label | ||||
Map (ILM) and Next Hop Label Forwarding Entry (NHLFE) as specified in | ||||
the MPLS architecture document [RFC3031]. | ||||
The MPLS Static LSP module is shown in Figure 3. | The MPLS Static LSP module is shown in Figure 3. | |||
<CODE BEGINS> file "ietf-mpls-static@2017-07-02.yang" | <CODE BEGINS> file "ietf-mpls-static@2018-10-04.yang" | |||
module ietf-mpls-static { | module ietf-mpls-static { | |||
yang-version 1.1; | ||||
namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-static"; | namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-static"; | |||
prefix "mpls-static"; | prefix "mpls-static"; | |||
import ietf-mpls { | import ietf-mpls { | |||
prefix mpls; | prefix "mpls"; | |||
reference "draft-ietf-mpls-base-yang: MPLS Base YANG Data Model"; | ||||
} | } | |||
import ietf-routing { | import ietf-routing { | |||
prefix "rt"; | prefix "rt"; | |||
reference "RFC8349: A YANG Data Model for Routing Management"; | ||||
} | } | |||
import ietf-routing-types { | import ietf-routing-types { | |||
prefix "rt-types"; | prefix "rt-types"; | |||
reference "RFC6991: Common YANG Data Types"; | ||||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
reference "RFC6991: Common YANG Data Types"; | ||||
} | } | |||
import ietf-interfaces { | import ietf-interfaces { | |||
prefix "if"; | prefix "if"; | |||
reference "RFC7223: A YANG Data Model for Interface Management"; | ||||
} | } | |||
/* Import TE generic types */ | /* Import TE Tunnel */ | |||
import ietf-te { | import ietf-te { | |||
prefix te; | prefix te; | |||
reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic | ||||
Engineering Tunnels and Interfaces"; | ||||
} | } | |||
organization "IETF MPLS Working Group"; | organization "IETF MPLS Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/mpls/> | "WG Web: <http://tools.ietf.org/wg/mpls/> | |||
WG List: <mailto:mpls@ietf.org> | WG List: <mailto:mpls@ietf.org> | |||
WG Chair: Loa Andersson | WG Chair: Loa Andersson | |||
<mailto:loa@pi.nu> | <mailto:loa@pi.nu> | |||
WG Chair: Ross Callon | ||||
<mailto:rcallon@juniper.net> | ||||
WG Chair: George Swallow | ||||
<mailto:swallow.ietf@gmail.com> | ||||
Editor: Tarek Saad | Editor: Tarek Saad | |||
<mailto:tsaad@cisco.com> | <mailto:tsaad@cisco.com> | |||
Editor: Kamran Raza | Editor: Kamran Raza | |||
<mailto:skraza@cisco.com> | <mailto:skraza@cisco.com> | |||
Editor: Rakesh Gandhi | Editor: Rakesh Gandhi | |||
<mailto:rgandhi@cisco.com> | <mailto:rgandhi@cisco.com> | |||
Editor: Xufeng Liu | Editor: Xufeng Liu | |||
<mailto: xufeng.liu.ietf@gmail.com> | <mailto: xufeng.liu.ietf@gmail.com> | |||
Editor: Vishnu Pavan Beeram | Editor: Vishnu Pavan Beeram | |||
<mailto:vbeeram@juniper.net> | <mailto:vbeeram@juniper.net> | |||
Editor: Himanshu Shah | Editor: Himanshu Shah | |||
<mailto:hshah@ciena.com> | <mailto:hshah@ciena.com> | |||
Editor: Igor Bryskin | Editor: Igor Bryskin | |||
<mailto: Igor.Bryskin@huawei.com> | <mailto: Igor.Bryskin@huawei.com>"; | |||
Editor: Xia Chen | ||||
<mailto:jescia.chenxia@huawei.com> | ||||
Editor: Raqib Jones | ||||
<mailto:raqib@Brocade.com> | ||||
Editor: Bin Wen | ||||
<mailto:Bin_Wen@cable.comcast.com>"; | ||||
description | description | |||
"This YANG module augments the 'ietf-routing' module with basic | "This YANG module augments the 'ietf-routing' module with basic | |||
configuration and operational state data for MPLS static"; | configuration and operational state data for MPLS static"; | |||
revision "2017-07-02" { | revision "2018-10-04" { | |||
description | description | |||
"Latest revision: | "Latest revision: | |||
- Addressed MPLS-RT review comments"; | - Addressed MPLS-RT review comments"; | |||
reference "RFC 3031: A YANG Data Model for Static MPLS LSPs"; | reference "RFC 3031: Multiprotocol Label Switching Architecture"; | |||
} | } | |||
typedef static-lsp-ref { | typedef static-lsp-ref { | |||
type leafref { | type leafref { | |||
path "/rt:routing/mpls:mpls/mpls-static:static-lsps/" + | path "/rt:routing/mpls:mpls/mpls-static:static-lsps/" + | |||
"mpls-static:static-lsp/mpls-static:name"; | "mpls-static:static-lsp/mpls-static:name"; | |||
} | } | |||
description | description | |||
"This type is used by data models that need to reference | "This type is used by data models that need to reference | |||
configured static LSP."; | configured static LSP."; | |||
} | } | |||
typedef mpls-operations-type { | grouping in-segment { | |||
type enumeration { | description "In-segment grouping"; | |||
enum impose-and-forward { | container in-segment { | |||
description | description "MPLS incoming segment"; | |||
"Operation impose outgoing label(s) and forward to | container fec { | |||
next-hop"; | description "Forwarding Equivalence Class grouping"; | |||
} | choice type { | |||
enum pop-and-forward { | description "FEC type choices"; | |||
description | case ip-prefix { | |||
"Operation pop incoming label and forward to next-hop"; | leaf ip-prefix { | |||
} | type inet:ip-prefix; | |||
enum pop-impose-and-forward { | description "An IP prefix"; | |||
description | } | |||
"Operation pop incoming label, impose one or more | } | |||
outgoing label(s) and forward to next-hop"; | case mpls-label { | |||
} | leaf incoming-label { | |||
enum swap-and-forward { | type rt-types:mpls-label; | |||
description | description "label value on the incoming packet"; | |||
"Operation swap incoming label, with outgoing label and | } | |||
forward to next-hop"; | } | |||
} | case tunnel { | |||
enum pop-and-lookup { | leaf tunnel { | |||
description | type te:tunnel-ref; | |||
"Operation pop incoming label and perform a lookup"; | description "TE tunnel FEC mapping"; | |||
} | } | |||
} | ||||
description "MPLS operations types"; | ||||
} | ||||
grouping path-basic_config { | ||||
description "common definitions for statics"; | ||||
leaf next-hop { | ||||
type inet:ip-address; | ||||
description "next hop IP address for the LSP"; | ||||
} | ||||
leaf outgoing-label { | ||||
type rt-types:mpls-label; | ||||
description | ||||
"label value to push at the current hop for the | ||||
LSP"; | ||||
} | ||||
leaf outgoing-interface { | ||||
type if:interface-ref; | ||||
description | ||||
"The outgoing interface"; | ||||
} | ||||
} | ||||
grouping path-outgoing-labels_config { | ||||
description "Path outgoing labels grouping"; | ||||
leaf index { | ||||
type uint8 { | ||||
range "0..255"; | ||||
} | ||||
description | ||||
"Index of the label. Index 0 indicates | ||||
top of the label stack"; | ||||
} | ||||
leaf label { | ||||
type rt-types:mpls-label; | ||||
description | ||||
"The outgoing MPLS labels to impose"; | ||||
} | ||||
} | ||||
grouping path-outgoing-labels { | ||||
description "Path outgoing labels grouping"; | ||||
container outgoing-labels { | ||||
description "List of outgoing labels"; | ||||
list outgoing-labels { | ||||
key "index"; | ||||
description "Outgoing label list"; | ||||
leaf index { | ||||
type leafref { | ||||
path "../config/index"; | ||||
} | } | |||
description | ||||
"Index of the label. Index 0 indicates | ||||
top of the label stack"; | ||||
} | ||||
container config { | ||||
description | ||||
"Configuration intended parameters"; | ||||
uses path-outgoing-labels_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"Configuration applied parameters and state"; | ||||
uses path-outgoing-labels_config; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
grouping path-properties_config { | ||||
description | ||||
"MPLS path properties"; | ||||
leaf path-index { | ||||
type uint16; | ||||
description | ||||
"Path identifier"; | ||||
} | ||||
leaf backup-path-index { | ||||
type uint16; | ||||
description | ||||
"Backup path identifier"; | ||||
} | ||||
leaf next-hop { | ||||
type inet:ip-address; | ||||
description | ||||
"The address of the next-hop"; | ||||
} | ||||
leaf outgoing-interface { | ||||
type if:interface-ref; | ||||
description | ||||
"The outgoing interface"; | ||||
} | ||||
leaf loadshare { | ||||
type uint16; | ||||
description | ||||
"This value is used to compute a loadshare to perform un-equal | ||||
load balancing when multiple outgoing path(s) are specified. A | ||||
share is computed as a ratio of this number to the total under | ||||
all configured path(s)."; | ||||
} | ||||
leaf role { | ||||
type enumeration { | ||||
enum PRIMARY { | ||||
description | ||||
"Path as primary traffic carrying"; | ||||
} | ||||
enum BACKUP { | ||||
description | ||||
"Path acts as backup"; | ||||
} | } | |||
enum PRIMARY_AND_BACKUP { | leaf incoming-interface { | |||
type if:interface-ref; | ||||
description | description | |||
"Path acts as primary and backup simultaneously"; | "Optional incoming interface if FEC is restricted | |||
to traffic incoming on a specific interface"; | ||||
} | } | |||
} | } | |||
description | ||||
"The MPLS path role"; | ||||
} | } | |||
} | } | |||
grouping static-lsp-paths { | grouping out-segment { | |||
description "Static LSP path grouping"; | description "Out-segment grouping"; | |||
choice out-segment { | container out-segment { | |||
description "The MPLS out-segment type choice"; | description "MPLS outgoing segment"; | |||
case simple-path { | choice out-segment { | |||
container simple-path { | description "The MPLS out-segment type choice"; | |||
description "Simple path container"; | case nhlfe-single { | |||
container config { | container nhlfe-single { | |||
description | description "Container for single NHLFE entry"; | |||
"Holds the intended configuration"; | uses mpls:nhlfe-single-contents; | |||
uses path-basic_config; | leaf outgoing-interface { | |||
} | type if:interface-ref; | |||
container state { | description | |||
config false; | "The outgoing interface"; | |||
description | } | |||
"Holds the state and inuse configuration"; | ||||
uses path-basic_config; | ||||
} | } | |||
} | } | |||
} | case nhlfe-multiple { | |||
case multiple-paths { | container nhlfe-multiple { | |||
container paths { | description "Container for multiple NHLFE entries"; | |||
description "List of outgoing paths"; | list nhlfe { | |||
list path { | key index; | |||
key path-index; | description "MPLS NHLFE entry"; | |||
description | uses mpls:nhlfe-multiple-contents; | |||
"The list of MPLS paths associated with the FEC"; | leaf outgoing-interface { | |||
leaf path-index { | type if:interface-ref; | |||
type leafref { | description | |||
path "../config/path-index"; | "The outgoing interface"; | |||
} | } | |||
description "Index of the path"; | ||||
} | ||||
container config { | ||||
description | ||||
"Holds the intended configuration"; | ||||
uses path-properties_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"Holds the state and inuse configuration"; | ||||
uses path-properties_config; | ||||
} | } | |||
} | } | |||
uses path-outgoing-labels; | ||||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
grouping in-segment_config { | ||||
description "In-segment grouping"; | ||||
choice type { | ||||
description | ||||
"Basic FEC choice"; | ||||
case ip-prefix { | ||||
leaf ip-prefix { | ||||
type inet:ip-prefix; | ||||
description "An IP prefix"; | ||||
} | ||||
} | ||||
case mpls-label { | ||||
leaf incoming-label { | ||||
type rt-types:mpls-label; | ||||
description "label value on the incoming packet"; | ||||
} | ||||
} | ||||
case tunnel { | ||||
leaf tunnel { | ||||
type te:tunnel-ref; | ||||
description "TE tunnel FEC mapping"; | ||||
} | ||||
} | ||||
} | ||||
leaf incoming-interface { | ||||
type if:interface-ref; | ||||
description | ||||
"Optional incoming interface if FEC is restricted | ||||
to traffic incoming on a specific interface"; | ||||
} | ||||
} | ||||
grouping in-segment { | ||||
description "In-segment grouping"; | ||||
container in-segment { | ||||
description | ||||
"MPLS incoming segment"; | ||||
container config { | ||||
description | ||||
"Holds the intended configuration"; | ||||
uses in-segment_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"Holds the state and inuse configuration"; | ||||
uses in-segment_config; | ||||
} | ||||
} | ||||
} | ||||
grouping static-lsp-top_config { | ||||
description "Static LSP configuration grouping"; | ||||
leaf name { | ||||
type string; | ||||
description "name to identify the LSP"; | ||||
} | ||||
leaf operation { | ||||
type mpls-operations-type; | ||||
description | ||||
"The MPLS operation to be executed on the incoming packet"; | ||||
} | ||||
} | ||||
grouping static-lsp-top { | ||||
description "common definitions for static LSPs"; | ||||
container config { | ||||
description | ||||
"Holds the intended configuration"; | ||||
uses static-lsp-top_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"Holds the state and inuse configuration"; | ||||
uses static-lsp-top_config; | ||||
} | ||||
} | ||||
augment "/rt:routing/mpls:mpls" { | augment "/rt:routing/mpls:mpls" { | |||
description "Augmentations for MPLS Static LSPs"; | description "Augmentations for MPLS Static LSPs"; | |||
container static-lsps { | container static-lsps { | |||
description | description | |||
"Statically configured LSPs, without dynamic signaling"; | "Statically configured LSPs, without dynamic signaling"; | |||
list static-lsp { | list static-lsp { | |||
key name; | key name; | |||
description "list of defined static LSPs"; | description "list of defined static LSPs"; | |||
leaf name { | leaf name { | |||
type leafref { | type string; | |||
path "../config/name"; | ||||
} | ||||
description "name to identify the LSP"; | description "name to identify the LSP"; | |||
} | } | |||
uses static-lsp-top; | leaf operation { | |||
uses static-lsp-paths; | type mpls:mpls-operations-type; | |||
description | ||||
"The MPLS operation to be executed on the incoming packet"; | ||||
} | ||||
uses in-segment; | ||||
uses out-segment; | ||||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
Figure 3: MPLS Static LSP YANG module | Figure 3: MPLS Static LSP YANG module | |||
The extended MPLS Static LSP module is shown in Figure 4. | The extended MPLS Static LSP module is shown in Figure 4. | |||
<CODE BEGINS> file "ietf-mpls-static-extended@2017-07-02.yang" | <CODE BEGINS> file "ietf-mpls-static-extended@2018-10-04.yang" | |||
module ietf-mpls-static-extended { | module ietf-mpls-static-extended { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-static-extended"; | namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-static-extended"; | |||
prefix "mpls-static-ext"; | prefix "mpls-static-ext"; | |||
import ietf-mpls { | import ietf-mpls { | |||
prefix "mpls"; | prefix "mpls"; | |||
} | } | |||
skipping to change at page 15, line 12 ¶ | skipping to change at page 12, line 12 ¶ | |||
organization "IETF MPLS Working Group"; | organization "IETF MPLS Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/mpls/> | "WG Web: <http://tools.ietf.org/wg/mpls/> | |||
WG List: <mailto:mpls@ietf.org> | WG List: <mailto:mpls@ietf.org> | |||
WG Chair: Loa Andersson | WG Chair: Loa Andersson | |||
<mailto:loa@pi.nu> | <mailto:loa@pi.nu> | |||
WG Chair: Ross Callon | ||||
<mailto:rcallon@juniper.net> | ||||
WG Chair: George Swallow | ||||
<mailto:swallow.ietf@gmail.com> | ||||
Editor: Tarek Saad | Editor: Tarek Saad | |||
<mailto:tsaad@cisco.com> | <mailto:tsaad@cisco.com> | |||
Editor: Kamran Raza | Editor: Kamran Raza | |||
<mailto:skraza@cisco.com> | <mailto:skraza@cisco.com> | |||
Editor: Rakesh Gandhi | Editor: Rakesh Gandhi | |||
<mailto:rgandhi@cisco.com> | <mailto:rgandhi@cisco.com> | |||
Editor: Xufeng Liu | Editor: Xufeng Liu | |||
<mailto: xufeng.liu.ietf@gmail.com> | <mailto: xufeng.liu.ietf@gmail.com> | |||
Editor: Vishnu Pavan Beeram | Editor: Vishnu Pavan Beeram | |||
<mailto:vbeeram@juniper.net> | <mailto:vbeeram@juniper.net> | |||
Editor: Himanshu Shah | Editor: Himanshu Shah | |||
<mailto:hshah@ciena.com> | <mailto:hshah@ciena.com> | |||
Editor: Igor Bryskin | Editor: Igor Bryskin | |||
<mailto: Igor.Bryskin@huawei.com> | <mailto: Igor.Bryskin@huawei.com>"; | |||
Editor: Xia Chen | ||||
<mailto:jescia.chenxia@huawei.com> | ||||
Editor: Raqib Jones | ||||
<mailto:raqib@Brocade.com> | ||||
Editor: Bin Wen | ||||
<mailto:Bin_Wen@cable.comcast.com>"; | ||||
description | description | |||
"This module contains the Extended MPLS YANG data model."; | "This module contains the Extended MPLS YANG data model."; | |||
revision 2017-03-10 { | revision "2018-10-04" { | |||
description "Latest revision of MPLS extended yang module."; | description "Latest revision of MPLS extended yang module."; | |||
reference "RFC2205"; | reference "RFC2205"; | |||
} | } | |||
/* RSVP features */ | /* RSVP features */ | |||
feature bandwidth { | feature bandwidth { | |||
description | description | |||
"Indicates support for static LSP bandwidth allocation"; | "Indicates support for static LSP bandwidth allocation"; | |||
} | } | |||
grouping static-lsp-extended_config { | grouping bidir-static-lsp { | |||
description | description | |||
"Configuration parameters for MPLS extended | "grouping for top level list of static bidirectional LSPs"; | |||
parameters"; | leaf forward-lsp { | |||
type mpls-static:static-lsp-ref; | ||||
description | ||||
"Reference to a configured static forward LSP"; | ||||
} | ||||
leaf reverse-lsp { | ||||
type mpls-static:static-lsp-ref; | ||||
description | ||||
"Reference to a configured static reverse LSP"; | ||||
} | ||||
} | ||||
augment "/rt:routing/mpls:mpls/mpls-static:static-lsps" { | ||||
description | ||||
"Augmentation for static MPLS LSPs"; | ||||
leaf bandwidth { | leaf bandwidth { | |||
type uint32; | type uint32; | |||
description | description | |||
"bandwidth in Mbps, e.g., using offline calculation"; | "bandwidth in Mbps, e.g., using offline calculation"; | |||
} | } | |||
leaf lsp-priority-setup { | leaf lsp-priority-setup { | |||
type uint8 { | type uint8 { | |||
range "0..7"; | range "0..7"; | |||
} | } | |||
description "LSP setup priority"; | description "LSP setup priority"; | |||
} | } | |||
leaf lsp-priority-hold { | leaf lsp-priority-hold { | |||
type uint8 { | type uint8 { | |||
range "0..7"; | range "0..7"; | |||
} | } | |||
description "LSP hold priority"; | description "LSP hold priority"; | |||
} | } | |||
} | } | |||
grouping bidir-static-lsp_config { | ||||
description "common definitions for static LSPs"; | ||||
leaf forward-lsp { | ||||
type mpls-static:static-lsp-ref; | ||||
description | ||||
"Reference to a configured static forward LSP"; | ||||
} | ||||
leaf reverse-lsp { | ||||
type mpls-static:static-lsp-ref; | ||||
description | ||||
"Reference to a configured static reverse LSP"; | ||||
} | ||||
} | ||||
grouping bidir-static-lsp { | ||||
description "grouping for top level list of static LSPs"; | ||||
container config { | ||||
description | ||||
"Holds the intended configuration"; | ||||
uses bidir-static-lsp_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"Holds the state and inuse configuration"; | ||||
uses bidir-static-lsp_config; | ||||
} | ||||
} | ||||
augment "/rt:routing/mpls:mpls/mpls-static:static-lsps" { | ||||
description | ||||
"RSVP signaling all interfaces configuration extensions"; | ||||
uses static-lsp-extended_config; | ||||
} | ||||
augment "/rt:routing/mpls:mpls" { | augment "/rt:routing/mpls:mpls" { | |||
description "Augmentations for MPLS Static LSPs"; | description "Augmentations for MPLS Static LSPs"; | |||
container bidir-static-lsps { | container bidir-static-lsps { | |||
description | description | |||
"Statically configured LSPs, without dynamic signaling"; | "Statically configured LSPs, without dynamic signaling"; | |||
list bidir-static-lsp { | list bidir-static-lsp { | |||
key name; | key name; | |||
description "list of defined static LSPs"; | description "list of defined static LSPs"; | |||
leaf name { | leaf name { | |||
skipping to change at page 17, line 38 ¶ | skipping to change at page 14, line 4 ¶ | |||
"Statically configured LSPs, without dynamic signaling"; | "Statically configured LSPs, without dynamic signaling"; | |||
list bidir-static-lsp { | list bidir-static-lsp { | |||
key name; | key name; | |||
description "list of defined static LSPs"; | description "list of defined static LSPs"; | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
description "name to identify the LSP"; | description "name to identify the LSP"; | |||
} | } | |||
uses bidir-static-lsp; | uses bidir-static-lsp; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
Figure 4: Extended MPLS Static LSP YANG module | Figure 4: Extended MPLS Static LSP YANG module | |||
2. IANA Considerations | 3. IANA Considerations | |||
This document registers the following URIs in the IETF XML registry | This document registers the following URIs in the IETF XML registry | |||
[RFC3688]. Following the format in [RFC3688], the following | [RFC3688]. Following the format in [RFC3688], the following | |||
registration is requested to be made. | registration is requested to be made. | |||
URI: urn:ietf:params:xml:ns:yang:ietf-mpls-static XML: N/A, the | URI: urn:ietf:params:xml:ns:yang:ietf-mpls-static | |||
requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
URI: urn:ietf:params:xml:ns:yang:ietf-mpls-static-extended XML: N/A, | URI: urn:ietf:params:xml:ns:yang:ietf-mpls-static-extended | |||
the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
This document registers two YANG modules in the YANG Module Names | This document registers two YANG modules in the YANG Module Names | |||
registry [RFC6020]. | registry [RFC6020]. | |||
name: ietf-mpls-static namespace: urn:ietf:params:xml:ns:yang:ietf- | name: ietf-mpls-static | |||
mpls-static prefix: ietf-mpls-static reference: RFC3031 | namespace: urn:ietf:params:xml:ns:yang:ietf-mpls-static | |||
prefix: ietf-mpls-static | ||||
reference: RFC3031 | ||||
name: ietf-mpls-static-exteneded namespace: | name: ietf-mpls-static-extended | |||
urn:ietf:params:xml:ns:yang:ietf-mpls-static-extended prefix: ietf- | namespace: urn:ietf:params:xml:ns:yang:ietf-mpls-static-extended | |||
mpls-static reference: RFC3031 | prefix: ietf-mpls-static | |||
reference: RFC3031 | ||||
3. Security Considerations | 4. Security Considerations | |||
The YANG module defined in this memo is designed to be accessed via | The YANG module defined in this document is designed to be accessed | |||
the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the | via the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the | |||
secure transport layer and the mandatory-to-implement secure | secure transport layer and the mandatory-to-implement secure | |||
transport is SSH [RFC6242]. The NETCONF access control model | transport is SSH [RFC6242]. The NETCONF access control model | |||
[RFC6536] provides means to restrict access for particular NETCONF | [RFC8341] provides means to restrict access for particular NETCONF | |||
users to a pre-configured subset of all available NETCONF protocol | users to a pre-configured subset of all available NETCONF protocol | |||
operations and content. | operations and content. | |||
There are a number of data nodes defined in the YANG module which are | There are certain objects or data nodes that are defined in this YANG | |||
writable/creatable/deletable (i.e., config true, which is the | module which are writable/creatable/deletable and that can be | |||
default). These data nodes may be considered sensitive or vulnerable | considered sensitive or vulnerable in some network environments. | |||
in some network environments. Write operations (e.g., <edit-config>) | Specifically, misconfiguration or manipulations of objects or data | |||
to these data nodes without proper protection can have a negative | node(s) defined in this model, including: in-segment(s), out- | |||
effect on network operations. | segment(s) and their associated parameters that collectively allow | |||
the provisioning of MPLS LSP(s) and associated parameters on a LSR | ||||
can potentially have disastrous results. | ||||
4. Normative References | 5. References | |||
[I-D.saad-mpls-static-yang] | 5.1. Normative References | |||
Saad, T., Raza, K., Gandhi, R., Liu, X., Beeram, V., Shah, | ||||
H., Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG | [I-D.ietf-mpls-base-yang] | |||
Data Model for MPLS Static LSPs", draft-saad-mpls-static- | Saad, T., Raza, K., Gandhi, R., Liu, X., and V. Beeram, "A | |||
yang-03 (work in progress), May 2016. | YANG Data Model for MPLS Base", draft-ietf-mpls-base- | |||
yang-07 (work in progress), October 2018. | ||||
[I-D.ietf-teas-yang-te] | ||||
Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and | ||||
I. Bryskin, "A YANG Data Model for Traffic Engineering | ||||
Tunnels and Interfaces", draft-ietf-teas-yang-te-16 (work | ||||
in progress), July 2018. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol | ||||
Label Switching Architecture", RFC 3031, | ||||
DOI 10.17487/RFC3031, January 2001, | ||||
<https://www.rfc-editor.org/info/rfc3031>. | ||||
[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>. | |||
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
<https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
<https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
<https://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
Protocol (NETCONF) Access Control Model", RFC 6536, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
DOI 10.17487/RFC6536, March 2012, | <https://www.rfc-editor.org/info/rfc6991>. | |||
<https://www.rfc-editor.org/info/rfc6536>. | ||||
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | ||||
RFC 7950, DOI 10.17487/RFC7950, August 2016, | ||||
<https://www.rfc-editor.org/info/rfc7950>. | ||||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, | ||||
"Common YANG Data Types for the Routing Area", RFC 8294, | ||||
DOI 10.17487/RFC8294, December 2017, | ||||
<https://www.rfc-editor.org/info/rfc8294>. | ||||
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
Access Control Model", STD 91, RFC 8341, | ||||
DOI 10.17487/RFC8341, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8341>. | ||||
[RFC8343] Bjorklund, M., "A YANG Data Model for Interface | ||||
Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8343>. | ||||
[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | ||||
Routing Management (NMDA Version)", RFC 8349, | ||||
DOI 10.17487/RFC8349, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8349>. | ||||
5.2. Informative References | ||||
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | ||||
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8340>. | ||||
Authors' Addresses | Authors' Addresses | |||
Tarek Saad | Tarek Saad | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Email: tsaad@cisco.com | Email: tsaad@cisco.com | |||
Kamran Raza | Kamran Raza | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Email: skraza@cisco.com | Email: skraza@cisco.com | |||
Rakesh Gandhi | Rakesh Gandhi | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Email: rgandhi@cisco.com | Email: rgandhi@cisco.com | |||
skipping to change at page 19, line 46 ¶ | skipping to change at page 17, line 15 ¶ | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Email: skraza@cisco.com | Email: skraza@cisco.com | |||
Rakesh Gandhi | Rakesh Gandhi | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Email: rgandhi@cisco.com | Email: rgandhi@cisco.com | |||
Xufeng Liu | Xufeng Liu | |||
Jabil | Volta Networks | |||
Email: xufeng.liu.ietf@gmail.com | ||||
Email: Xufeng_Liu@jabil.com | ||||
Vishnu Pavan Beeram | Vishnu Pavan Beeram | |||
Juniper Networks | Juniper Networks | |||
Email: vbeeram@juniper.net | Email: vbeeram@juniper.net | |||
Himanshu Shah | ||||
Ciena | ||||
Email: hshah@ciena.com | ||||
Igor Bryskin | ||||
Huawei Technologies | ||||
Email: Igor.Bryskin@huawei.com | ||||
End of changes. 82 change blocks. | ||||
482 lines changed or deleted | 347 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |