draft-ietf-mpls-base-yang-12.txt | draft-ietf-mpls-base-yang-13.txt | |||
---|---|---|---|---|
MPLS Working Group T. Saad | MPLS Working Group T. Saad | |||
Internet-Draft Juniper Networks | Internet-Draft Juniper Networks | |||
Intended status: Standards Track K. Raza | Intended status: Standards Track K. Raza | |||
Expires: August 22, 2020 R. Gandhi | Expires: September 4, 2020 R. Gandhi | |||
Cisco Systems Inc | Cisco Systems Inc | |||
X. Liu | X. Liu | |||
Volta Networks | Volta Networks | |||
V. Beeram | V. Beeram | |||
Juniper Networks | Juniper Networks | |||
February 19, 2020 | March 03, 2020 | |||
A YANG Data Model for MPLS Base | A YANG Data Model for MPLS Base | |||
draft-ietf-mpls-base-yang-12 | draft-ietf-mpls-base-yang-13 | |||
Abstract | Abstract | |||
This document contains a specification of the MPLS base YANG model. | This document contains a specification of the MPLS base YANG model. | |||
The MPLS base YANG model serves as a base framework for configuring | The MPLS base YANG model serves as a base framework for configuring | |||
and managing an MPLS switching subsystem on an MPLS-enabled router. | and managing an MPLS switching subsystem on an MPLS-enabled router. | |||
It is expected that other MPLS YANG models (e.g. MPLS LSP Static, | It is expected that other MPLS YANG models (e.g. MPLS Label Switched | |||
LDP or RSVP-TE YANG models) will augment the MPLS base YANG model. | Path (LSP) Static, LDP or RSVP-TE YANG models) will augment the MPLS | |||
base YANG model. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 22, 2020. | This Internet-Draft will expire on September 4, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 | |||
skipping to change at page 2, line 23 ¶ | skipping to change at page 2, line 24 ¶ | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Acronyms and Abbreviations . . . . . . . . . . . . . . . 3 | 1.2. Acronyms and Abbreviations . . . . . . . . . . . . . . . 3 | |||
2. MPLS Base Model . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. MPLS Base Model . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. Model Overview . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Model Overview . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.2. Model Organization . . . . . . . . . . . . . . . . . . . 4 | 2.2. Model Organization . . . . . . . . . . . . . . . . . . . 4 | |||
2.3. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 5 | 2.3. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 5 | |||
2.4. Model YANG Module . . . . . . . . . . . . . . . . . . . . 7 | 2.4. Model YANG Module . . . . . . . . . . . . . . . . . . . . 7 | |||
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 16 | 5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 17 | 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 17 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 18 | 7.2. Informative References . . . . . . . . . . . . . . . . . 18 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
1. Introduction | 1. Introduction | |||
A core routing data model is defined in [RFC8349], and it provides a | A core routing data model is defined in [RFC8349], and it provides a | |||
basis for the development of data models for routing protocols. The | basis for the development of data models for routing protocols. The | |||
skipping to change at page 3, line 39 ¶ | skipping to change at page 3, line 39 ¶ | |||
NHLFE: Next Hop Label Forwarding Entry | NHLFE: Next Hop Label Forwarding Entry | |||
ILM: Incoming Label Map | ILM: Incoming Label Map | |||
2. MPLS Base Model | 2. MPLS Base Model | |||
This document describes the ietf-mpls YANG module that provides base | This document describes the ietf-mpls YANG module that provides base | |||
components of the MPLS data model. It is expected that other MPLS | components of the MPLS data model. It is expected that other MPLS | |||
YANG modules will augment the ietf-mpls base module for other MPLS | YANG modules will augment the ietf-mpls base module for other MPLS | |||
extension to provision LSP(s) (e.g. MPLS Static, MPLS LDP or MPLS | extension to provision Label Switched Paths (LSPs) (e.g. MPLS | |||
RSVP-TE LSP(s)). | Static, MPLS LDP or MPLS RSVP-TE LSP(s)). | |||
2.1. Model Overview | 2.1. Model Overview | |||
This document defines a mechanism to model MPLS labeled routes as an | This document defines a mechanism to model MPLS labeled routes as an | |||
augmentation of the routing RIB data model defined in [RFC8349] for | augmentation of the routing RIB data model defined in [RFC8349] for | |||
IP prefix routes that are MPLS labeled. | IP prefix routes that are MPLS labeled. | |||
The other MPLS route(s) that are non-IP prefix routes are modelled by | The other MPLS route(s) that are non-IP prefix routes are modelled by | |||
introducing a new "mpls" address-family RIB as per recommendation . | introducing a new "mpls" address-family RIB as per recommendation . | |||
skipping to change at page 5, line 47 ¶ | skipping to change at page 5, line 47 ¶ | |||
+--rw ttl-propagate? boolean | +--rw ttl-propagate? boolean | |||
+--rw label-blocks | +--rw label-blocks | |||
| +--rw label-block* [index] | | +--rw label-block* [index] | |||
| +--rw index string | | +--rw index string | |||
| +--rw start-label? rt-types:mpls-label | | +--rw start-label? rt-types:mpls-label | |||
| +--rw end-label? rt-types:mpls-label | | +--rw end-label? rt-types:mpls-label | |||
| +--rw block-allocation-mode? identityref | | +--rw block-allocation-mode? identityref | |||
| +--ro free-labels-count? yang:counter32 | | +--ro free-labels-count? yang:counter32 | |||
| +--ro inuse-labels-count? yang:counter32 | | +--ro inuse-labels-count? yang:counter32 | |||
+--rw interface* [name] | +--rw interface* [name] | |||
+--rw name if:interface-ref | +--rw name if:interface-ref | |||
+--rw enabled? boolean | +--rw enabled? boolean | |||
+--rw mtu? uint32 | +--rw maximum-labeled-packet? uint32 | |||
augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: | |||
+--ro mpls-enabled? boolean {mpls}? | +--ro mpls-enabled? boolean {mpls}? | |||
+--ro local-label? rt-types:mpls-label {mpls}? | +--ro local-label? rt-types:mpls-label {mpls}? | |||
augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route/rt:next-hop | augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route/rt:next-hop | |||
/rt:next-hop-options/rt:simple-next-hop: | /rt:next-hop-options/rt:simple-next-hop: | |||
+--ro mpls-label-stack | +--ro mpls-label-stack | |||
+--ro entry* [id] | +--ro entry* [id] | |||
+--ro id uint8 | +--ro id uint8 | |||
+--ro label? rt-types:mpls-label | +--ro label? rt-types:mpls-label | |||
skipping to change at page 7, line 22 ¶ | skipping to change at page 7, line 22 ¶ | |||
o ietf-routing defined in [RFC8349] | o ietf-routing defined in [RFC8349] | |||
o ietf-routing-types defined in [RFC8294] | o ietf-routing-types defined in [RFC8294] | |||
o ietf-interfaces defined in [RFC8343] | o ietf-interfaces defined in [RFC8343] | |||
This model also references the following RFCs in defining the types | This model also references the following RFCs in defining the types | |||
and YANG grouping of the YANG module: [RFC3031], and [RFC3032]. | and YANG grouping of the YANG module: [RFC3031], and [RFC3032]. | |||
<CODE BEGINS> file "ietf-mpls@2020-02-19.yang" | <CODE BEGINS> file "ietf-mpls@2020-03-03.yang" | |||
module ietf-mpls { | module ietf-mpls { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-mpls"; | namespace "urn:ietf:params:xml:ns:yang:ietf-mpls"; | |||
/* Replace with IANA when assigned */ | /* Replace with IANA when assigned */ | |||
prefix "mpls"; | prefix "mpls"; | |||
import ietf-routing { | import ietf-routing { | |||
prefix "rt"; | prefix "rt"; | |||
skipping to change at page 8, line 47 ¶ | skipping to change at page 8, line 47 ¶ | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
// RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
// note. | // note. | |||
// RFC Ed.: update the date below with the date of RFC publication | // RFC Ed.: update the date below with the date of RFC publication | |||
// and remove this note. | // and remove this note. | |||
revision "2020-02-19" { | revision "2020-03-03" { | |||
description | description | |||
"Latest revision: | "Latest revision: | |||
- Addressed review comments"; | - Addressed review comments"; | |||
reference "RFC XXXX: A YANG Data Model for base MPLS"; | reference "RFC XXXX: A YANG Data Model for base MPLS"; | |||
} | } | |||
feature mpls { | feature mpls { | |||
description | description | |||
"Indicates support for MPLS switching."; | "Indicates support for MPLS switching."; | |||
skipping to change at page 11, line 27 ¶ | skipping to change at page 11, line 27 ¶ | |||
other than for referencing the entry."; | other than for referencing the entry."; | |||
} | } | |||
leaf loadshare { | leaf loadshare { | |||
type uint16; | type uint16; | |||
description | description | |||
"This value is used to compute a loadshare to perform un-equal | "This value is used to compute a loadshare to perform un-equal | |||
load balancing when multiple outgoing next-hop(s) are | load balancing when multiple outgoing next-hop(s) are | |||
specified. A share is computed as a ratio of this number to the | specified. A share is computed as a ratio of this number to the | |||
total under all next-hops(s)."; | total under all next-hops(s)."; | |||
reference "RFC3031, section 3.11 and 3.12."; | reference | |||
"RFC7424, section 5.4, | ||||
RFC3031, section 3.11 and 3.12."; | ||||
} | } | |||
leaf role { | leaf role { | |||
type nhlfe-role; | type nhlfe-role; | |||
description "NHLFE role"; | description "NHLFE role"; | |||
} | } | |||
uses nhlfe-single-contents; | uses nhlfe-single-contents; | |||
} | } | |||
grouping interface-mpls-properties { | grouping interface-mpls-properties { | |||
description "MPLS interface contents grouping"; | description "MPLS interface contents grouping"; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
description | description | |||
"'true' if mpls encapsulation is enabled on the | "'true' if mpls encapsulation is enabled on the interface. | |||
interface. 'false' if mpls encapsulation is enabled | 'false' if mpls encapsulation is disabled on the interface."; | |||
on the interface."; | ||||
} | } | |||
leaf mtu { | leaf maximum-labeled-packet { | |||
type uint32; | type uint32; | |||
description | units octets; | |||
"MPLS Maximum Transmission Unit (MTU) in bytes"; | description "Maximum labeled packet size."; | |||
reference "RFC3032, section 3.2."; | reference "RFC3032, section 3.2."; | |||
} | } | |||
} | } | |||
grouping interfaces-mpls { | grouping interfaces-mpls { | |||
description "List of MPLS interfaces"; | description "List of MPLS interfaces"; | |||
list interface { | list interface { | |||
key "name"; | key "name"; | |||
description "List of MPLS interfaces"; | description "List of MPLS interfaces"; | |||
leaf name { | leaf name { | |||
type if:interface-ref; | type if:interface-ref; | |||
End of changes. 15 change blocks. | ||||
22 lines changed or deleted | 23 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/ |