draft-ietf-lsr-ospf-yang-augmentation-v1-03.txt | draft-ietf-lsr-ospf-yang-augmentation-v1-04.txt | |||
---|---|---|---|---|
Internet A. Lindem | Internet A. Lindem | |||
Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
Intended status: Standards Track Y. Qu | Intended status: Standards Track Y. Qu | |||
Expires: May 4, 2021 Futurewei | Expires: October 31, 2021 Futurewei | |||
October 31, 2020 | April 29, 2021 | |||
OSPF YANG Model Augmentations for Additional Features - Version 1 | OSPF YANG Model Augmentations for Additional Features - Version 1 | |||
draft-ietf-lsr-ospf-yang-augmentation-v1-03 | draft-ietf-lsr-ospf-yang-augmentation-v1-04 | |||
Abstract | Abstract | |||
This document defines YANG data modules augmenting the IETF OSPF YANG | This document defines YANG data modules augmenting the IETF OSPF YANG | |||
model to provide support for Traffic Engineering Extensions to OSPF | model to provide support for Traffic Engineering Extensions to OSPF | |||
Version 3 as defined in RF 5329, OSPF Two-Part Metric as defined in | Version 3 as defined in RF 5329, OSPF Two-Part Metric as defined in | |||
RFC 8042, OSPF Graceful Link Shutdown as defined in RFC 8379 and OSPF | RFC 8042, OSPF Graceful Link Shutdown as defined in RFC 8379 and OSPF | |||
Link-Local Signaling (LLS) Extensions for Local Interface ID | Link-Local Signaling (LLS) Extensions for Local Interface ID | |||
Advertisement as defined in RFC 8510. | Advertisement as defined in RFC 8510. | |||
skipping to change at page 1, line 36 ¶ | skipping to change at page 1, line 36 ¶ | |||
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 4, 2021. | This Internet-Draft will expire on October 31, 2021. | |||
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/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. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
2. YANG Module for Traffic Engineering Extesions to OSPF Version | 2. YANG Module for Traffic Engineering Extesions to OSPF Version | |||
3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. YANG Module for OSPF Two-Part Metric . . . . . . . . . . . . 8 | 3. YANG Module for OSPF Two-Part Metric . . . . . . . . . . . . 8 | |||
4. YANG Module for OSPF Graceful Link Shutdown . . . . . . . . . 12 | 4. YANG Module for OSPF Graceful Link Shutdown . . . . . . . . . 13 | |||
5. YANG Module for OSPF LLS Extenstion for Local Interface ID | 5. YANG Module for OSPF LLS Extenstion for Local Interface ID | |||
Advertisement . . . . . . . . . . . . . . . . . . . . . . . . 17 | Advertisement . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
6. YANG Module for OSPF Application-Specific Link Attributes . . 19 | 6. YANG Module for OSPF Application-Specific Link Attributes . . 20 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 26 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 | 10. Normative References . . . . . . . . . . . . . . . . . . . . 27 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 27 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 28 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | ||||
1. Overview | 1. Overview | |||
YANG [RFC6020] [RFC7950] is a data definition language used to define | YANG [RFC6020] [RFC7950] is a data definition language used to define | |||
the contents of a conceptual data store that allows networked devices | the contents of a conceptual data store that allows networked devices | |||
to be managed using NETCONF [RFC6241]. YANG is proving relevant | to be managed using NETCONF [RFC6241]. YANG is proving relevant | |||
beyond its initial confines, as bindings to other interfaces (e.g., | beyond its initial confines, as bindings to other interfaces (e.g., | |||
ReST) and encodings other than XML (e.g., JSON) are being defined. | ReST) and encodings other than XML (e.g., JSON) are being defined. | |||
Furthermore, YANG data models can be used as the basis for | Furthermore, YANG data models can be used as the basis for | |||
implementation of other interfaces, such as CLI and programmatic | implementation of other interfaces, such as CLI and programmatic | |||
skipping to change at page 3, line 22 ¶ | skipping to change at page 4, line 5 ¶ | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
2. YANG Module for Traffic Engineering Extesions to OSPF Version 3 | 2. YANG Module for Traffic Engineering Extesions to OSPF Version 3 | |||
This document defines a YANG module for Traffic Engineering | This document defines a YANG module for Traffic Engineering | |||
Extersions to OSPF Version 3 as defined in [RFC5329]. It is an | Extersions to OSPF Version 3 as defined in [RFC5329]. It is an | |||
augmentation of the OSPF base model. | augmentation of the OSPF base model. | |||
module: ietf-ospfv3-te | module: ietf-ospfv3-te | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | |||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | |||
/ospf:body: | /ospf:body: | |||
+--ro ospfv3-intra-area-te | +--ro ospfv3-intra-area-te | |||
+--ro router-address-tlv | +--ro router-address-tlv | |||
| +--ro router-address? inet:ipv6-address | | +--ro router-address? inet:ipv6-address | |||
+--ro link-tlv | +--ro link-tlv | |||
+--ro link-type ospf:router-link-type | +--ro link-type ospf:router-link-type | |||
+--ro local-if-ipv6-addrs | +--ro local-if-ipv6-addrs | |||
| +--ro local-if-ipv6-addr* inet:ipv6-address | | +--ro local-if-ipv6-addr* inet:ipv6-address | |||
+--ro remote-if-ipv6-addrs | +--ro remote-if-ipv6-addrs | |||
| +--ro remote-if-ipv6-addr* inet:ipv6-address | | +--ro remote-if-ipv6-addr* inet:ipv6-address | |||
+--ro te-metric? uint32 | +--ro te-metric? uint32 | |||
+--ro max-bandwidth? rt-types:bandwidth-ieee-float32 | +--ro max-bandwidth? | |||
+--ro max-reservable-bandwidth? rt-types:bandwidth-ieee-float32 | | rt-types:bandwidth-ieee-float32 | |||
+--ro unreserved-bandwidths | +--ro max-reservable-bandwidth? | |||
| +--ro unreserved-bandwidth* | | rt-types:bandwidth-ieee-float32 | |||
| +--ro priority? uint8 | +--ro unreserved-bandwidths | |||
| +--ro unreserved-bandwidth? rt-types:bandwidth-ieee-float32 | | +--ro unreserved-bandwidth* | |||
+--ro admin-group? uint32 | | +--ro priority? uint8 | |||
+--ro neighbor-id | | +--ro unreserved-bandwidth? | |||
| +--ro nbr-interface-id inet:ipv4-address | | rt-types:bandwidth-ieee-float32 | |||
| +--ro nbr-router-id yang:dotted-quad | +--ro admin-group? uint32 | |||
+--ro unknown-tlvs | +--ro neighbor-id | |||
+--ro unknown-tlv* | | +--ro nbr-interface-id inet:ipv4-address | |||
+--ro type? uint16 | | +--ro nbr-router-id yang:dotted-quad | |||
+--ro length? uint16 | +--ro unknown-tlvs | |||
+--ro value? yang:hex-string | +--ro unknown-tlv* | |||
+--ro type? uint16 | ||||
+--ro length? uint16 | ||||
+--ro value? yang:hex-string | ||||
<CODE BEGINS> file "ietf-ospfv3-te@2020-04-24.yang" | <CODE BEGINS> file "ietf-ospfv3-te@2020-04-24.yang" | |||
module ietf-ospfv3-te { | module ietf-ospfv3-te { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-te"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-te"; | |||
prefix ospfv3-te; | ||||
import ietf-inet-types { | ||||
prefix "inet"; | ||||
reference "RFC 6991: Common YANG Data Types"; | ||||
} | ||||
import ietf-yang-types { | ||||
prefix "yang"; | ||||
reference "RFC 6991: Common YANG Data Types"; | ||||
} | ||||
import ietf-routing-types { | prefix ospfv3-te; | |||
prefix "rt-types"; | ||||
reference "RFC 8294: Common YANG Data Types for the | ||||
Routing Area"; | ||||
} | ||||
import ietf-routing { | import ietf-inet-types { | |||
prefix "rt"; | prefix "inet"; | |||
} | reference "RFC 6991: Common YANG Data Types"; | |||
} | ||||
import ietf-ospf { | import ietf-yang-types { | |||
prefix "ospf"; | prefix "yang"; | |||
} | reference "RFC 6991: Common YANG Data Types"; | |||
} | ||||
organization | import ietf-routing-types { | |||
"IETF LSR - Link State Routing Working Group"; | prefix "rt-types"; | |||
reference "RFC 8294: Common YANG Data Types for the | ||||
Routing Area"; | ||||
} | ||||
contact | import ietf-routing { | |||
"WG Web: <http://tools.ietf.org/wg/lsr> | prefix "rt"; | |||
WG List: <mailto:lsr@ietf.org> | } | |||
Author: Yingzhen Qu | import ietf-ospf { | |||
<mailto:yqu@futurewei.com> | prefix "ospf"; | |||
Author: Acee Lindem | } | |||
<mailto:acee@cisco.com>"; | ||||
description | organization | |||
"This YANG module defines the configuration and operational | "IETF LSR - Link State Routing Working Group"; | |||
state for OSPFv3 extensions to support intra-area Traffic | ||||
Engineering (TE) as defined in RFC 5329. | ||||
Copyright (c) 2019 IETF Trust and the persons identified as | contact | |||
authors of the code. All rights reserved. | "WG Web: <http://tools.ietf.org/wg/lsr> | |||
WG List: <mailto:lsr@ietf.org> | ||||
Redistribution and use in source and binary forms, with or | Author: Yingzhen Qu | |||
without modification, is permitted pursuant to, and subject | <mailto:yqu@futurewei.com> | |||
to the license terms contained in, the Simplified BSD License | Author: Acee Lindem | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | <mailto:acee@cisco.com>"; | |||
Relating to IETF Documents | ||||
(http://trustee.ietf.org/license-info). | ||||
This version of this YANG module is part of RFC XXXX; | description | |||
see the RFC itself for full legal notices."; | "This YANG module defines the configuration and operational | |||
state for OSPFv3 extensions to support intra-area Traffic | ||||
Engineering (TE) as defined in RFC 5329. | ||||
reference "RFC XXXX"; | Copyright (c) 2019 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | ||||
revision 2020-04-24 { | Redistribution and use in source and binary forms, with or | |||
description | without modification, is permitted pursuant to, and subject | |||
"Initial version"; | to the license terms contained in, the Simplified BSD License | |||
reference | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
"RFC XXXX: A YANG Data Model for OSPFv3 TE."; | Relating to IETF Documents | |||
} | (http://trustee.ietf.org/license-info). | |||
identity ospfv3-intra-area-te-lsa { | This version of this YANG module is part of RFC XXXX; | |||
base ospf:ospfv3-lsa-type; | see the RFC itself for full legal notices."; | |||
description | ||||
"OSPFv3 Intrea-area TE LSA."; | ||||
} | ||||
grouping ospfv3-intra-area-te { | reference "RFC XXXX"; | |||
description "Grouping for OSPFv3 intra-area-te-lsa."; | ||||
container ospfv3-intra-area-te { | ||||
container router-address-tlv { | ||||
description "The router IPv6 address tlv advertises a reachable | ||||
IPv6 address."; | ||||
leaf router-address { | ||||
type inet:ipv6-address; | ||||
description | ||||
"Router IPv6 address."; | ||||
} | ||||
} | ||||
container link-tlv { | revision 2020-04-24 { | |||
description "Describes a singel link, and it is constructed | description | |||
of a set of Sub-TLVs."; | "Initial version"; | |||
leaf link-type { | reference | |||
type ospf:router-link-type; | "RFC XXXX: A YANG Data Model for OSPFv3 TE."; | |||
mandatory true; | } | |||
description "Link type."; | ||||
} | identity ospfv3-intra-area-te-lsa { | |||
base ospf:ospfv3-lsa-type; | ||||
description | ||||
"OSPFv3 Intrea-area TE LSA."; | ||||
} | ||||
container local-if-ipv6-addrs { | grouping ospfv3-intra-area-te { | |||
description "All local interface IPv6 addresses."; | description "Grouping for OSPFv3 intra-area-te-lsa."; | |||
leaf-list local-if-ipv6-addr { | container ospfv3-intra-area-te { | |||
container router-address-tlv { | ||||
description "The router IPv6 address tlv advertises a | ||||
reachable IPv6 address."; | ||||
leaf router-address { | ||||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"List of local interface IPv6 addresses."; | "Router IPv6 address."; | |||
} | } | |||
} | } | |||
container remote-if-ipv6-addrs { | container link-tlv { | |||
description "All remote interface IPv6 addresses."; | description "Describes a singel link, and it is constructed | |||
leaf-list remote-if-ipv6-addr { | of a set of Sub-TLVs."; | |||
type inet:ipv6-address; | leaf link-type { | |||
description | type ospf:router-link-type; | |||
"List of remote interface IPv6 addresses."; | mandatory true; | |||
description "Link type."; | ||||
} | } | |||
} | ||||
leaf te-metric { | container local-if-ipv6-addrs { | |||
type uint32; | description "All local interface IPv6 addresses."; | |||
description "TE metric."; | leaf-list local-if-ipv6-addr { | |||
} | type inet:ipv6-address; | |||
description | ||||
"List of local interface IPv6 addresses."; | ||||
} | ||||
} | ||||
leaf max-bandwidth { | container remote-if-ipv6-addrs { | |||
type rt-types:bandwidth-ieee-float32; | description "All remote interface IPv6 addresses."; | |||
description "Maximum bandwidth."; | leaf-list remote-if-ipv6-addr { | |||
} | type inet:ipv6-address; | |||
description | ||||
"List of remote interface IPv6 addresses."; | ||||
} | ||||
} | ||||
leaf max-reservable-bandwidth { | leaf te-metric { | |||
type rt-types:bandwidth-ieee-float32; | type uint32; | |||
description "Maximum reservable bandwidth."; | description "TE metric."; | |||
} | } | |||
container unreserved-bandwidths { | leaf max-bandwidth { | |||
description "All unreserved bandwidths."; | type rt-types:bandwidth-ieee-float32; | |||
list unreserved-bandwidth { | description "Maximum bandwidth."; | |||
leaf priority { | } | |||
type uint8 { | ||||
range "0 .. 7"; | leaf max-reservable-bandwidth { | |||
type rt-types:bandwidth-ieee-float32; | ||||
description "Maximum reservable bandwidth."; | ||||
} | ||||
container unreserved-bandwidths { | ||||
description "All unreserved bandwidths."; | ||||
list unreserved-bandwidth { | ||||
leaf priority { | ||||
type uint8 { | ||||
range "0 .. 7"; | ||||
} | ||||
description "Priority from 0 to 7."; | ||||
} | } | |||
description "Priority from 0 to 7."; | leaf unreserved-bandwidth { | |||
} | type rt-types:bandwidth-ieee-float32; | |||
leaf unreserved-bandwidth { | description "Unreserved bandwidth."; | |||
type rt-types:bandwidth-ieee-float32; | } | |||
description "Unreserved bandwidth."; | description | |||
"List of unreserved bandwidths for different | ||||
priorities."; | ||||
} | } | |||
description | ||||
"List of unreserved bandwidths for different | ||||
priorities."; | ||||
} | } | |||
} | ||||
leaf admin-group { | ||||
type uint32; | ||||
description | ||||
"Administrative group/Resource Class/Color."; | ||||
} | ||||
container neighbor-id { | leaf admin-group { | |||
description "Neighbor link identitification."; | type uint32; | |||
leaf nbr-interface-id { | description | |||
type inet:ipv4-address; | "Administrative group/Resource Class/Color."; | |||
mandatory true; | ||||
description "The neighbor's interface ID."; | ||||
} | } | |||
leaf nbr-router-id { | ||||
type yang:dotted-quad; | container neighbor-id { | |||
mandatory true; | description "Neighbor link identitification."; | |||
description "The neighbor's router ID."; | leaf nbr-interface-id { | |||
type inet:ipv4-address; | ||||
mandatory true; | ||||
description "The neighbor's interface ID."; | ||||
} | ||||
leaf nbr-router-id { | ||||
type yang:dotted-quad; | ||||
mandatory true; | ||||
description "The neighbor's router ID."; | ||||
} | ||||
} | } | |||
uses ospf:unknown-tlvs; | ||||
} | } | |||
uses ospf:unknown-tlvs; | description "OSPFv3 Intra-Area-TE-LSA."; | |||
reference "RFC 5329: Traffic Engineering Extensions to OSPF | ||||
: Version 3."; | ||||
} | } | |||
description "OSPFv3 Intra-Area-TE-LSA."; | ||||
reference "RFC 5329: Traffic Engineering Extensions to OSPF | ||||
: Version 3."; | ||||
} | } | |||
} | ||||
augment "/rt:routing/" | augment "/rt:routing/" | |||
+ "rt:control-plane-protocols/rt:control-plane-protocol/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
+ "ospf:ospf/ospf:areas/" | + "ospf:ospf/ospf:areas/" | |||
+ "ospf:area/ospf:database/" | + "ospf:area/ospf:database/" | |||
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | |||
+ "ospf:ospfv3/ospf:body" { | + "ospf:ospfv3/ospf:body" { | |||
when "../../../../../../../../../" | when "../../../../../../../../../" | |||
+ "rt:type = 'ospf:ospfv3'" { | + "rt:type = 'ospf:ospfv3'" { | |||
description | ||||
"This augmentation is only valid for OSPFv3."; | ||||
} | ||||
description | description | |||
"This augmentation is only valid for OSPFv3."; | "OSPFv3 Intrea-Area-TE-LSA."; | |||
} | ||||
description | ||||
"OSPFv3 Intrea-Area-TE-LSA."; | ||||
uses ospfv3-intra-area-te; | uses ospfv3-intra-area-te; | |||
} | ||||
} | } | |||
} | <CODE ENDS> | |||
<CODE ENDS> | ||||
3. YANG Module for OSPF Two-Part Metric | 3. YANG Module for OSPF Two-Part Metric | |||
This document defines a YANG module for OSPF Two-Part Metric feature | This document defines a YANG module for OSPF Two-Part Metric feature | |||
as defined in [RFC8042]. It is an augmentation of the OSPF base | as defined in [RFC8042]. It is an augmentation of the OSPF base | |||
model. | model. | |||
module: ietf-ospf-two-part-metric | module: ietf-ospf-two-part-metric | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
/ospf:interfaces/ospf:interface: | /ospf:interfaces/ospf:interface: | |||
+--rw two-part-metric | +--rw two-part-metric | |||
+--rw enable? boolean | +--rw enable? boolean | |||
+--rw int-input-cost? ospf:ospf-link-metric | +--rw int-input-cost? ospf:ospf-link-metric | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | |||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | /ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | |||
/ospf:body/ospf:opaque/ospf:extended-link-opaque | /ospf:body/ospf:opaque/ospf:extended-link-opaque | |||
/ospf:extended-link-tlv: | /ospf:extended-link-tlv: | |||
+--ro network-to-router-metric-sub-tlvs | +--ro network-to-router-metric-sub-tlvs | |||
+--ro net-to-rtr-sub-tlv* | +--ro net-to-rtr-sub-tlv* | |||
+--ro mt-id? uint8 | +--ro mt-id? uint8 | |||
+--ro mt-metric? uint16 | +--ro mt-metric? uint16 | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | |||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | /ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | |||
/ospf:body/ospf:opaque/ospf:te-opaque/ospf:link-tlv: | /ospf:body/ospf:opaque/ospf:te-opaque/ospf:link-tlv: | |||
+--ro network-to-router-te-metric? uint32 | +--ro network-to-router-te-metric? uint32 | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | |||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | |||
/ospf:body/ospfv3-te:ospfv3-intra-area-te/ospfv3-te:link-tlv: | /ospf:body/ospfv3-te:ospfv3-intra-area-te/ospfv3-te:link-tlv: | |||
+--ro network-to-router-te-metric? uint32 | +--ro network-to-router-te-metric? uint32 | |||
<CODE BEGINS> file "ietf-ospf-two-part-metric@2020-04-24.yang" | <CODE BEGINS> file "ietf-ospf-two-part-metric@2020-04-24.yang" | |||
module ietf-ospf-two-part-metric { | module ietf-ospf-two-part-metric { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-two-part-metric"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-two-part-metric"; | |||
prefix ospf-two-metric; | prefix ospf-two-metric; | |||
import ietf-routing { | import ietf-routing { | |||
prefix "rt"; | prefix "rt"; | |||
} | } | |||
import ietf-ospf { | import ietf-ospf { | |||
prefix "ospf"; | prefix "ospf"; | |||
} | } | |||
skipping to change at page 13, line 5 ¶ | skipping to change at page 14, line 5 ¶ | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
4. YANG Module for OSPF Graceful Link Shutdown | 4. YANG Module for OSPF Graceful Link Shutdown | |||
This document defines a YANG module for OSPF Graceful Link Shutdown | This document defines a YANG module for OSPF Graceful Link Shutdown | |||
feature as defined in [RFC8379]. It is an augmentation of the OSPF | feature as defined in [RFC8379]. It is an augmentation of the OSPF | |||
base model. | base model. | |||
module: ietf-ospf-graceful-link-shutdown | module: ietf-ospf-graceful-link-shutdown | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
/ospf:interfaces/ospf:interface: | /ospf:interfaces/ospf:interface: | |||
+--rw graceful-link-shutdown | +--rw graceful-link-shutdown | |||
+--rw enable? boolean | +--rw enable? boolean | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | |||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | /ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | |||
/ospf:body/ospf:opaque/ospf:extended-link-opaque | /ospf:body/ospf:opaque/ospf:extended-link-opaque | |||
/ospf:extended-link-tlv: | /ospf:extended-link-tlv: | |||
+--ro graceful-link-shutdown-sub-tlv! | +--ro graceful-link-shutdown-sub-tlv! | |||
+--ro remote-address-sub-tlv | +--ro remote-address-sub-tlv | |||
| +--ro remote-address? inet:ipv4-address | | +--ro remote-address? inet:ipv4-address | |||
+--ro local-remote-int-id-sub-tlv | +--ro local-remote-int-id-sub-tlv | |||
+--ro local-int-id? uint32 | +--ro local-int-id? uint32 | |||
+--ro remote-int-id? uint32 | +--ro remote-int-id? uint32 | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | |||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | |||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | |||
/ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs | /ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs | |||
/ospfv3-e-lsa:link-tlv: | /ospfv3-e-lsa:link-tlv: | |||
+--ro graceful-link-shutdown-sub-tlv! | +--ro graceful-link-shutdown-sub-tlv! | |||
<CODE BEGINS> file "ietf-ospf-graceful-link-shutdown@2020-10-31.yang" | <CODE BEGINS> file "ietf-ospf-graceful-link-shutdown@2020-10-31.yang" | |||
module ietf-ospf-graceful-link-shutdown { | module ietf-ospf-graceful-link-shutdown { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace | namespace | |||
"urn:ietf:params:xml:ns:yang:ietf-ospf-graceful-link-shutdown"; | "urn:ietf:params:xml:ns:yang:ietf-ospf-graceful-link-shutdown"; | |||
prefix ospf-grace-linkdown; | prefix ospf-grace-linkdown; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
skipping to change at page 19, line 9 ¶ | skipping to change at page 20, line 9 ¶ | |||
description | description | |||
"OSPF LLS Extensions for interface ID."; | "OSPF LLS Extensions for interface ID."; | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
6. YANG Module for OSPF Application-Specific Link Attributes | 6. YANG Module for OSPF Application-Specific Link Attributes | |||
This document defines a YANG module for OSPF Application-Specific | This document defines a YANG module for OSPF Application-Specific | |||
Link Attributes feature as defined in | Link Attributes feature as defined in [RFC8920]. It is an | |||
[I-D.ietf-ospf-te-link-attr-reuse]. It is an augmentation of the | augmentation of the OSPF base model. | |||
OSPF base model. | ||||
module: ietf-ospf-link-attr | ||||
augment /rt:routing/rt:control-plane-protocols | ||||
/rt:control-plane-protocol/ospf:ospf: | ||||
+--rw ospf-link-attr | ||||
+--rw (link-attr-op-mode) | ||||
+--:(legacy) | ||||
| +--rw legacy? empty | ||||
+--:(transition) | ||||
| +--rw transition? empty | ||||
+--:(app-specific) | ||||
+--rw app-specific? empty | ||||
augment /rt:routing/rt:control-plane-protocols | ||||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | ||||
/ospf:body/ospf:opaque/ospf:extended-link-opaque | ||||
/ospf:extended-link-tlv: | ||||
+--ro application-specific-link-attributes-sub-tlvs | ||||
+--ro asla-sub-tlvs* [] | ||||
+--ro sabm-length? uint8 | ||||
+--ro udabm-length? uint8 | ||||
+--ro sabm | ||||
| +--ro sabm-bits* identityref | ||||
+--ro udabm | ||||
+--ro link-attributes-sub-sub-tlvs | ||||
+--ro unknown-tlvs | ||||
+--ro unknown-tlv* [] | ||||
+--ro type? uint16 | ||||
+--ro length? uint16 | ||||
+--ro value? yang:hex-string | ||||
augment /rt:routing/rt:control-plane-protocols | ||||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
/ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs | ||||
/ospfv3-e-lsa:link-tlv: | ||||
+--ro application-specific-link-attributes-sub-tlvs | ||||
+--ro asla-sub-tlvs* [] | ||||
+--ro sabm-length? uint8 | ||||
+--ro udabm-length? uint8 | ||||
+--ro sabm | ||||
| +--ro sabm-bits* identityref | ||||
+--ro udabm | ||||
+--ro link-attributes-sub-sub-tlvs | ||||
+--ro unknown-tlvs | ||||
+--ro unknown-tlv* [] | ||||
+--ro type? uint16 | ||||
+--ro length? uint16 | ||||
+--ro value? yang:hex-string | ||||
<CODE BEGINS> file "ietf-ospf-link-attr@2020-10-31.yang" | module: ietf-ospf-link-attr | |||
module ietf-ospf-link-attr { | augment /rt:routing/rt:control-plane-protocols | |||
yang-version 1.1; | /rt:control-plane-protocol/ospf:ospf: | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-link-attr"; | +--rw ospf-link-attr | |||
+--rw (link-attr-op-mode) | ||||
+--:(legacy) | ||||
| +--rw legacy? empty | ||||
+--:(transition) | ||||
| +--rw transition? empty | ||||
+--:(app-specific) | ||||
+--rw app-specific? empty | ||||
augment /rt:routing/rt:control-plane-protocols | ||||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 | ||||
/ospf:body/ospf:opaque/ospf:extended-link-opaque | ||||
/ospf:extended-link-tlv: | ||||
+--ro application-specific-link-attributes-sub-tlvs | ||||
+--ro asla-sub-tlvs* [] | ||||
+--ro sabm-length? uint8 | ||||
+--ro udabm-length? uint8 | ||||
+--ro sabm | ||||
| +--ro sabm-bits* identityref | ||||
+--ro udabm | ||||
+--ro link-attributes-sub-sub-tlvs | ||||
+--ro unknown-tlvs | ||||
+--ro unknown-tlv* [] | ||||
+--ro type? uint16 | ||||
+--ro length? uint16 | ||||
+--ro value? yang:hex-string | ||||
augment /rt:routing/rt:control-plane-protocols | ||||
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area | ||||
/ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas | ||||
/ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 | ||||
/ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs | ||||
/ospfv3-e-lsa:link-tlv: | ||||
+--ro application-specific-link-attributes-sub-tlvs | ||||
+--ro asla-sub-tlvs* [] | ||||
+--ro sabm-length? uint8 | ||||
+--ro udabm-length? uint8 | ||||
+--ro sabm | ||||
| +--ro sabm-bits* identityref | ||||
+--ro udabm | ||||
+--ro link-attributes-sub-sub-tlvs | ||||
+--ro unknown-tlvs | ||||
+--ro unknown-tlv* [] | ||||
+--ro type? uint16 | ||||
+--ro length? uint16 | ||||
+--ro value? yang:hex-string | ||||
prefix ospf-link-attr; | <CODE BEGINS> file "ietf-ospf-link-attr@2020-10-31.yang" | |||
module ietf-ospf-link-attr { | ||||
yang-version 1.1; | ||||
namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-link-attr"; | ||||
import ietf-routing { | prefix ospf-link-attr; | |||
prefix "rt"; | ||||
reference "RFC 8349: A YANG Data Model for Routing | ||||
Management (NMDA Version)"; | ||||
} | ||||
import ietf-ospf { | import ietf-routing { | |||
prefix "ospf"; | prefix "rt"; | |||
} | reference "RFC 8349: A YANG Data Model for Routing | |||
Management (NMDA Version)"; | ||||
} | ||||
import ietf-ospfv3-extended-lsa { | import ietf-ospf { | |||
prefix "ospfv3-e-lsa"; | prefix "ospf"; | |||
} | } | |||
organization | import ietf-ospfv3-extended-lsa { | |||
"IETF LSR - Link State Routing Working Group"; | prefix "ospfv3-e-lsa"; | |||
} | ||||
contact | organization | |||
"WG Web: <http://tools.ietf.org/wg/lsr> | "IETF LSR - Link State Routing Working Group"; | |||
WG List: <mailto:lsr@ietf.org> | ||||
Author: Yingzhen Qu | contact | |||
<mailto:yqu@futurewei.com> | "WG Web: <http://tools.ietf.org/wg/lsr> | |||
Author: Acee Lindem | WG List: <mailto:lsr@ietf.org> | |||
<mailto:acee@cisco.com> | ||||
Author: Stephane Litkowski | ||||
<mailto:slitkows.ietf@gmail.com>"; | ||||
description | Author: Yingzhen Qu | |||
"This YANG module defines the configuration and operational | <mailto:yqu@futurewei.com> | |||
state for OSPF application specific link attributes feature | Author: Acee Lindem | |||
as defined in RFC xxxx. | <mailto:acee@cisco.com> | |||
Author: Stephane Litkowski | ||||
<mailto:slitkows.ietf@gmail.com>"; | ||||
This YANG model conforms to the Network Management | description | |||
Datastore Architecture (NMDA) as described in RFC 8342. | "This YANG module defines the configuration and operational | |||
state for OSPF application specific link attributes feature | ||||
as defined in RFC xxxx. | ||||
Copyright (c) 2020 IETF Trust and the persons identified as | This YANG model conforms to the Network Management | |||
authors of the code. All rights reserved. | Datastore Architecture (NMDA) as described in RFC 8342. | |||
Redistribution and use in source and binary forms, with or | Copyright (c) 2020 IETF Trust and the persons identified as | |||
without modification, is permitted pursuant to, and subject | authors of the code. All rights reserved. | |||
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 | ||||
(http://trustee.ietf.org/license-info). | ||||
This version of this YANG module is part of RFC XXXX; | Redistribution and use in source and binary forms, with or | |||
see the RFC itself for full legal notices. | without modification, is permitted pursuant to, and subject | |||
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 | ||||
(http://trustee.ietf.org/license-info). | ||||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | This version of this YANG module is part of RFC XXXX; | |||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | see the RFC itself for full legal notices. | |||
'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."; | ||||
reference "RFC XXXX"; | 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 (RFC 2119) (RFC 8174) when, and only when, | ||||
they appear in all capitals, as shown here."; | ||||
revision 2020-10-31 { | reference "RFC XXXX"; | |||
description | ||||
"Initial version"; | ||||
reference | ||||
"RFC XXXX: A YANG Data Model for OSPF application specific | ||||
link attributes."; | ||||
} | ||||
identity sabm-bit { | revision 2020-10-31 { | |||
description | description | |||
"Base identity for sabm bits."; | "Initial version"; | |||
} | reference | |||
"RFC XXXX: A YANG Data Model for OSPF application specific | ||||
link attributes."; | ||||
} | ||||
identity rsvp-te-bit { | identity sabm-bit { | |||
base sabm-bit; | description | |||
description | "Base identity for sabm bits."; | |||
"R bit, RSVP-TE."; | } | |||
} | ||||
identity sr-policy-bit { | identity rsvp-te-bit { | |||
base sabm-bit; | base sabm-bit; | |||
description | description | |||
"S bit, Segment Routing Policy."; | "R bit, RSVP-TE."; | |||
} | } | |||
identity lfa-bit { | identity sr-policy-bit { | |||
base sabm-bit; | base sabm-bit; | |||
description | description | |||
"F bit, Loop Free Alternate (LFA). Includes all LFA types."; | "S bit, Segment Routing Policy."; | |||
} | } | |||
grouping application-specific-link-attributes-sub-tlvs { | identity lfa-bit { | |||
description | base sabm-bit; | |||
"OSPF Application-Specific Link Attributes (ASLA) sub-TLV. | description | |||
The ASLA sub-TLV is a sub-TLV of the OSPFv2 Extended Link | "F bit, Loop Free Alternate (LFA). Includes all LFA types."; | |||
TLV [RFC7684] and OSPFv3 Router-Link TLV [RFC8362]."; | } | |||
container application-specific-link-attributes-sub-tlvs { | grouping application-specific-link-attributes-sub-tlvs { | |||
description "Application-Specific Link Attributes sub-TLV."; | description | |||
list asla-sub-tlvs { | "OSPF Application-Specific Link Attributes (ASLA) sub-TLV. | |||
leaf sabm-length { | The ASLA sub-TLV is a sub-TLV of the OSPFv2 Extended Link | |||
type uint8; | TLV [RFC7684] and OSPFv3 Router-Link TLV [RFC8362]."; | |||
description | ||||
"Standard Application Identifier Bit Mask Length in | ||||
octets."; | ||||
} | ||||
leaf udabm-length { | ||||
type uint8; | ||||
description | ||||
"User Defined Application Identifier Bit Mask Length | ||||
in octets."; | ||||
} | ||||
container sabm { | ||||
leaf-list sabm-bits { | ||||
type identityref { | ||||
base sabm-bit; | ||||
} | ||||
description | ||||
"SABM bits list. This list will contain | ||||
identities for the bits which are set in the | ||||
SABA bits."; | ||||
} | ||||
description | ||||
"Standard Application Identifier Bit Mask."; | ||||
} | ||||
container udabm { | ||||
description | ||||
"User Defined Application Identifier Bit Mask. | ||||
This container is to be augmented by user defined | ||||
applications."; | ||||
} | ||||
container link-attributes-sub-sub-tlvs { | ||||
uses ospf:unknown-tlvs; | ||||
description | ||||
"Link Attributes sub-sub-TLVs."; | ||||
} | ||||
description | ||||
"List of application-Specific Link Attributes sub-TLVs."; | ||||
} | ||||
} | ||||
} | ||||
augment "/rt:routing/rt:control-plane-protocols" | container application-specific-link-attributes-sub-tlvs { | |||
+ "/rt:control-plane-protocol/ospf:ospf" { | description "Application-Specific Link Attributes sub-TLV."; | |||
when "../rt:type = 'ospf:ospfv2' or " | list asla-sub-tlvs { | |||
+ "../rt:type = 'ospf:ospfv3'" { | leaf sabm-length { | |||
description | type uint8; | |||
"This augments the OSPF routing protocol when used."; | description | |||
} | "Standard Application Identifier Bit Mask Length in | |||
description | octets."; | |||
"This augments OSPF protocol configuration | } | |||
with application-specific link attributes."; | leaf udabm-length { | |||
type uint8; | ||||
description | ||||
"User Defined Application Identifier Bit Mask Length | ||||
in octets."; | ||||
} | ||||
container sabm { | ||||
leaf-list sabm-bits { | ||||
type identityref { | ||||
base sabm-bit; | ||||
} | ||||
description | ||||
"SABM bits list. This list will contain | ||||
identities for the bits which are set in the | ||||
SABA bits."; | ||||
} | ||||
description | ||||
"Standard Application Identifier Bit Mask."; | ||||
} | ||||
container udabm { | ||||
description | ||||
"User Defined Application Identifier Bit Mask. | ||||
This container is to be augmented by user defined | ||||
applications."; | ||||
container ospf-link-attr { | } | |||
choice link-attr-op-mode { | container link-attributes-sub-sub-tlvs { | |||
mandatory "true"; | uses ospf:unknown-tlvs; | |||
leaf legacy { | description | |||
type empty; | "Link Attributes sub-sub-TLVs."; | |||
description | } | |||
"Only send legacy advertisements."; | description | |||
} | "List of application-Specific Link Attributes sub-TLVs."; | |||
leaf transition { | } | |||
type empty; | } | |||
description | } | |||
"Send both application-specific and legacy advertisements."; | ||||
} | ||||
leaf app-specific{ | ||||
type empty; | ||||
description | ||||
"Only send application-specific advertisements."; | ||||
} | ||||
description | ||||
"Link attributes mode"; | ||||
} | ||||
description | ||||
"Link attributes operation mode."; | ||||
} | ||||
} | augment "/rt:routing/rt:control-plane-protocols" | |||
+ "/rt:control-plane-protocol/ospf:ospf" { | ||||
when "../rt:type = 'ospf:ospfv2' or " | ||||
+ "../rt:type = 'ospf:ospfv3'" { | ||||
description | ||||
"This augments the OSPF routing protocol when used."; | ||||
} | ||||
description | ||||
"This augments OSPF protocol configuration | ||||
with application-specific link attributes."; | ||||
/* Database */ | container ospf-link-attr { | |||
augment "/rt:routing/" | choice link-attr-op-mode { | |||
+ "rt:control-plane-protocols/rt:control-plane-protocol/" | mandatory "true"; | |||
+ "ospf:ospf/ospf:areas/" | leaf legacy { | |||
+ "ospf:area/ospf:database/" | type empty; | |||
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | description | |||
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" | "Only send legacy advertisements."; | |||
+ "ospf:ospfv2/ospf:body/ospf:opaque/" | } | |||
+ "ospf:extended-link-opaque/ospf:extended-link-tlv" { | leaf transition { | |||
when "../../../../../../../../../../../../" | type empty; | |||
+ "rt:type = 'ospf:ospfv2'" { | description | |||
description | "Send both application-specific and legacy | |||
"This augmentation is only valid for OSPFv2."; | advertisements."; | |||
} | } | |||
description | leaf app-specific{ | |||
"OSPF Application-Specific Link Attributes (ASLA) sub-TLV is | type empty; | |||
a sub-TLV of OSPFv2 Extended Link TLV (RFC7684)."; | description | |||
"Only send application-specific advertisements."; | ||||
} | ||||
description | ||||
"Link attributes mode"; | ||||
} | ||||
description | ||||
"Link attributes operation mode."; | ||||
} | ||||
uses application-specific-link-attributes-sub-tlvs; | } | |||
} | ||||
augment "/rt:routing/" | /* Database */ | |||
+ "rt:control-plane-protocols/rt:control-plane-protocol/" | augment "/rt:routing/" | |||
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | + "rt:control-plane-protocols/rt:control-plane-protocol/" | |||
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | + "ospf:ospf/ospf:areas/" | |||
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | + "ospf:area/ospf:database/" | |||
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router" | + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | |||
+ "/ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" { | + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" | |||
when "'ospf:../../../../../../../../../" | + "ospf:ospfv2/ospf:body/ospf:opaque/" | |||
+ "rt:type' = 'ospf:ospfv3'" { | + "ospf:extended-link-opaque/ospf:extended-link-tlv" { | |||
when "../../../../../../../../../../../../" | ||||
+ "rt:type = 'ospf:ospfv2'" { | ||||
description | description | |||
"This augmentation is only valid for OSPFv3 | "This augmentation is only valid for OSPFv2."; | |||
E-Router LSAs"; | ||||
} | } | |||
description | description | |||
"Augment OSPFv3 Area scope router-link TLV."; | "OSPF Application-Specific Link Attributes (ASLA) sub-TLV is | |||
a sub-TLV of OSPFv2 Extended Link TLV (RFC7684)."; | ||||
uses application-specific-link-attributes-sub-tlvs; | uses application-specific-link-attributes-sub-tlvs; | |||
} | } | |||
} | ||||
<CODE ENDS> | augment "/rt:routing/" | |||
+ "rt:control-plane-protocols/rt:control-plane-protocol/" | ||||
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/" | ||||
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" | ||||
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" | ||||
+ "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router" | ||||
+ "/ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" { | ||||
when "'ospf:../../../../../../../../../" | ||||
+ "rt:type' = 'ospf:ospfv3'" { | ||||
description | ||||
"This augmentation is only valid for OSPFv3 | ||||
E-Router LSAs"; | ||||
} | ||||
description | ||||
"Augment OSPFv3 Area scope router-link TLV."; | ||||
uses application-specific-link-attributes-sub-tlvs; | ||||
} | ||||
} | ||||
<CODE ENDS> | ||||
7. Security Considerations | 7. Security Considerations | |||
The YANG modules specified in this document define a schema for data | The YANG modules specified in this document define 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 | |||
[RFC5246]. | [RFC5246]. | |||
skipping to change at page 26, line 48 ¶ | skipping to change at page 27, line 48 ¶ | |||
prefix: ospf-link-attr | prefix: ospf-link-attr | |||
reference: RFC XXXX | reference: RFC XXXX | |||
9. Acknowledgements | 9. Acknowledgements | |||
This document was produced using Marshall Rose's xml2rfc tool. | This document was produced using Marshall Rose's xml2rfc tool. | |||
The YANG model was developed using the suite of YANG tools written | The YANG model was developed using the suite of YANG tools written | |||
and maintained by numerous authors. | and maintained by numerous authors. | |||
10. References | 10. Normative References | |||
10.1. Normative References | ||||
[I-D.ietf-ospf-yang] | ||||
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | ||||
"YANG Data Model for OSPF Protocol", draft-ietf-ospf- | ||||
yang-29 (work in progress), October 2019. | ||||
[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>. | |||
[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>. | |||
skipping to change at page 28, line 29 ¶ | skipping to change at page 29, line 33 ¶ | |||
Jalil, "OSPF Graceful Link Shutdown", RFC 8379, | Jalil, "OSPF Graceful Link Shutdown", RFC 8379, | |||
DOI 10.17487/RFC8379, May 2018, | DOI 10.17487/RFC8379, May 2018, | |||
<https://www.rfc-editor.org/info/rfc8379>. | <https://www.rfc-editor.org/info/rfc8379>. | |||
[RFC8510] Psenak, P., Ed., Talaulikar, K., Henderickx, W., and P. | [RFC8510] Psenak, P., Ed., Talaulikar, K., Henderickx, W., and P. | |||
Pillay-Esnault, "OSPF Link-Local Signaling (LLS) | Pillay-Esnault, "OSPF Link-Local Signaling (LLS) | |||
Extensions for Local Interface ID Advertisement", | Extensions for Local Interface ID Advertisement", | |||
RFC 8510, DOI 10.17487/RFC8510, January 2019, | RFC 8510, DOI 10.17487/RFC8510, January 2019, | |||
<https://www.rfc-editor.org/info/rfc8510>. | <https://www.rfc-editor.org/info/rfc8510>. | |||
10.2. Informative References | [RFC8920] Psenak, P., Ed., Ginsberg, L., Henderickx, W., Tantsura, | |||
J., and J. Drake, "OSPF Application-Specific Link | ||||
[I-D.ietf-ospf-te-link-attr-reuse] | Attributes", RFC 8920, DOI 10.17487/RFC8920, October 2020, | |||
Psenak, P., Ginsberg, L., Henderickx, W., Tantsura, J., | <https://www.rfc-editor.org/info/rfc8920>. | |||
and J. Drake, "OSPF Application-Specific Link Attributes", | ||||
draft-ietf-ospf-te-link-attr-reuse-16 (work in progress), | ||||
June 2020. | ||||
[I-D.ietf-ospf-yang] | ||||
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | ||||
"YANG Data Model for OSPF Protocol", draft-ietf-ospf- | ||||
yang-29 (work in progress), October 2019. | ||||
Authors' Addresses | Authors' Addresses | |||
Acee Lindem | Acee Lindem | |||
Cisco Systems | Cisco Systems | |||
301 Midenhall Way | 301 Midenhall Way | |||
Cary, NC 27513 | Cary, NC 27513 | |||
EMail: acee@cisco.com | EMail: acee@cisco.com | |||
Yingzhen Qu | Yingzhen Qu | |||
End of changes. 86 change blocks. | ||||
514 lines changed or deleted | 512 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/ |