ietf-mpls-ldp-extended@2021-10-28.yang | ietf-mpls-ldp-extended@2021-10-28-formatted.yang | |||
---|---|---|---|---|
module ietf-mpls-ldp-extended { | module ietf-mpls-ldp-extended { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-ldp-extended"; | namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-ldp-extended"; | |||
prefix "ldp-ext"; | prefix ldp-ext; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix "inet"; | prefix inet; | |||
reference "RFC 6991: Common YANG Data Types"; | reference | |||
"RFC 6991: Common YANG Data Types"; | ||||
} | } | |||
import ietf-routing { | import ietf-routing { | |||
prefix "rt"; | prefix rt; | |||
reference | reference | |||
"RFC 8349: A YANG Data Model for Routing Management (NMDA | "RFC 8349: A YANG Data Model for Routing Management (NMDA | |||
version)"; | version)"; | |||
} | } | |||
import ietf-key-chain { | import ietf-key-chain { | |||
prefix "key-chain"; | prefix key-chain; | |||
reference "RFC 8177: YANG Data Model for Key Chains"; | reference | |||
"RFC 8177: YANG Data Model for Key Chains"; | ||||
} | } | |||
import ietf-mpls-ldp { | import ietf-mpls-ldp { | |||
prefix "ldp"; | prefix ldp; | |||
reference "RFC 9070: YANG Data Model for MPLS LDP"; | reference | |||
"RFC 9070: YANG Data Model for MPLS LDP"; | ||||
} | } | |||
import ietf-interfaces { | import ietf-interfaces { | |||
prefix "if"; | prefix if; | |||
reference "RFC 8343: A YANG Data Model for Interface Management"; | reference | |||
"RFC 8343: A YANG Data Model for Interface Management"; | ||||
} | } | |||
import ietf-routing-policy { | import ietf-routing-policy { | |||
prefix rt-pol; | prefix rt-pol; | |||
reference | reference | |||
"RFC 9067: A YANG Data Model for Routing Policy"; | "RFC 9067: A YANG Data Model for Routing Policy"; | |||
} | } | |||
organization | organization | |||
"IETF MPLS Working Group"; | "IETF MPLS Working Group"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/mpls/> | "WG Web: <https://datatracker.ietf.org/wg/mpls/> | |||
skipping to change at line 195 ¶ | skipping to change at line 191 ¶ | |||
feature session-downstream-on-demand-config { | feature session-downstream-on-demand-config { | |||
description | description | |||
"This feature indicates that the system allows for the | "This feature indicates that the system allows for the | |||
configuration of session downstream on demand."; | configuration of session downstream on demand."; | |||
} | } | |||
/* | /* | |||
* Typedefs | * Typedefs | |||
*/ | */ | |||
typedef neighbor-list-ref { | typedef neighbor-list-ref { | |||
type leafref { | type leafref { | |||
path "/rt-pol:routing-policy/rt-pol:defined-sets/" | path "/rt-pol:routing-policy/rt-pol:defined-sets/" | |||
+ "rt-pol:neighbor-sets/rt-pol:neighbor-set/rt-pol:name"; | + "rt-pol:neighbor-sets/rt-pol:neighbor-set/rt-pol:name"; | |||
} | } | |||
description | description | |||
"A type for a reference to a neighbor address list. | "A type for a reference to a neighbor address list. | |||
The string value is the name identifier for uniquely | The string value is the name identifier for uniquely | |||
identifying the referenced address list, which contains a list | identifying the referenced address list, which contains a list | |||
of addresses that a routing policy can applied."; | of addresses that a routing policy can applied."; | |||
reference | reference | |||
"RFC 9067: A YANG Data Model for Routing Policy"; | "RFC 9067: A YANG Data Model for Routing Policy"; | |||
} | } | |||
typedef prefix-list-ref { | typedef prefix-list-ref { | |||
type leafref { | type leafref { | |||
path "/rt-pol:routing-policy/rt-pol:defined-sets/" | path "/rt-pol:routing-policy/rt-pol:defined-sets/" | |||
+ "rt-pol:prefix-sets/rt-pol:prefix-set/rt-pol:name"; | + "rt-pol:prefix-sets/rt-pol:prefix-set/rt-pol:name"; | |||
} | } | |||
description | description | |||
"A type for a reference to a prefix list. | "A type for a reference to a prefix list. | |||
The string value is the name identifier for uniquely | The string value is the name identifier for uniquely | |||
identifying the referenced prefix set, which contains a list | identifying the referenced prefix set, which contains a list | |||
of prefixes that a routing policy can applied."; | of prefixes that a routing policy can applied."; | |||
reference | reference | |||
"RFC 9067: A YANG Data Model for Routing Policy"; | "RFC 9067: A YANG Data Model for Routing Policy"; | |||
} | } | |||
typedef peer-list-ref { | typedef peer-list-ref { | |||
type leafref { | type leafref { | |||
path "/rt-pol:routing-policy/rt-pol:defined-sets/" | path "/rt-pol:routing-policy/rt-pol:defined-sets/" | |||
+ "rt-pol:neighbor-sets/rt-pol:neighbor-set/rt-pol:name"; | + "rt-pol:neighbor-sets/rt-pol:neighbor-set/rt-pol:name"; | |||
} | } | |||
description | description | |||
"A type for a reference to a peer address list. | "A type for a reference to a peer address list. | |||
The string value is the name identifier for uniquely | The string value is the name identifier for uniquely | |||
identifying the referenced address list, which contains a list | identifying the referenced address list, which contains a list | |||
of addresses that a routing policy can applied."; | of addresses that a routing policy can applied."; | |||
reference | reference | |||
"RFC 9067: A YANG Data Model for Routing Policy"; | "RFC 9067: A YANG Data Model for Routing Policy"; | |||
} | } | |||
skipping to change at line 240 ¶ | skipping to change at line 237 ¶ | |||
The string value is the name identifier for uniquely | The string value is the name identifier for uniquely | |||
identifying the referenced address list, which contains a list | identifying the referenced address list, which contains a list | |||
of addresses that a routing policy can applied."; | of addresses that a routing policy can applied."; | |||
reference | reference | |||
"RFC 9067: A YANG Data Model for Routing Policy"; | "RFC 9067: A YANG Data Model for Routing Policy"; | |||
} | } | |||
/* | /* | |||
* Identities | * Identities | |||
*/ | */ | |||
/* | /* | |||
* Groupings | * Groupings | |||
*/ | */ | |||
grouping address-family-ipv4-augment { | ||||
description "Augmentation to address family IPv4."; | ||||
grouping address-family-ipv4-augment { | ||||
description | ||||
"Augmentation to address family IPv4."; | ||||
uses policy-container; | uses policy-container; | |||
leaf transport-address { | leaf transport-address { | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description | description | |||
"The transport address advertised in LDP Hello messages. | "The transport address advertised in LDP Hello messages. | |||
If this value is not specified, the LDP LSR ID is used as | If this value is not specified, the LDP LSR ID is used as | |||
the transport address."; | the transport address."; | |||
reference | reference | |||
"RFC 5036: LDP Specification, Sec. 3.5.2."; | "RFC 5036: LDP Specification, Sec. 3.5.2."; | |||
} | } | |||
} | } | |||
grouping authentication-keychain-augment { | grouping authentication-keychain-augment { | |||
description "Augmentation to authentication to add keychain."; | description | |||
"Augmentation to authentication to add keychain."; | ||||
leaf key-chain { | leaf key-chain { | |||
type key-chain:key-chain-ref; | type key-chain:key-chain-ref; | |||
description | description | |||
"key-chain name. | "key-chain name. | |||
If not specified, no key chain is used."; | If not specified, no key chain is used."; | |||
} | } | |||
} | } | |||
grouping capability-augment { | grouping capability-augment { | |||
description "Augmentation to capability."; | description | |||
"Augmentation to capability."; | ||||
container end-of-lib { | container end-of-lib { | |||
if-feature capability-end-of-lib; | if-feature "capability-end-of-lib"; | |||
description | description | |||
"Configure end-of-lib capability."; | "Configure end-of-lib capability."; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"'true' to enable end-of-lib capability."; | "'true' to enable end-of-lib capability."; | |||
} | } | |||
} | } | |||
container typed-wildcard-fec { | container typed-wildcard-fec { | |||
if-feature capability-typed-wildcard-fec; | if-feature "capability-typed-wildcard-fec"; | |||
description | description | |||
"Configure typed-wildcard-fec capability."; | "Configure typed-wildcard-fec capability."; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"'true' to enable typed-wildcard-fec capability."; | "'true' to enable typed-wildcard-fec capability."; | |||
} | } | |||
} | } | |||
container upstream-label-assignment { | container upstream-label-assignment { | |||
if-feature capability-upstream-label-assignment; | if-feature "capability-upstream-label-assignment"; | |||
description | description | |||
"Configure upstream label assignment capability."; | "Configure upstream label assignment capability."; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"'true' to enable upstream label assignment."; | "'true' to enable upstream label assignment."; | |||
} | } | |||
} | } | |||
} // capability-augment | } // capability-augment | |||
grouping global-augment { | grouping global-augment { | |||
description "Augmentation to global attributes."; | description | |||
"Augmentation to global attributes."; | ||||
leaf igp-synchronization-delay { | leaf igp-synchronization-delay { | |||
type uint16 { | type uint16 { | |||
range "0 | 3..300"; | range "0 | 3..300"; | |||
} | } | |||
units seconds; | units "seconds"; | |||
default 0; | default "0"; | |||
description | description | |||
"Sets the interval that the LDP waits before notifying the | "Sets the interval that the LDP waits before notifying the | |||
Interior Gateway Protocol (IGP) that label exchange is | Interior Gateway Protocol (IGP) that label exchange is | |||
completed so that IGP can start advertising the normal | completed so that IGP can start advertising the normal | |||
metric for the link. | metric for the link. | |||
If the value is not specified, there is no delay."; | If the value is not specified, there is no delay."; | |||
} | } | |||
} | } | |||
grouping global-forwarding-nexthop-augment { | grouping global-forwarding-nexthop-augment { | |||
skipping to change at line 330 ¶ | skipping to change at line 326 ¶ | |||
Interior Gateway Protocol (IGP) that label exchange is | Interior Gateway Protocol (IGP) that label exchange is | |||
completed so that IGP can start advertising the normal | completed so that IGP can start advertising the normal | |||
metric for the link. | metric for the link. | |||
If the value is not specified, there is no delay."; | If the value is not specified, there is no delay."; | |||
} | } | |||
} | } | |||
grouping global-forwarding-nexthop-augment { | grouping global-forwarding-nexthop-augment { | |||
description | description | |||
"Augmentation to global forwarding nexthop interfaces."; | "Augmentation to global forwarding nexthop interfaces."; | |||
container forwarding-nexthop { | container forwarding-nexthop { | |||
if-feature forwarding-nexthop-config; | if-feature "forwarding-nexthop-config"; | |||
description | description | |||
"Configuration for forwarding nexthop."; | "Configuration for forwarding nexthop."; | |||
container interfaces { | container interfaces { | |||
description | description | |||
"Containing a list of interfaces on which forwarding can be | "Containing a list of interfaces on which forwarding can be | |||
disabled."; | disabled."; | |||
list interface { | list interface { | |||
key "name"; | key "name"; | |||
description | description | |||
"List of LDP interfaces on which forwarding can be | "List of LDP interfaces on which forwarding can be | |||
disabled."; | disabled."; | |||
uses ldp:ldp-interface-ref; | uses ldp:ldp-interface-ref; | |||
list address-family { | list address-family { | |||
key "afi"; | key "afi"; | |||
description | description | |||
"Per-vrf per-af params."; | "Per-vrf per-af params."; | |||
leaf afi { | leaf afi { | |||
type identityref { | type identityref { | |||
base rt:address-family; | base rt:address-family; | |||
} | } | |||
description | description | |||
"Address family type value."; | "Address family type value."; | |||
} | } | |||
leaf ldp-disable { | leaf ldp-disable { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"'true' to disable LDP forwarding on the interface."; | "'true' to disable LDP forwarding on the interface."; | |||
} | } | |||
} | } | |||
} // interface | } // interface | |||
} // interfaces | } // interfaces | |||
} // forwarding-nexthop | } // forwarding-nexthop | |||
} // global-forwarding-nexthop-augment | } // global-forwarding-nexthop-augment | |||
grouping graceful-restart-augment { | grouping graceful-restart-augment { | |||
description "Augmentation to graceful restart."; | description | |||
"Augmentation to graceful restart."; | ||||
leaf helper-enabled { | leaf helper-enabled { | |||
if-feature graceful-restart-helper-mode; | if-feature "graceful-restart-helper-mode"; | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"Enable or disable graceful restart helper mode."; | "Enable or disable graceful restart helper mode."; | |||
} | } | |||
} | } | |||
grouping interface-address-family-ipv4-augment { | grouping interface-address-family-ipv4-augment { | |||
description "Augmentation to interface address family IPv4."; | description | |||
"Augmentation to interface address family IPv4."; | ||||
leaf transport-address { | leaf transport-address { | |||
type union { | type union { | |||
type enumeration { | type enumeration { | |||
enum "use-global-transport-address" { | enum use-global-transport-address { | |||
description | description | |||
"Use the transport address set at the global level | "Use the transport address set at the global level | |||
common for all interfaces for this address family."; | common for all interfaces for this address family."; | |||
} | } | |||
enum "use-interface-address" { | enum use-interface-address { | |||
description | description | |||
"Use interface address as the transport address."; | "Use interface address as the transport address."; | |||
} | } | |||
} | } | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
} | } | |||
default "use-global-transport-address"; | default "use-global-transport-address"; | |||
description | description | |||
"IP address to be advertised as the LDP transport address."; | "IP address to be advertised as the LDP transport address."; | |||
} | } | |||
} | } | |||
grouping interface-address-family-ipv6-augment { | grouping interface-address-family-ipv6-augment { | |||
description "Augmentation to interface address family IPv6."; | description | |||
"Augmentation to interface address family IPv6."; | ||||
leaf transport-address { | leaf transport-address { | |||
type union { | type union { | |||
type enumeration { | type enumeration { | |||
enum "use-global-transport-address" { | enum use-global-transport-address { | |||
description | description | |||
"Use the transport address set at the global level | "Use the transport address set at the global level | |||
common for all interfaces for this address family."; | common for all interfaces for this address family."; | |||
} | } | |||
enum "use-interface-address" { | enum use-interface-address { | |||
description | description | |||
"Use interface address as the transport address."; | "Use interface address as the transport address."; | |||
} | } | |||
} | } | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
} | } | |||
default "use-global-transport-address"; | default "use-global-transport-address"; | |||
description | description | |||
"IP address to be advertised as the LDP transport address."; | "IP address to be advertised as the LDP transport address."; | |||
} | } | |||
} | } | |||
grouping interface-augment { | grouping interface-augment { | |||
description "Augmentation to interface."; | description | |||
"Augmentation to interface."; | ||||
uses ldp:basic-discovery-timers { | uses ldp:basic-discovery-timers { | |||
if-feature per-interface-timer-config; | if-feature "per-interface-timer-config"; | |||
} | } | |||
leaf igp-synchronization-delay { | leaf igp-synchronization-delay { | |||
if-feature per-interface-timer-config; | if-feature "per-interface-timer-config"; | |||
type uint16 { | type uint16 { | |||
range "0 | 3..300"; | range "0 | 3..300"; | |||
} | } | |||
units seconds; | units "seconds"; | |||
description | description | |||
"Sets the interval that the LDP waits before notifying the | "Sets the interval that the LDP waits before notifying the | |||
Interior Gateway Protocol (IGP) that label exchange is | Interior Gateway Protocol (IGP) that label exchange is | |||
completed so that IGP can start advertising the normal | completed so that IGP can start advertising the normal | |||
metric for the link. | metric for the link. | |||
This leaf may be configured at the per-interface level or | This leaf may be configured at the per-interface level or | |||
the global level, with precedence given to the value at the | the global level, with precedence given to the value at the | |||
per-interface level. If the leaf is not configured at | per-interface level. If the leaf is not configured at | |||
either level, the default value at the global level is | either level, the default value at the global level is | |||
used."; | used."; | |||
skipping to change at line 466 ¶ | skipping to change at line 459 ¶ | |||
description | description | |||
"LDP policy attribute container under peer address family."; | "LDP policy attribute container under peer address family."; | |||
container label-policy { | container label-policy { | |||
description | description | |||
"Label policy attributes."; | "Label policy attributes."; | |||
container advertise { | container advertise { | |||
description | description | |||
"Label advertising policies."; | "Label advertising policies."; | |||
leaf prefix-list { | leaf prefix-list { | |||
type prefix-list-ref; | type prefix-list-ref; | |||
description | description | |||
"Applies the prefix list to filter outgoing label | "Applies the prefix list to filter outgoing label | |||
advertisements. | advertisements. | |||
If the value is not specified, no prefix filter | If the value is not specified, no prefix filter | |||
is applied."; | is applied."; | |||
} | } | |||
} | } | |||
container accept { | container accept { | |||
description | description | |||
"Label advertisement acceptance policies."; | "Label advertisement acceptance policies."; | |||
leaf prefix-list { | leaf prefix-list { | |||
type prefix-list-ref; | type prefix-list-ref; | |||
description | description | |||
"Applies the prefix list to filer incoming label | "Applies the prefix list to filer incoming label | |||
advertisements. | advertisements. | |||
If the value is not specified, no prefix filter | If the value is not specified, no prefix filter | |||
is applied."; | is applied."; | |||
} | } | |||
} | } | |||
} | } | |||
} // peer-af-policy-container | } // peer-af-policy-container | |||
grouping peer-augment { | grouping peer-augment { | |||
description "Augmentation to each peer list entry."; | description | |||
"Augmentation to each peer list entry."; | ||||
leaf admin-down { | leaf admin-down { | |||
if-feature per-peer-admin-down; | if-feature "per-peer-admin-down"; | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"'true' to disable the peer."; | "'true' to disable the peer."; | |||
} | } | |||
uses ldp:graceful-restart-attributes-per-peer { | uses ldp:graceful-restart-attributes-per-peer { | |||
if-feature per-peer-graceful-restart-config; | if-feature "per-peer-graceful-restart-config"; | |||
} | } | |||
uses ldp:peer-attributes { | uses ldp:peer-attributes { | |||
if-feature per-peer-session-attributes-config; | if-feature "per-peer-session-attributes-config"; | |||
} | } | |||
} | } | |||
grouping peers-augment { | grouping peers-augment { | |||
description "Augmentation to peers container."; | description | |||
"Augmentation to peers container."; | ||||
container session-downstream-on-demand { | container session-downstream-on-demand { | |||
if-feature session-downstream-on-demand-config; | if-feature "session-downstream-on-demand-config"; | |||
description | description | |||
"Session downstream-on-demand attributes."; | "Session downstream-on-demand attributes."; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"'true' if session downstream on demand is enabled."; | "'true' if session downstream on demand is enabled."; | |||
} | } | |||
leaf peer-list { | leaf peer-list { | |||
type peer-list-ref; | type peer-list-ref; | |||
description | description | |||
"The name of a peer ACL, to be applied to the | "The name of a peer ACL, to be applied to the | |||
downstream-on-demand sessions. | downstream-on-demand sessions. | |||
If this value is not specified, no filter is applied to | If this value is not specified, no filter is applied to | |||
any downstream-on-demand sessions."; | any downstream-on-demand sessions."; | |||
} | } | |||
} | } | |||
container dual-stack-transport-preference { | container dual-stack-transport-preference { | |||
if-feature peers-dual-stack-transport-preference; | if-feature "peers-dual-stack-transport-preference"; | |||
description | description | |||
"The settings of peers to establish TCP connection in a | "The settings of peers to establish TCP connection in a | |||
dual-stack setup."; | dual-stack setup."; | |||
leaf max-wait { | leaf max-wait { | |||
type uint16 { | type uint16 { | |||
range "0..60"; | range "0..60"; | |||
} | } | |||
default 30; | default "30"; | |||
description | description | |||
"The maximum wait time in seconds for preferred transport | "The maximum wait time in seconds for preferred transport | |||
connection establishment. 0 indicates no preference."; | connection establishment. 0 indicates no preference."; | |||
} | } | |||
container prefer-ipv4 { | container prefer-ipv4 { | |||
presence | presence "Present if IPv4 is preferred for transport connection | |||
"Present if IPv4 is preferred for transport connection | establishment, subject to the 'peer-list' in this | |||
establishment, subject to the 'peer-list' in this | container."; | |||
container."; | ||||
description | description | |||
"Uses IPv4 as the preferred address family for transport | "Uses IPv4 as the preferred address family for transport | |||
connection establishment, subject to the 'peer-list' in | connection establishment, subject to the 'peer-list' in | |||
this container. | this container. | |||
If this container is not present, as a default, IPv6 is | If this container is not present, as a default, IPv6 is | |||
the preferred address family for transport connection | the preferred address family for transport connection | |||
establishment."; | establishment."; | |||
leaf peer-list { | leaf peer-list { | |||
type peer-list-ref; | type peer-list-ref; | |||
description | description | |||
skipping to change at line 585 ¶ | skipping to change at line 575 ¶ | |||
description | description | |||
"Label advertising policies."; | "Label advertising policies."; | |||
container egress-explicit-null { | container egress-explicit-null { | |||
description | description | |||
"Enables an egress router to advertise an | "Enables an egress router to advertise an | |||
explicit null label (value 0) in place of an | explicit null label (value 0) in place of an | |||
implicit null label (value 3) to the | implicit null label (value 3) to the | |||
penultimate hop router."; | penultimate hop router."; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"'true' to enable explicit null."; | "'true' to enable explicit null."; | |||
} | } | |||
} | } | |||
leaf prefix-list { | leaf prefix-list { | |||
type prefix-list-ref; | type prefix-list-ref; | |||
description | description | |||
"Applies the prefix list to filter outgoing label | "Applies the prefix list to filter outgoing label | |||
advertisements. | advertisements. | |||
If the value is not specified, no prefix filter | If the value is not specified, no prefix filter | |||
skipping to change at line 612 ¶ | skipping to change at line 602 ¶ | |||
leaf prefix-list { | leaf prefix-list { | |||
type prefix-list-ref; | type prefix-list-ref; | |||
description | description | |||
"Applies the prefix list to filter incoming label | "Applies the prefix list to filter incoming label | |||
advertisements. | advertisements. | |||
If the value is not specified, no prefix filter | If the value is not specified, no prefix filter | |||
is applied."; | is applied."; | |||
} | } | |||
} | } | |||
container assign { | container assign { | |||
if-feature policy-label-assignment-config; | if-feature "policy-label-assignment-config"; | |||
description | description | |||
"Label assignment policies."; | "Label assignment policies."; | |||
container independent-mode { | container independent-mode { | |||
description | description | |||
"Independent label policy attributes."; | "Independent label policy attributes."; | |||
leaf prefix-list { | leaf prefix-list { | |||
type prefix-list-ref; | type prefix-list-ref; | |||
description | description | |||
"Assign labels according to certain prefixes. | "Assign labels according to certain prefixes. | |||
If the value is not specified, no prefix filter | If the value is not specified, no prefix filter | |||
skipping to change at line 625 ¶ | skipping to change at line 615 ¶ | |||
container independent-mode { | container independent-mode { | |||
description | description | |||
"Independent label policy attributes."; | "Independent label policy attributes."; | |||
leaf prefix-list { | leaf prefix-list { | |||
type prefix-list-ref; | type prefix-list-ref; | |||
description | description | |||
"Assign labels according to certain prefixes. | "Assign labels according to certain prefixes. | |||
If the value is not specified, no prefix filter | If the value is not specified, no prefix filter | |||
is applied (labels are assigned to all learned | is applied (labels are assigned to all learned | |||
routes)."; | routes)."; | |||
} | } | |||
} | } | |||
container ordered-mode { | container ordered-mode { | |||
if-feature policy-ordered-label-config; | if-feature "policy-ordered-label-config"; | |||
description | description | |||
"Ordered label policy attributes."; | "Ordered label policy attributes."; | |||
leaf egress-prefix-list { | leaf egress-prefix-list { | |||
type prefix-list-ref; | type prefix-list-ref; | |||
description | description | |||
"Assign labels according to certain prefixes for | "Assign labels according to certain prefixes for | |||
egress LSR."; | egress LSR."; | |||
} | } | |||
} | } | |||
} // assign | } // assign | |||
skipping to change at line 647 ¶ | skipping to change at line 636 ¶ | |||
} | } | |||
} | } | |||
} // assign | } // assign | |||
} // label-policy | } // label-policy | |||
} // policy-container | } // policy-container | |||
/* | /* | |||
* Configuration and state data nodes | * Configuration and state data nodes | |||
*/ | */ | |||
// Forwarding nexthop augmentation to the global tree | // Forwarding nexthop augmentation to the global tree | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global" { | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global" { | |||
description "Forwarding nexthop augmentation."; | description | |||
"Forwarding nexthop augmentation."; | ||||
uses global-forwarding-nexthop-augment; | uses global-forwarding-nexthop-augment; | |||
} | } | |||
// global/address-families/ipv6 | // global/address-families/ipv6 | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global/" | ||||
+ "ldp:address-families" { | ||||
description "Global IPv6 augmentation."; | ||||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global/" | ||||
+ "ldp:address-families" { | ||||
description | ||||
"Global IPv6 augmentation."; | ||||
container ipv6 { | container ipv6 { | |||
presence | presence "Present if IPv6 is enabled, unless the 'enabled' | |||
"Present if IPv6 is enabled, unless the 'enabled' | leaf is set to 'false'."; | |||
leaf is set to 'false'."; | ||||
description | description | |||
"Containing data related to the IPv6 address family."; | "Containing data related to the IPv6 address family."; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default true; | default "true"; | |||
description | description | |||
"'false' to disable the address family."; | "'false' to disable the address family."; | |||
} | } | |||
uses policy-container; | uses policy-container; | |||
leaf transport-address { | leaf transport-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The transport address advertised in LDP Hello messages."; | "The transport address advertised in LDP Hello messages."; | |||
} | } | |||
leaf label-distribution-control-mode { | leaf label-distribution-control-mode { | |||
type enumeration { | type enumeration { | |||
enum independent { | enum independent { | |||
description | description | |||
"Independent label distribution control."; | "Independent label distribution control."; | |||
} | } | |||
enum ordered { | enum ordered { | |||
description | description | |||
"Ordered label distribution control."; | "Ordered label distribution control."; | |||
} | } | |||
} | } | |||
config false; | config false; | |||
description | description | |||
"Label distribution control mode."; | "Label distribution control mode."; | |||
reference | reference | |||
"RFC 5036: LDP Specification, Sec. 2.6."; | "RFC 5036: LDP Specification, Sec. 2.6."; | |||
} | } | |||
// ipv6 bindings | // ipv6 bindings | |||
container bindings { | container bindings { | |||
config false; | config false; | |||
description | description | |||
"LDP address and label binding information."; | "LDP address and label binding information."; | |||
list address { | list address { | |||
key "address"; | key "address"; | |||
description | description | |||
"List of address bindings learned by LDP."; | "List of address bindings learned by LDP."; | |||
leaf address { | leaf address { | |||
skipping to change at line 717 ¶ | skipping to change at line 703 ¶ | |||
description | description | |||
"List of address bindings learned by LDP."; | "List of address bindings learned by LDP."; | |||
leaf address { | leaf address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"The IPv6 address learned from an Address | "The IPv6 address learned from an Address | |||
message received from or advertised to a peer."; | message received from or advertised to a peer."; | |||
} | } | |||
uses ldp:binding-address-state-attributes; | uses ldp:binding-address-state-attributes; | |||
} | } | |||
list fec-label { | list fec-label { | |||
key "fec"; | key "fec"; | |||
description | description | |||
"List of FEC-label bindings learned by LDP."; | "List of FEC-label bindings learned by LDP."; | |||
leaf fec { | leaf fec { | |||
type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
description | description | |||
"The prefix FEC value in the FEC-label binding, | "The prefix FEC value in the FEC-label binding, | |||
learned in a Label Mapping message received from | learned in a Label Mapping message received from | |||
or advertised to a peer."; | or advertised to a peer."; | |||
} | } | |||
uses ldp:binding-label-state-attributes; | uses ldp:binding-label-state-attributes; | |||
} | } | |||
} // bindings | } // bindings | |||
} // ipv6 | } // ipv6 | |||
} | } | |||
// discovery/interfaces/interface/address-families/ipv6 | // discovery/interfaces/interface/address-families/ipv6 | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | ||||
+ "ldp:interfaces/ldp:interface/" | ||||
+ "ldp:address-families" { | ||||
description "Interface IPv6 augmentation."; | ||||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | ||||
+ "ldp:interfaces/ldp:interface/" | ||||
+ "ldp:address-families" { | ||||
description | ||||
"Interface IPv6 augmentation."; | ||||
container ipv6 { | container ipv6 { | |||
presence | presence "Present if IPv6 is enabled, unless the 'enabled' | |||
"Present if IPv6 is enabled, unless the 'enabled' | leaf is set to 'false'."; | |||
leaf is set to 'false'."; | ||||
description | description | |||
"IPv6 address family."; | "IPv6 address family."; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default true; | default "true"; | |||
description | description | |||
"'false' to disable the address family on the interface."; | "'false' to disable the address family on the interface."; | |||
} | } | |||
container hello-adjacencies { | container hello-adjacencies { | |||
config false; | config false; | |||
description | description | |||
"Containing a list of Hello adjacencies."; | "Containing a list of Hello adjacencies."; | |||
list hello-adjacency { | list hello-adjacency { | |||
key "adjacent-address"; | key "adjacent-address"; | |||
config false; | config false; | |||
description "List of Hello adjacencies."; | description | |||
"List of Hello adjacencies."; | ||||
leaf adjacent-address { | leaf adjacent-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Neighbor address of the Hello adjacency."; | "Neighbor address of the Hello adjacency."; | |||
} | } | |||
uses ldp:adjacency-state-attributes; | uses ldp:adjacency-state-attributes; | |||
uses ldp:ldp-peer-ref-from-interface; | uses ldp:ldp-peer-ref-from-interface; | |||
} | } | |||
} | } | |||
} // ipv6 | } // ipv6 | |||
} | } | |||
// discovery/targeted/address-families/ipv6 | // discovery/targeted/address-families/ipv6 | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | ||||
+ "ldp:targeted/ldp:address-families" { | ||||
description "Targeted discovery IPv6 augmentation."; | ||||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | ||||
+ "ldp:targeted/ldp:address-families" { | ||||
description | ||||
"Targeted discovery IPv6 augmentation."; | ||||
container ipv6 { | container ipv6 { | |||
presence | presence "Present if IPv6 is enabled."; | |||
"Present if IPv6 is enabled."; | ||||
description | description | |||
"IPv6 address family."; | "IPv6 address family."; | |||
container hello-adjacencies { | container hello-adjacencies { | |||
config false; | config false; | |||
description | description | |||
"Containing a list of Hello adjacencies."; | "Containing a list of Hello adjacencies."; | |||
list hello-adjacency { | list hello-adjacency { | |||
key "local-address adjacent-address"; | key "local-address adjacent-address"; | |||
config false; | config false; | |||
description "List of Hello adjacencies."; | description | |||
"List of Hello adjacencies."; | ||||
leaf local-address { | leaf local-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Local address of the Hello adjacency."; | "Local address of the Hello adjacency."; | |||
} | } | |||
leaf adjacent-address { | leaf adjacent-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Neighbor address of the Hello adjacency."; | "Neighbor address of the Hello adjacency."; | |||
} | } | |||
skipping to change at line 811 ¶ | skipping to change at line 790 ¶ | |||
leaf local-address { | leaf local-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Local address of the Hello adjacency."; | "Local address of the Hello adjacency."; | |||
} | } | |||
leaf adjacent-address { | leaf adjacent-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Neighbor address of the Hello adjacency."; | "Neighbor address of the Hello adjacency."; | |||
} | } | |||
uses ldp:adjacency-state-attributes; | uses ldp:adjacency-state-attributes; | |||
uses ldp:ldp-peer-ref-from-target; | uses ldp:ldp-peer-ref-from-target; | |||
} | } | |||
} | } | |||
list target { | list target { | |||
key "adjacent-address"; | key "adjacent-address"; | |||
description | description | |||
"Targeted discovery params."; | "Targeted discovery params."; | |||
leaf adjacent-address { | leaf adjacent-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Configures a remote LDP neighbor for the | "Configures a remote LDP neighbor for the | |||
extended LDP discovery."; | extended LDP discovery."; | |||
} | } | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default true; | default "true"; | |||
description | description | |||
"'true' to enable the target."; | "'true' to enable the target."; | |||
} | } | |||
leaf local-address { | leaf local-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"The local address used as the source address to send | "The local address used as the source address to send | |||
targeted Hello messages. | targeted Hello messages. | |||
If the value is not specified, the transport address | If the value is not specified, the transport address | |||
is used as the source address."; | is used as the source address."; | |||
} | } | |||
} // target | } // target | |||
} // ipv6 | } // ipv6 | |||
} | } | |||
// /peers/peer/state/address-families/ipv6 | // /peers/peer/state/address-families/ipv6 | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/" | ||||
+ "ldp:peer/ldp:address-families" { | ||||
description "Peer state IPv6 augmentation."; | ||||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/" | ||||
+ "ldp:peer/ldp:address-families" { | ||||
description | ||||
"Peer state IPv6 augmentation."; | ||||
container ipv6 { | container ipv6 { | |||
presence | presence "Present if IPv6 is enabled."; | |||
"Present if IPv6 is enabled."; | ||||
description | description | |||
"IPv6 address family."; | "IPv6 address family."; | |||
container hello-adjacencies { | container hello-adjacencies { | |||
config false; | config false; | |||
description | description | |||
"Containing a list of Hello adjacencies."; | "Containing a list of Hello adjacencies."; | |||
list hello-adjacency { | list hello-adjacency { | |||
key "local-address adjacent-address"; | key "local-address adjacent-address"; | |||
description "List of Hello adjacencies."; | description | |||
"List of Hello adjacencies."; | ||||
leaf local-address { | leaf local-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Local address of the Hello adjacency."; | "Local address of the Hello adjacency."; | |||
} | } | |||
leaf adjacent-address { | leaf adjacent-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Neighbor address of the Hello adjacency."; | "Neighbor address of the Hello adjacency."; | |||
} | } | |||
skipping to change at line 877 ¶ | skipping to change at line 851 ¶ | |||
leaf local-address { | leaf local-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Local address of the Hello adjacency."; | "Local address of the Hello adjacency."; | |||
} | } | |||
leaf adjacent-address { | leaf adjacent-address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Neighbor address of the Hello adjacency."; | "Neighbor address of the Hello adjacency."; | |||
} | } | |||
uses ldp:adjacency-state-attributes; | uses ldp:adjacency-state-attributes; | |||
leaf interface { | leaf interface { | |||
type if:interface-ref; | type if:interface-ref; | |||
description "Interface for this adjacency."; | description | |||
"Interface for this adjacency."; | ||||
} | } | |||
} | } | |||
} | } | |||
} // ipv6 | } // ipv6 | |||
} | } | |||
/* | /* | |||
* Configuration data and operational state data nodes | * Configuration data and operational state data nodes | |||
*/ | */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global" { | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global" { | |||
description "Graceful restart augmentation."; | description | |||
"Graceful restart augmentation."; | ||||
uses global-augment; | uses global-augment; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global/" | |||
+ "ldp:capability" { | + "ldp:capability" { | |||
description "Capability augmentation."; | description | |||
"Capability augmentation."; | ||||
uses capability-augment; | uses capability-augment; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global/" | |||
+ "ldp:graceful-restart" { | + "ldp:graceful-restart" { | |||
description "Graceful restart augmentation."; | description | |||
"Graceful restart augmentation."; | ||||
uses graceful-restart-augment; | uses graceful-restart-augment; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:global/" | |||
+ "ldp:address-families/ldp:ipv4" { | + "ldp:address-families/ldp:ipv4" { | |||
description "Address family IPv4 augmentation."; | description | |||
"Address family IPv4 augmentation."; | ||||
uses address-family-ipv4-augment; | uses address-family-ipv4-augment; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | |||
+ "ldp:interfaces/ldp:interface" { | + "ldp:interfaces/ldp:interface" { | |||
description "Interface augmentation."; | description | |||
"Interface augmentation."; | ||||
uses interface-augment; | uses interface-augment; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | |||
+ "ldp:interfaces/ldp:interface/ldp:address-families/" | + "ldp:interfaces/ldp:interface/ldp:address-families/" | |||
+ "ldp:ipv4" { | + "ldp:ipv4" { | |||
description "Interface address family IPv4 augmentation."; | description | |||
"Interface address family IPv4 augmentation."; | ||||
uses interface-address-family-ipv4-augment; | uses interface-address-family-ipv4-augment; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | |||
+ "ldp:interfaces/ldp:interface/ldp:address-families/" | + "ldp:interfaces/ldp:interface/ldp:address-families/" | |||
+ "ldp-ext:ipv6" { | + "ldp-ext:ipv6" { | |||
description "Interface address family IPv6 augmentation."; | description | |||
"Interface address family IPv6 augmentation."; | ||||
uses interface-address-family-ipv6-augment; | uses interface-address-family-ipv6-augment; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:discovery/" | |||
+ "ldp:targeted/ldp:hello-accept" { | + "ldp:targeted/ldp:hello-accept" { | |||
description "Targeted discovery augmentation."; | description | |||
"Targeted discovery augmentation."; | ||||
leaf neighbor-list { | leaf neighbor-list { | |||
if-feature policy-targeted-discovery-config; | if-feature "policy-targeted-discovery-config"; | |||
type neighbor-list-ref; | type neighbor-list-ref; | |||
description | description | |||
"The name of a neighbor ACL, used to accept Hello messages | "The name of a neighbor ACL, used to accept Hello messages | |||
from LDP peers as permitted by the neighbor-list policy. | from LDP peers as permitted by the neighbor-list policy. | |||
If this value is not specified, targeted Hello messages | If this value is not specified, targeted Hello messages | |||
from any source are accepted."; | from any source are accepted."; | |||
} | } | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers" { | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers" { | |||
description "Peers augmentation."; | description | |||
"Peers augmentation."; | ||||
uses peers-augment; | uses peers-augment; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/" | |||
+ "ldp:authentication/ldp:authentication-type" { | + "ldp:authentication/ldp:authentication-type" { | |||
if-feature key-chain; | if-feature "key-chain"; | |||
description "Peers authentication augmentation."; | description | |||
"Peers authentication augmentation."; | ||||
case key-chain { | case key-chain { | |||
uses authentication-keychain-augment; | uses authentication-keychain-augment; | |||
} | } | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/ldp:peer" { | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/ldp:peer" { | |||
description "Peer list entry augmentation."; | description | |||
"Peer list entry augmentation."; | ||||
uses peer-augment; | uses peer-augment; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/ldp:peer/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/ldp:peer/" | |||
+ "ldp:authentication/ldp:authentication-type" { | + "ldp:authentication/ldp:authentication-type" { | |||
if-feature key-chain; | if-feature "key-chain"; | |||
description "Peer list entry authentication augmentation."; | description | |||
"Peer list entry authentication augmentation."; | ||||
case key-chain { | case key-chain { | |||
uses authentication-keychain-augment; | uses authentication-keychain-augment; | |||
} | } | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/ldp:peer/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/ldp:peer/" | |||
+ "ldp:address-families/ldp:ipv4" { | + "ldp:address-families/ldp:ipv4" { | |||
description | description | |||
"Peer list entry IPv4 augmentation."; | "Peer list entry IPv4 augmentation."; | |||
uses peer-af-policy-container; | uses peer-af-policy-container; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/ldp:peer/" | + "rt:control-plane-protocol/ldp:mpls-ldp/ldp:peers/ldp:peer/" | |||
+ "ldp:address-families/ldp-ext:ipv6" { | + "ldp:address-families/ldp-ext:ipv6" { | |||
description | description | |||
"Peer list entry IPv6 augmentation."; | "Peer list entry IPv6 augmentation."; | |||
uses peer-af-policy-container; | uses peer-af-policy-container; | |||
} | } | |||
} | } | |||
End of changes. 124 change blocks. | ||||
195 lines changed or deleted | 182 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/ |