module ietf-bfd-mpls {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls";
prefix bfd-mpls;
import ietf-bfd-types {
prefix bfd-types;
reference
"RFC 9127: YANG Data Model for Bidirectional Forwarding
Detection (BFD)";
}
import ietf-bfd {
prefix bfd;
reference
"RFC 9127: YANG Data Model for Bidirectional Forwarding
Detection (BFD)";
}
import ietf-inet-types {
prefix inet;
reference
"RFC 6991: Common YANG Data Types";
}
import ietf-routing {
prefix rt;
reference
"RFC 8349: A YANG Data Model for Routing Management
(NMDA Version)";
}
organization
"IETF BFD Working Group";
contact
"WG Web:
WG List:
Editor: Reshad Rahman
Editor: Lianshu Zheng
Editor: Mahesh Jethanandani
";
description
"This module contains the YANG definition for BFD parameters for
MPLS LSPs as per RFC 5884.
Copyright (c) 2021 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
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
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 9127; see the
RFC itself for full legal notices.";
reference
"RFC 5884: Bidirectional Forwarding Detection (BFD)
for MPLS Label Switched Paths (LSPs)
RFC 9127: YANG Data Model for Bidirectional Forwarding
Detection (BFD)";
revision 2021-10-21 {
description
"Initial revision.";
reference
"RFC 9127: YANG Data Model for Bidirectional Forwarding
Detection (BFD)";
}
/*
* Identity definitions
*/
identity encap-gach {
base bfd-types:encap-type;
description
"BFD with G-ACh encapsulation as per RFC 5586.";
reference
"RFC 5586: MPLS Generic Associated Channel";
}
identity encap-ip-gach {
base bfd-types:encap-type;
description
"BFD with IP and G-ACh encapsulation as per RFC 5586.";
}
/*
* Groupings
*/
grouping encap-cfg {
description
"Configuration for BFD encapsulation.";
leaf encap {
type identityref {
base bfd-types:encap-type;
}
default "bfd-types:encap-ip";
description
"BFD encapsulation.";
}
}
grouping mpls-dest-address {
description
"Destination address as per RFC 5884.";
reference
"RFC 5884: Bidirectional Forwarding Detection (BFD)
for MPLS Label Switched Paths (LSPs)";
leaf mpls-dest-address {
type inet:ip-address;
config false;
description
"Destination address as per RFC 5884.
Needed if IP encapsulation is used.";
}
}
/*
* Augments
*/
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/bfd:bfd" {
description
"BFD augmentation for MPLS.";
container mpls {
description
"BFD MPLS top-level container.";
uses bfd-types:session-statistics-summary;
container egress {
description
"Egress configuration.";
uses bfd-types:client-cfg-parms;
uses bfd-types:auth-parms;
}
container session-groups {
description
"BFD-over-MPLS session groups.";
list session-group {
key "mpls-fec";
description
"Group of BFD MPLS sessions (for ECMP). A group of
sessions is for one FEC. Each session has a different
field in the UDP/IP header for ECMP.";
leaf mpls-fec {
type inet:ip-prefix;
description
"MPLS FEC.";
}
uses bfd-types:common-cfg-parms;
list sessions {
config false;
description
"The BFD sessions for an MPLS FEC. The local
discriminator is unique for each session in the
group.";
uses bfd-types:all-session;
uses bfd-mpls:mpls-dest-address;
}
}
}
}
}
/*
* Notifications
*/
notification mpls-notification {
description
"Notification for BFD-over-MPLS FEC session state change.
An implementation may rate-limit notifications, e.g., when a
session is continuously changing state.";
uses bfd-types:notification-parms;
leaf mpls-dest-address {
type inet:ip-address;
description
"Destination address as per RFC 5884.
Needed if IP encapsulation is used.";
}
}
}