module bgp-l3vpn-mcast { yang-version 1; namespace "urn:opendaylight:params:xml:ns:yang:bgp:l3vpn:mcast"; prefix "bgp-l3vpn-mcast"; import bgp-rib { prefix bgp-rib; revision-date 2018-03-29; } import bgp-multiprotocol { prefix bgp-mp; revision-date 2018-03-29; } import ietf-inet-types { prefix inet; revision-date 2013-07-15; } import bgp-message { prefix bgp-msg; revision-date 2020-01-20; } import bmp-monitor { prefix bmp-mon; revision-date 2020-01-20; } import bgp-types { prefix bgp-t; revision-date 2020-01-20; } organization "AT&T Services, Inc."; contact "Claudio D. Gasparini "; description "This module contains the base data model of a BGP message. It rolls up the definitions contained in RFC6513, RFC6514. Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html"; revision 2018-04-17 { description "Initial version"; } identity mcast-mpls-labeled-vpn-subsequent-address-family { description "SAFI 129 multicast l3vpn"; reference "https://www.iana.org/assignments/safi-namespace/safi-namespace.xhtml"; base bgp-t:subsequent-address-family; } grouping l3vpn-mcast-route { leaf prefix { type inet:ip-prefix; } uses bgp-t:route-distinguisher-grouping; } grouping l3vpn-mcast-destination { list l3vpn-mcast-destination { uses l3vpn-mcast-route; uses bgp-msg:path-id-grouping; } } grouping l3vpn-mcast-routes { list l3vpn-mcast-route { key "route-key path-id"; uses bgp-rib:route; uses l3vpn-mcast-route; } } grouping l3vpn-mcast-routes-ipv4 { container l3vpn-mcast-routes-ipv4 { uses l3vpn-mcast-routes; } } grouping l3vpn-mcast-routes-ipv6 { container l3vpn-mcast-routes-ipv6 { uses l3vpn-mcast-routes; } } augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-reach-nlri/bgp-mp:advertized-routes/bgp-mp:destination-type" { case destination-l3vpn-mcast-ipv4-advertized-case { when "../../afi = ipv4"; container destination-ipv4-l3vpn-mcast { uses l3vpn-mcast-destination; } } case destination-l3vpn-mcast-ipv6-advertized-case { when "../../afi = ipv6"; container destination-ipv6-l3vpn-mcast { uses l3vpn-mcast-destination; } } } augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-unreach-nlri/bgp-mp:withdrawn-routes/bgp-mp:destination-type" { case destination-l3vpn-mcast-ipv4-withdrawn-case { when "../../afi = ipv4"; container destination-ipv4-l3vpn-mcast { uses l3vpn-mcast-destination; } } case destination-l3vpn-mcast-ipv6-withdrawn-case { when "../../afi = ipv6"; container destination-ipv6-l3vpn-mcast { uses l3vpn-mcast-destination; } } } augment "/bgp-rib:application-rib/bgp-rib:tables/bgp-rib:routes" { case l3vpn-mcast-routes-ipv4-case { uses l3vpn-mcast-routes-ipv4; } case l3vpn-mcast-routes-ipv6-case { uses l3vpn-mcast-routes-ipv6; } } augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:loc-rib/bgp-rib:tables/bgp-rib:routes" { case l3vpn-mcast-routes-ipv4-case { uses l3vpn-mcast-routes-ipv4; } case l3vpn-mcast-routes-ipv6-case { uses l3vpn-mcast-routes-ipv6; } } augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-in/bgp-rib:tables/bgp-rib:routes" { case l3vpn-mcast-routes-ipv4-case { uses l3vpn-mcast-routes-ipv4; } case l3vpn-mcast-routes-ipv6-case { uses l3vpn-mcast-routes-ipv6; } } augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:effective-rib-in/bgp-rib:tables/bgp-rib:routes" { case l3vpn-mcast-routes-ipv4-case { uses l3vpn-mcast-routes-ipv4; } case l3vpn-mcast-routes-ipv6-case { uses l3vpn-mcast-routes-ipv6; } } augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-out/bgp-rib:tables/bgp-rib:routes" { case l3vpn-mcast-routes-ipv4-case { uses l3vpn-mcast-routes-ipv4; } case l3vpn-mcast-routes-ipv6-case { uses l3vpn-mcast-routes-ipv6; } } augment "/bmp-mon:bmp-monitor/bmp-mon:monitor/bmp-mon:router/bmp-mon:peer/bmp-mon:pre-policy-rib/bmp-mon:tables/bmp-mon:routes" { case l3vpn-mcast-routes-ipv4-case { uses l3vpn-mcast-routes-ipv4; } case l3vpn-mcast-routes-ipv6-case { uses l3vpn-mcast-routes-ipv6; } } augment "/bmp-mon:bmp-monitor/bmp-mon:monitor/bmp-mon:router/bmp-mon:peer/bmp-mon:post-policy-rib/bmp-mon:tables/bmp-mon:routes" { case l3vpn-mcast-routes-ipv4-case { uses l3vpn-mcast-routes-ipv4; } case l3vpn-mcast-routes-ipv6-case { uses l3vpn-mcast-routes-ipv6; } } }