| < 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/ | ||||