draft-ietf-mpls-static-yang-00.txt   draft-ietf-mpls-static-yang-01.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: December 13, 2016 Cisco Systems Inc Expires: January 6, 2017 Cisco Systems Inc
X. Liu X. Liu
Ericsson Ericsson
V. Beeram V. Beeram
Juniper Networks Juniper Networks
H. Shah H. Shah
Ciena Ciena
I. Bryskin I. Bryskin
X. Chen X. Chen
Huawei Technologies Huawei Technologies
R. Jones R. Jones
Brocade Brocade
B. Wen B. Wen
Comcast Comcast
June 11, 2016 July 05, 2016
A YANG Data Model for MPLS Static LSPs A YANG Data Model for MPLS Static LSPs
draft-ietf-mpls-static-yang-00 draft-ietf-mpls-static-yang-01
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 49 skipping to change at page 1, line 49
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 December 13, 2016. This Internet-Draft will expire on January 6, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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. MPLS Static LSPs Model Tree Diagram . . . . . . . . . . . 4 1.2. Model Organization . . . . . . . . . . . . . . . . . . . 4
1.3. MPLS Static LSP YANG Module . . . . . . . . . . . . . . . 5 1.3. MPLS Static LSPs Model Tree Diagram . . . . . . . . . . . 4
2. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 1.4. MPLS Static LSP YANG Module(s) . . . . . . . . . . . . . 6
3. Security Considerations . . . . . . . . . . . . . . . . . . . 11 2. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
4. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 3. Security Considerations . . . . . . . . . . . . . . . . . . . 16
4.1. Normative References . . . . . . . . . . . . . . . . . . 11 4. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2. Informative References . . . . . . . . . . . . . . . . . 12 4.1. Normative References . . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 4.2. Informative References . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction 1. Introduction
This document describes a YANG data model for configuring and This document describes a YANG data model for configuring and
managing the Static LSPs feature. The model allows the configuration managing the Static LSPs feature. The model allows the configuration
of LER and LSR devices with the necessary MPLS cross-connects or of LER and LSR devices with the necessary MPLS cross-connects or
bindings to realize an end-to-end LSP service. 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
skipping to change at page 4, line 5 skipping to change at page 4, line 5
o mandatory node, o mandatory node,
o module, o module,
o schema tree, o schema tree,
o state data, o state data,
o RPC operation. o RPC operation.
1.2. MPLS Static LSPs Model Tree Diagram 1.2. Model Organization
The MPLS Static LSP tree diagram is shown in Figure 1. The base MPLS Static LSP model covers the core features with the
minimal set of configuration parameters needed to manage and operate
MPLS Static LSPs.
Additional MPLS Static LSP parameters as well as optional feature(s)
are grouped in a separate MPLS Static LSP extended model. The
relationship between the MPLS base and other MPLS modules are shown
in Figure 1.
MPLS base +-----------+ ^: import
module | ietf-mpls | o: augment
+-----------+
o o
| \
v V
+------------------+ +--------------------+
MPLS Static | ietf-mpls-static | | ietf-mpls-ldp.yang | . . .
LSP module +------------------+ +--------------------+
^
|
o
+---------------------------+
Extended MPLS | ietf-mpls-static-extended |
Static LSP +---------------------------+
module
Figure 1: Relationship between MPLS modules
1.3. MPLS Static LSPs Model Tree Diagram
The MPLS Static LSP tree diagram 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 string | +--rw name string
+--rw config | +--rw config
| +--rw in-segment | | +--rw in-segment
| | +--rw (type)? | | | +--rw (type)?
| | +--:(ip-prefix) | | | | +--:(ip-prefix)
| | | +--rw ip-prefix? inet:ip-prefix | | | | | +--rw ip-prefix? inet:ip-prefix
| | +--:(mpls-label) | | | | +--:(mpls-label)
| | +--rw incoming-label? mpls:mpls-label | | | | | +--rw incoming-label? mpls:mpls-label
| +--rw operation? enumeration | | | | +--:(tunnel)
| +--rw (out-segment)? | | | | +--rw tunnel? te:tunnel-ref
| +--:(simple-path) | | | +--rw incoming-interface? if:interface-ref
| | +--rw next-hop? inet:ip-address | | +--rw operation? enumeration
| | +--rw outgoing-label? mpls:mpls-label | | +--rw (out-segment)?
| | +--rw outgoing-interface? if:interface-ref | | +--:(simple-path)
| +--:(path-list) | | | +--rw next-hop? inet:ip-address
| +--rw paths* [path-index] | | | +--rw outgoing-label? mpls:mpls-label
| +--rw path-index uint16 | | | +--rw outgoing-interface? if:interface-ref
| +--rw backup-path-index? uint16 | | +--:(path-list)
| +--rw next-hop? inet:ip-address | | +--rw paths* [path-index]
| +--rw outgoing-labels* mpls:mpls-label | | +--rw path-index uint16
| +--rw outgoing-interface? if:interface-ref | | +--rw backup-path-index? uint16
| +--rw loadshare? uint16 | | +--rw next-hop? inet:ip-address
| +--rw role? enumeration | | +--rw outgoing-labels* mpls:mpls-label
+--ro state | | +--rw outgoing-interface? if:interface-ref
+--ro in-segment | | +--rw loadshare? uint16
| +--ro (type)? | | +--rw role? enumeration
| +--:(ip-prefix) | +--ro state
| | +--ro ip-prefix? inet:ip-prefix | +--ro in-segment
| +--:(mpls-label) | | +--ro (type)?
| +--ro incoming-label? mpls:mpls-label | | | +--:(ip-prefix)
+--ro operation? enumeration | | | | +--ro ip-prefix? inet:ip-prefix
+--ro (out-segment)? | | | +--:(mpls-label)
+--:(simple-path) | | | | +--ro incoming-label? mpls:mpls-label
| +--ro next-hop? inet:ip-address | | | +--:(tunnel)
| +--ro outgoing-label? mpls:mpls-label | | | +--ro tunnel? te:tunnel-ref
| +--ro outgoing-interface? if:interface-ref | | +--ro incoming-interface? if:interface-ref
+--:(path-list) | +--ro operation? enumeration
+--ro paths* [path-index] | +--ro (out-segment)?
+--ro path-index uint16 | +--:(simple-path)
+--ro backup-path-index? uint16 | | +--ro next-hop? inet:ip-address
+--ro next-hop? inet:ip-address | | +--ro outgoing-label? mpls:mpls-label
+--ro outgoing-labels* mpls:mpls-label | | +--ro outgoing-interface? if:interface-ref
+--ro outgoing-interface? if:interface-ref | +--:(path-list)
+--ro loadshare? uint16 | +--ro paths* [path-index]
+--ro role? enumeration | +--ro path-index uint16
| +--ro backup-path-index? uint16
| +--ro next-hop? inet:ip-address
| +--ro outgoing-labels* mpls:mpls-label
| +--ro outgoing-interface? if:interface-ref
| +--ro loadshare? uint16
| +--ro role? enumeration
+--rw mpls-static-ext:bandwidth? uint32
+--rw mpls-static-ext:lsp-priority-setup? uint8
+--rw mpls-static-ext:lsp-priority-hold? uint8
Figure 1: MPLS Static LSP tree diagram Figure 2: MPLS Static LSP tree diagram
1.3. MPLS Static LSP YANG Module 1.4. MPLS Static LSP YANG Module(s)
<CODE BEGINS>file "ietf-mpls-static@2016-05-11.yang" The MPLS Static LSP module is shown in Figure 3.
<CODE BEGINS>file "ietf-mpls-static@2016-07-05.yang"
module ietf-mpls-static { module ietf-mpls-static {
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;
} }
skipping to change at page 5, line 38 skipping to change at page 6, line 32
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
} }
/* Import TE generic types */
import ietf-te {
prefix te;
}
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>
skipping to change at page 6, line 40 skipping to change at page 7, line 39
Editor: Raqib Jones Editor: Raqib Jones
<mailto:raqib@Brocade.com> <mailto:raqib@Brocade.com>
Editor: Bin Wen Editor: Bin Wen
<mailto:Bin_Wen@cable.comcast.com>"; <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 "2016-05-11" { revision "2016-07-05" {
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: A YANG Data Model for Static MPLS LSPs";
} }
typedef static-lsp-ref {
type leafref {
path "/rt:routing/mpls:mpls/mpls-static:static-lsps/" +
"mpls-static:static-lsp/mpls-static:name";
}
description
"This type is used by data models that need to reference
configured static LSP.";
}
grouping path-basic_config { grouping path-basic_config {
description "common definitions for statics"; description "common definitions for statics";
leaf next-hop { leaf next-hop {
type inet:ip-address; type inet:ip-address;
description "next hop IP address for the LSP"; description "next hop IP address for the LSP";
} }
leaf outgoing-label { leaf outgoing-label {
type mpls:mpls-label; type mpls:mpls-label;
skipping to change at page 7, line 32 skipping to change at page 8, line 39
grouping path-properties_config { grouping path-properties_config {
description description
"MPLS path properties"; "MPLS path properties";
leaf path-index { leaf path-index {
type uint16; type uint16;
description description
"Path identifier"; "Path identifier";
} }
leaf backup-path-index { leaf backup-path-index {
type uint32; type uint16;
description description
"Backup path identifier"; "Backup path identifier";
} }
leaf next-hop { leaf next-hop {
type inet:ip-address; type inet:ip-address;
description description
"The address of the next-hop"; "The address of the next-hop";
} }
skipping to change at page 9, line 10 skipping to change at page 10, line 17
type inet:ip-prefix; type inet:ip-prefix;
description "An IP prefix"; description "An IP prefix";
} }
} }
case mpls-label { case mpls-label {
leaf incoming-label { leaf incoming-label {
type mpls:mpls-label; type mpls:mpls-label;
description "label value on the incoming packet"; 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";
} }
} }
leaf operation { leaf operation {
type enumeration { type enumeration {
enum impose-and-forward { enum impose-and-forward {
description description
"Operation impose outgoing label(s) and forward to "Operation impose outgoing label(s) and forward to
next-hop"; next-hop";
} }
skipping to change at page 10, line 44 skipping to change at page 12, line 15
leaf name { leaf name {
type string; type string;
description "name to identify the LSP"; description "name to identify the LSP";
} }
uses static-lsp; uses static-lsp;
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
Figure 2: MPLS Static LSP YANG module Figure 3: MPLS Static LSP YANG module
The extended MPLS Static LSP module is shown in Figure 4.
<CODE BEGINS>file "ietf-mpls-static-extended@2016-07-05.yang"
module ietf-mpls-static-extended {
namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-static-extended";
prefix "mpls-static-ext";
import ietf-mpls {
prefix "mpls";
}
import ietf-routing {
prefix "rt";
}
import ietf-mpls-static {
prefix "mpls-static";
}
organization "IETF MPLS Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/mpls/>
WG List: <mailto:mpls@ietf.org>
WG Chair: Loa Andersson
<mailto:loa@pi.nu>
WG Chair: Ross Callon
<mailto:rcallon@juniper.net>
WG Chair: George Swallow
<mailto:swallow.ietf@gmail.com>
Editor: Tarek Saad
<mailto:tsaad@cisco.com>
Editor: Kamran Raza
<mailto:skraza@cisco.com>
Editor: Rakesh Gandhi
<mailto:rgandhi@cisco.com>
Editor: Xufeng Liu
<mailto: xufeng.liu.ietf@gmail.com>
Editor: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net>
Editor: Himanshu Shah
<mailto:hshah@ciena.com>
Editor: Igor Bryskin
<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
"This module contains the Extended RSVP YANG data model.";
revision 2016-07-05 {
description "Latest revision of RSVP extended yang module.";
reference "RFC2205";
}
/* RSVP features */
feature bandwidth {
description
"Indicates support for static LSP bandwidth allocation";
}
grouping static-lsp-extended_config {
description
"Configuration parameters for MPLS extended
parameters";
leaf bandwidth {
type uint32;
description
"bandwidth in Mbps, e.g., using offline calculation";
}
leaf lsp-priority-setup {
type uint8 {
range "0..7";
}
description "LSP setup priority";
}
leaf lsp-priority-hold {
type uint8 {
range "0..7";
}
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" {
description "Augmentations for MPLS Static LSPs";
container bidir-static-lsps {
description
"Statically configured LSPs, without dynamic signaling";
list bidir-static-lsp {
key name;
description "list of defined static LSPs";
leaf name {
type string;
description "name to identify the LSP";
}
uses bidir-static-lsp;
}
}
}
}
<CODE ENDS>
Figure 4: Extended MPLS Static LSP YANG module
2. IANA Considerations 2. 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 XML: N/A, the
requested URI is an XML namespace. requested URI is an XML namespace.
This document registers a YANG module in the YANG Module Names URI: urn:ietf:params:xml:ns:yang:ietf-mpls-static-extended XML: N/A,
the requested URI is an XML namespace.
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 namespace: urn:ietf:params:xml:ns:yang:ietf-
mpls-static prefix: ietf-mpls-static reference: RFC3031 mpls-static prefix: ietf-mpls-static reference: RFC3031
name: ietf-mpls-static-exteneded namespace:
urn:ietf:params:xml:ns:yang:ietf-mpls-static-extended prefix: ietf-
mpls-static reference: RFC3031
3. Security Considerations 3. Security Considerations
The YANG module defined in this memo is designed to be accessed via The YANG module defined in this memo is designed to be accessed via
the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 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 [RFC6536] 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.
 End of changes. 21 change blocks. 
67 lines changed or deleted 302 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/