module ietf-bfd-mpls { namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-mpls"; // replace with IANA namespace when assigned prefix "bfd-mpls"; import ietf-bfd-types { prefix "bfd-types"; } import ietf-bfd { prefix "bfd"; } import ietf-inet-types { prefix "inet"; } import ietf-routing { prefix "rt"; } organization "IETF BFD Working Group"; contact "WG Web: WG List: Editors: Reshad Rahman (rrahman@cisco.com), Lianshu Zheng (vero.zheng@huawei.com), Mahesh Jethanandani (mjethanandani@gmail.com)"; description "This module contains the YANG definition for BFD parameters for MPLS LSPs as per RFC5884. Copyright (c) 2017 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 (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision 2017-10-30 { description "Initial revision."; reference "RFC XXXX: A YANG data model for BFD over MPLS LSPs"; } // RFC Ed.: replace XXXX with actual RFC number and remove this // note identity encap-gach { base bfd-types:encap-type; description "BFD with G-ACh encapsulation as per RFC5586."; } identity encap-ip-gach { base bfd-types:encap-type; description "BFD with IP and G-ACh encapsulation as per RFC5586."; } 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 RFC5884"; leaf mpls-dest-address { type inet:ip-address; config "false"; description "Destination address as per RFC5884. Needed if IP encapsulation is used"; } } 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; container egress { description "Egress configuration"; uses bfd-types:client-cfg-parms; uses bfd-types:auth-parms; } list session-group { key "mpls-fec"; description "Group of BFD MPLS sessions (for ECMP). A group of " + "sessions is for 1 FEC, each session has a different " + "field in UDP/IP hdr 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. Local " + "discriminator is unique for each session in the " + "group."; uses bfd-types:all-session; uses bfd-mpls:mpls-dest-address; } } } } 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 RFC5884. Needed if IP encapsulation is used"; } } }