ietf-msdp-preformat.yang   ietf-msdp.yang 
module ietf-msdp { module ietf-msdp {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-msdp"; namespace "urn:ietf:params:xml:ns:yang:ietf-msdp";
prefix msdp; prefix msdp;
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix yang;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "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 "RFC 8349: A YANG Data Model for Routing Management
(NMDA Version)"; (NMDA Version)";
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix if;
reference reference
"RFC 8343: A YANG Data Model for Interface Management"; "RFC 8343: A YANG Data Model for Interface Management";
} }
import ietf-ip { import ietf-ip {
prefix "ip"; prefix ip;
reference reference
"RFC 8344: A YANG Data Model for IP Management"; "RFC 8344: A YANG Data Model for IP Management";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix key-chain;
reference reference
"RFC 8177: YANG Data Model for Key Chains"; "RFC 8177: YANG Data Model for Key Chains";
} }
import ietf-routing-types { import ietf-routing-types {
prefix "rt-types"; prefix rt-types;
reference reference
"RFC 8294: Common YANG Data Types for the Routing Area"; "RFC 8294: Common YANG Data Types for the Routing Area";
} }
import ietf-access-control-list { import ietf-access-control-list {
prefix acl; prefix acl;
reference reference
"RFC 8519: YANG Data Model for Network Access Control Lists "RFC 8519: YANG Data Model for Network Access Control Lists
(ACLs)"; (ACLs)";
} }
organization organization
"IETF Protocols for IP Multicast (pim) Working Group"; "IETF Protocols for IP Multicast (pim) Working Group";
contact contact
"WG Web: <https://datatracker.ietf.org/wg/pim/> "WG Web: <https://datatracker.ietf.org/wg/pim/>
WG List: <mailto:pim@ietf.org> WG List: <mailto:pim@ietf.org>
Editor: Xufeng Liu Editor: Xufeng Liu
<mailto:xufeng.liu.ietf@gmail.com> <mailto:xufeng.liu.ietf@gmail.com>
Editor: Zheng Zhang Editor: Zheng Zhang
<mailto:zzhang_ietf@hotmail.com> <mailto:zzhang_ietf@hotmail.com>
skipping to change at line 156 skipping to change at line 145
base rt:control-plane-protocol; base rt:control-plane-protocol;
description description
"Identity for the Multicast Source Discovery Protocol (MSDP)."; "Identity for the Multicast Source Discovery Protocol (MSDP).";
reference reference
"RFC 3618: Multicast Source Discovery Protocol (MSDP)"; "RFC 3618: Multicast Source Discovery Protocol (MSDP)";
} }
/* /*
* Groupings * Groupings
*/ */
grouping authentication-container { grouping authentication-container {
description description
"Authentication attributes."; "Authentication attributes.";
container authentication { container authentication {
if-feature peer-authentication; if-feature "peer-authentication";
description description
"A container defining authentication attributes."; "A container defining authentication attributes.";
choice authentication-type { choice authentication-type {
case key-chain { case key-chain {
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Reference to a key-chain."; "Reference to a key-chain.";
reference reference
"RFC 8177: YANG Data Model for Key Chains"; "RFC 8177: YANG Data Model for Key Chains";
skipping to change at line 184 skipping to change at line 174
leaf key { leaf key {
type string; type string;
description description
"This leaf specifies the authentication key."; "This leaf specifies the authentication key.";
} }
leaf crypto-algorithm { leaf crypto-algorithm {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
must "derived-from-or-self(., 'key-chain:md5')" { must "derived-from-or-self(., 'key-chain:md5')" {
error-message error-message "Only the md5 algorithm can be used for MSDP.";
"Only the md5 algorithm can be used for MSDP.";
description description
"Check for crypto-algorithm."; "Check for crypto-algorithm.";
} }
description description
"Cryptographic algorithm associated with a key. "Cryptographic algorithm associated with a key.
Only the md5 algorithm can be used for MSDP. Only the md5 algorithm can be used for MSDP.
When 'md5' is specified, MSDP control messages When 'md5' is specified, MSDP control messages
are secured by TCP MD5 signatures as described are secured by TCP MD5 signatures as described
in RFCs 3618 and 5925. Both peers of a in RFCs 3618 and 5925. Both peers of a
connection SHOULD be configured to the same connection SHOULD be configured to the same
skipping to change at line 209 skipping to change at line 198
reference reference
"RFC 3618: Multicast Source Discovery Protocol (MSDP) "RFC 3618: Multicast Source Discovery Protocol (MSDP)
RFC 5925: The TCP Authentication Option RFC 5925: The TCP Authentication Option
RFC 8177: YANG Data Model for Key Chains"; RFC 8177: YANG Data Model for Key Chains";
} }
} }
description description
"Choice of authentication."; "Choice of authentication.";
} }
} }
} // authentication-container }
// authentication-container
grouping tcp-connect-source { grouping tcp-connect-source {
description description
"Attribute to configure a peer TCP connection source."; "Attribute to configure a peer TCP connection source.";
leaf tcp-connection-source { leaf tcp-connection-source {
type if:interface-ref; type if:interface-ref;
must "/if:interfaces/if:interface[if:name = current()]/" must "/if:interfaces/if:interface[if:name = current()]/"
+ "ip:ipv4/ip:enabled != 'false'" { + "ip:ipv4/ip:enabled != 'false'" {
error-message error-message "The interface must have IPv4 enabled.";
"The interface must have IPv4 enabled.";
description description
"The interface must have IPv4 enabled."; "The interface must have IPv4 enabled.";
reference reference
"RFC 8343: A YANG Data Model for Interface Management"; "RFC 8343: A YANG Data Model for Interface Management";
} }
description description
"The interface is to be the source for the TCP "The interface is to be the source for the TCP
connection. It is a reference to an entry in the global connection. It is a reference to an entry in the global
interface list."; interface list.";
} }
} // tcp-connect-source }
// tcp-connect-source
grouping global-config-attributes { grouping global-config-attributes {
description description
"Global MSDP configuration."; "Global MSDP configuration.";
uses tcp-connect-source; uses tcp-connect-source;
list default-peer { list default-peer {
if-feature filter-policy; if-feature "filter-policy";
key "peer-addr prefix-policy"; key "peer-addr prefix-policy";
description description
"The default peer accepts all MSDP Source-Active (SA) "The default peer accepts all MSDP Source-Active (SA)
messages. A default peer is needed in topologies where messages. A default peer is needed in topologies where
MSDP peers do not coexist with BGP peers. The Reverse Path MSDP peers do not coexist with BGP peers. The Reverse Path
Forwarding (RPF) check on SA messages will fail, and no Forwarding (RPF) check on SA messages will fail, and no
SA messages will be accepted. In these cases, you can SA messages will be accepted. In these cases, you can
configure the peer as a default peer and bypass configure the peer as a default peer and bypass
RPF checks."; RPF checks.";
leaf peer-addr { leaf peer-addr {
type leafref { type leafref {
path "../../../peers/peer/address"; path "../../../peers/peer/address";
} }
mandatory true; mandatory true;
description description
"Reference to a peer that is in the peer list."; "Reference to a peer that is in the peer list.";
} }
leaf prefix-policy { leaf prefix-policy {
type leafref { type leafref {
skipping to change at line 274 skipping to change at line 262
"If specified, only those SA entries whose Rendezvous "If specified, only those SA entries whose Rendezvous
Point (RP) is permitted in the prefix list are allowed; Point (RP) is permitted in the prefix list are allowed;
if not specified, all SA messages from the default if not specified, all SA messages from the default
peer are accepted."; peer are accepted.";
reference reference
"RFC 7761: Protocol Independent Multicast - Sparse Mode "RFC 7761: Protocol Independent Multicast - Sparse Mode
(PIM-SM): Protocol Specification (Revised) (PIM-SM): Protocol Specification (Revised)
RFC 8519: YANG Data Model for Network Access Control RFC 8519: YANG Data Model for Network Access Control
Lists (ACLs)"; Lists (ACLs)";
} }
} // default-peer }
// default-peer
container originating-rp { container originating-rp {
description description
"The container of the originating RP."; "The container of the originating RP.";
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
must "/if:interfaces/if:interface[if:name = current()]/" must "/if:interfaces/if:interface[if:name = current()]/"
+ "ip:ipv4/ip:enabled != 'false'" { + "ip:ipv4/ip:enabled != 'false'" {
error-message error-message "The interface must have IPv4 enabled.";
"The interface must have IPv4 enabled.";
description description
"The interface must have IPv4 enabled."; "The interface must have IPv4 enabled.";
reference reference
"RFC 8343: A YANG Data Model for Interface Management"; "RFC 8343: A YANG Data Model for Interface Management";
} }
description description
"Reference to an entry in the global interface list. "Reference to an entry in the global interface list.
The IP address of the interface used in the RP field of The IP address of the interface used in the RP field of
an SA message entry. When anycast RPs are used, all RPs an SA message entry. When anycast RPs are used, all RPs
use the same IP address. This parameter can be used to use the same IP address. This parameter can be used to
define a unique IP address for the RP of each MSDP peer. define a unique IP address for the RP of each MSDP peer.
By default, the software uses the RP address of the By default, the software uses the RP address of the
local system."; local system.";
} }
} // originating-rp }
// originating-rp
uses sa-filter-container; uses sa-filter-container;
leaf sa-limit { leaf sa-limit {
type uint32; type uint32;
description description
"A limit on the number of SA entries accepted. "A limit on the number of SA entries accepted.
By default, there is no limit."; By default, there is no limit.";
} }
uses ttl-threshold; uses ttl-threshold;
} // global-config-attributes }
// global-config-attributes
grouping peer-config-attributes { grouping peer-config-attributes {
description description
"Per-peer configuration for MSDP."; "Per-peer configuration for MSDP.";
uses authentication-container; uses authentication-container;
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if the peer is enabled; "'true' if the peer is enabled;
'false' if the peer is disabled."; 'false' if the peer is disabled.";
} }
uses tcp-connect-source; uses tcp-connect-source;
leaf description { leaf description {
type string; type string;
description description
"The peer description."; "The peer description.";
} }
leaf mesh-group { leaf mesh-group {
type string; type string;
description description
"The name of the mesh-group to which this peer belongs."; "The name of the mesh-group to which this peer belongs.";
reference reference
skipping to change at line 339 skipping to change at line 325
} }
leaf mesh-group { leaf mesh-group {
type string; type string;
description description
"The name of the mesh-group to which this peer belongs."; "The name of the mesh-group to which this peer belongs.";
reference reference
"RFC 3618: Multicast Source Discovery Protocol (MSDP), "RFC 3618: Multicast Source Discovery Protocol (MSDP),
Section 10.2"; Section 10.2";
} }
leaf peer-as { leaf peer-as {
if-feature peer-as-verification; if-feature "peer-as-verification";
type inet:as-number; type inet:as-number;
description description
"The peer's ASN. Using peer-as to do verification can "The peer's ASN. Using peer-as to do verification can
provide more controlled ability. The value can be provide more controlled ability. The value can be
compared with the BGP peer's AS. If they are different, compared with the BGP peer's AS. If they are different,
the SA comes from this peer may be rejected. the SA comes from this peer may be rejected.
If the ASN is the same as the local AS, then the peer is If the ASN is the same as the local AS, then the peer is
within the same domain; otherwise, this peer is external to within the same domain; otherwise, this peer is external to
the domain. Like the definition and usage in BGP."; the domain. Like the definition and usage in BGP.";
reference reference
skipping to change at line 367 skipping to change at line 353
peer. By default, there is no limit."; peer. By default, there is no limit.";
} }
container timer { container timer {
description description
"Timer attributes."; "Timer attributes.";
reference reference
"RFC 3618: Multicast Source Discovery Protocol (MSDP), "RFC 3618: Multicast Source Discovery Protocol (MSDP),
Section 5"; Section 5";
leaf connect-retry-interval { leaf connect-retry-interval {
type uint16; type uint16;
units seconds; units "seconds";
default 30; default "30";
description description
"The peer timer for connect-retry. By default, MSDP peers "The peer timer for connect-retry. By default, MSDP peers
wait 30 seconds after the session is reset."; wait 30 seconds after the session is reset.";
} }
leaf holdtime-interval { leaf holdtime-interval {
type uint16 { type uint16 {
range "3..65535"; range "3..65535";
} }
units seconds; units "seconds";
default 75; default "75";
description description
"The SA hold-down period of this MSDP peer."; "The SA hold-down period of this MSDP peer.";
} }
leaf keepalive-interval { leaf keepalive-interval {
type uint16 { type uint16 {
range "1..65535"; range "1..65535";
} }
units seconds; units "seconds";
must '. < ../holdtime-interval' { must '. < ../holdtime-interval' {
error-message error-message "The keepalive interval must be smaller than the "
"The keepalive interval must be smaller than the " + "hold-time interval.";
+ "hold-time interval.";
} }
default 60; default "60";
description description
"The keepalive timer of this MSDP peer."; "The keepalive timer of this MSDP peer.";
} }
} // timer }
// timer
uses ttl-threshold; uses ttl-threshold;
} // peer-config-attributes }
// peer-config-attributes
grouping peer-state-attributes { grouping peer-state-attributes {
description description
"Per-peer state attributes for MSDP."; "Per-peer state attributes for MSDP.";
leaf session-state { leaf session-state {
type enumeration { type enumeration {
enum disabled { enum disabled {
description description
"Disabled."; "Disabled.";
} }
enum inactive { enum inactive {
description description
"Inactive."; "Inactive.";
} }
enum listen { enum listen {
description description
"Listen."; "Listen.";
skipping to change at line 436 skipping to change at line 423
} }
config false; config false;
description description
"The peer's session state."; "The peer's session state.";
reference reference
"RFC 3618: Multicast Source Discovery Protocol (MSDP), "RFC 3618: Multicast Source Discovery Protocol (MSDP),
Section 11"; Section 11";
} }
leaf elapsed-time { leaf elapsed-time {
type yang:gauge32; type yang:gauge32;
units seconds; units "seconds";
config false; config false;
description description
"Elapsed time for being in a state."; "Elapsed time for being in a state.";
} }
leaf connect-retry-expire { leaf connect-retry-expire {
type uint32; type uint32;
units seconds; units "seconds";
config false; config false;
description description
"Connect retry expire time of a peer connection."; "Connect retry expire time of a peer connection.";
} }
leaf hold-expire { leaf hold-expire {
type uint16; type uint16;
units seconds; units "seconds";
config false; config false;
description description
"Hold expire time of a peer connection."; "Hold expire time of a peer connection.";
} }
leaf is-default-peer { leaf is-default-peer {
type boolean; type boolean;
config false; config false;
description description
"'true' if this peer is one of the default peers."; "'true' if this peer is one of the default peers.";
} }
leaf keepalive-expire { leaf keepalive-expire {
type uint16; type uint16;
units seconds; units "seconds";
config false; config false;
description description
"Keepalive expire time of this peer."; "Keepalive expire time of this peer.";
} }
leaf reset-count { leaf reset-count {
type yang:zero-based-counter32; type yang:zero-based-counter32;
config false; config false;
description description
"The reset count of this peer."; "The reset count of this peer.";
} }
skipping to change at line 527 skipping to change at line 509
container received { container received {
description description
"Received message counters."; "Received message counters.";
uses statistics-sent-received; uses statistics-sent-received;
} }
container sent { container sent {
description description
"Sent message counters."; "Sent message counters.";
uses statistics-sent-received; uses statistics-sent-received;
} }
} // statistics }
} // peer-state-attributes // statistics
}
// peer-state-attributes
grouping sa-filter-container { grouping sa-filter-container {
description description
"A container defining SA filters."; "A container defining SA filters.";
container sa-filter { container sa-filter {
description description
"Specifies an Access Control List (ACL) to filter SA messages "Specifies an Access Control List (ACL) to filter SA messages
coming into or going out of the peer."; coming into or going out of the peer.";
leaf in { leaf in {
type leafref { type leafref {
skipping to change at line 567 skipping to change at line 552
"Filters outgoing SA messages only. "Filters outgoing SA messages only.
The value is the name to uniquely identify a The value is the name to uniquely identify a
policy that contains one or more rules used to policy that contains one or more rules used to
accept or reject MSDP SA messages. accept or reject MSDP SA messages.
If the policy is not specified, all MSDP SA messages are If the policy is not specified, all MSDP SA messages are
sent."; sent.";
reference reference
"RFC 8519: YANG Data Model for Network Access Control "RFC 8519: YANG Data Model for Network Access Control
Lists (ACLs)"; Lists (ACLs)";
} }
} // sa-filter }
} // sa-filter-container // sa-filter
}
// sa-filter-container
grouping ttl-threshold { grouping ttl-threshold {
description description
"Attribute to configure the TTL threshold."; "Attribute to configure the TTL threshold.";
leaf ttl-threshold { leaf ttl-threshold {
type uint8 { type uint8 {
range 1..255; range "1..255";
} }
description description
"The maximum number of hops data packets can traverse "The maximum number of hops data packets can traverse
before being dropped."; before being dropped.";
} }
} // ttl-threshold }
// ttl-threshold
grouping statistics-sent-received { grouping statistics-sent-received {
description description
"A grouping defining sent and received statistics attributes."; "A grouping defining sent and received statistics attributes.";
leaf keepalive { leaf keepalive {
type yang:counter64; type yang:counter64;
description description
"The number of keepalive messages."; "The number of keepalive messages.";
} }
leaf notification { leaf notification {
skipping to change at line 616 skipping to change at line 606
leaf sa-request { leaf sa-request {
type yang:counter64; type yang:counter64;
description description
"The number of SA request messages."; "The number of SA request messages.";
} }
leaf total { leaf total {
type yang:counter64; type yang:counter64;
description description
"The number of total messages."; "The number of total messages.";
} }
} // statistics-sent-received }
// statistics-sent-received
/* /*
* Data nodes * Data nodes
*/ */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol" { + "rt:control-plane-protocol" {
when "derived-from-or-self(rt:type, 'msdp:msdp')" { when "derived-from-or-self(rt:type, 'msdp:msdp')" {
description description
"This augmentation is only valid for a routing protocol "This augmentation is only valid for a routing protocol
instance of MSDP."; instance of MSDP.";
} }
description description
"MSDP augmentation to routing control-plane protocol "MSDP augmentation to routing control-plane protocol
configuration and state."; configuration and state.";
skipping to change at line 703 skipping to change at line 691
RP field of an SA message entry."; RP field of an SA message entry.";
} }
leaf is-local-rp { leaf is-local-rp {
type boolean; type boolean;
description description
"'true' if the RP is local; "'true' if the RP is local;
'false' if the RP is not local."; 'false' if the RP is not local.";
} }
leaf sa-adv-expire { leaf sa-adv-expire {
type uint32; type uint32;
units seconds; units "seconds";
description description
"The remaining time duration before expiration "The remaining time duration before expiration
of the periodic SA advertisement timer on a of the periodic SA advertisement timer on a
local RP."; local RP.";
} }
} }
container state-attributes { container state-attributes {
description description
"SA cache state attributes for MSDP."; "SA cache state attributes for MSDP.";
leaf up-time { leaf up-time {
type yang:gauge32; type yang:gauge32;
units seconds; units "seconds";
description description
"Indicates the duration time when this SA entry is "Indicates the duration time when this SA entry is
created in the cache. MSDP is a periodic protocol; created in the cache. MSDP is a periodic protocol;
the value can be used to check the state of the the value can be used to check the state of the
SA cache."; SA cache.";
} }
leaf expire { leaf expire {
type yang:gauge32; type yang:gauge32;
units seconds; units "seconds";
description description
"Indicates the duration time when this SA entry in "Indicates the duration time when this SA entry in
the cache times out. MSDP is a periodic protocol; the cache times out. MSDP is a periodic protocol;
the value can be used to check the state of the the value can be used to check the state of the
SA cache."; SA cache.";
} }
leaf holddown-interval { leaf holddown-interval {
type uint32; type uint32;
units seconds; units "seconds";
description description
"Hold-down timer value for SA forwarding."; "Hold-down timer value for SA forwarding.";
reference reference
"RFC 3618: Multicast Source Discovery Protocol "RFC 3618: Multicast Source Discovery Protocol
(MSDP), Section 5.3"; (MSDP), Section 5.3";
} }
leaf peer-learned-from { leaf peer-learned-from {
type inet:ipv4-address; type inet:ipv4-address;
description description
"The address of the peer from which we learned this "The address of the peer from which we learned this
SA information."; SA information.";
} }
leaf rpf-peer { leaf rpf-peer {
type inet:ipv4-address; type inet:ipv4-address;
description description
"The address is the SA's originating RP."; "The address is the SA's originating RP.";
} }
} // state-attributes }
} // entry // state-attributes
}
// entry
action clear { action clear {
description description
"Clears MSDP SA cache entries."; "Clears MSDP SA cache entries.";
input { input {
container entry { container entry {
presence "If a particular entry is cleared."; presence "If a particular entry is cleared.";
description description
"The SA cache (S,G) or (*,G) entry to be cleared. "The SA cache (S,G) or (*,G) entry to be cleared.
If this is not provided, all entries are cleared."; If this is not provided, all entries are cleared.";
leaf group { leaf group {
skipping to change at line 794 skipping to change at line 781
learned from all peers are cleared."; learned from all peers are cleared.";
} }
leaf peer-as { leaf peer-as {
type inet:as-number; type inet:as-number;
description description
"The ASN from which MSDP SA cache entries have been "The ASN from which MSDP SA cache entries have been
learned. If this is not provided, entries learned learned. If this is not provided, entries learned
from all ASes are cleared."; from all ASes are cleared.";
} }
} }
} // clear }
} // sa-cache // clear
} // msdp }
} // augment // sa-cache
}
// msdp
}
// augment
} }
 End of changes. 65 change blocks. 
78 lines changed or deleted 80 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/