1 module bgp-route-target-constrain {
3 namespace "urn:opendaylight:params:xml:ns:yang:bgp:route:target:constrain";
4 prefix "bgp-route-target";
6 import bgp-types { prefix bgp-t; revision-date 2018-03-29; }
7 import bgp-rib { prefix bgp-rib; revision-date 2018-03-29; }
8 import bmp-monitor { prefix bmp-mon; revision-date 2018-03-29; }
9 import bgp-message { prefix bgp-msg; revision-date 2018-03-29; }
10 import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
12 organization "AT&T Services, Inc.";
14 contact "Claudio D. Gasparini <claudio.gasparini@pantheon.tech>";
17 "This module contains the base data model of a BGP message.
18 It rolls up the definitions contained in RFC4684.
20 Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
22 This program and the accompanying materials are made available
23 under the terms of the Eclipse Public License v1.0 which
24 accompanies this distribution, and is available at
25 http://www.eclipse.org/legal/epl-v10.html";
28 description "Initial version";
31 identity route-target-constrain-subsequent-address-family {
32 description "SAFI 132 Route Target constrains";
33 reference "https://www.iana.org/assignments/safi-namespace/safi-namespace.xhtml";
35 base bgp-t:subsequent-address-family;
38 grouping route-target-constrain {
39 reference "https://tools.ietf.org/html/rfc4684#page-8";
40 description "The Route Target constrains NLRI is carried in BGP [RFC4684] using BGP Multiprotocol
41 Extensions [RFC4760] with an Address Family Identifier (AFI) of 1 (IPV4)
42 and a Subsequent Address Family Identifier (SAFI) of 132 (ROUTE-TARGET)";
48 choice route-target-constrain-choice {
49 case route-target-constrain-default-case {
50 container route-target-constrain-default-route {
52 "The presence of this container indicates that the routes
53 is a default route target";
56 case route-target-constrain-route-case {
57 uses bgp-t:route-target-extended-community-grouping;
59 case route-target-constrain-ipv4-route-case {
60 uses bgp-t:route-target-ipv4-grouping;
62 case route-target-constrain-as-4-extended-community-case {
63 uses bgp-t:as-4-route-target-extended-community-grouping;
69 grouping route-target-constrain-destination {
70 list route-target-constrain-destination {
71 uses route-target-constrain;
72 uses bgp-msg:path-id-grouping;
76 grouping route-target-constrain-routes {
77 container route-target-constrain-routes {
78 list route-target-constrain-route {
79 key "route-key path-id";
81 uses route-target-constrain;
86 augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-reach-nlri/bgp-mp:advertized-routes/bgp-mp:destination-type" {
87 case destination-route-target-constrain-advertized-case {
88 container destination-route-target-constrain {
89 uses route-target-constrain-destination;
94 augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-unreach-nlri/bgp-mp:withdrawn-routes/bgp-mp:destination-type" {
95 case destination-route-target-constrain-withdrawn-case {
96 container destination-route-target-constrain{
97 uses route-target-constrain-destination;
102 augment "/bgp-rib:application-rib/bgp-rib:tables/bgp-rib:routes" {
103 case route-target-constrain-routes-case {
104 uses route-target-constrain-routes;
108 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:loc-rib/bgp-rib:tables/bgp-rib:routes" {
109 case route-target-constrain-routes-case {
110 uses route-target-constrain-routes;
114 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-in/bgp-rib:tables/bgp-rib:routes" {
115 case route-target-constrain-routes-case {
116 uses route-target-constrain-routes;
120 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:effective-rib-in/bgp-rib:tables/bgp-rib:routes" {
121 case route-target-constrain-routes-case {
122 uses route-target-constrain-routes;
126 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-out/bgp-rib:tables/bgp-rib:routes" {
127 case route-target-constrain-routes-case {
128 uses route-target-constrain-routes;
132 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" {
133 case route-target-constrain-routes-case {
134 uses route-target-constrain-routes;
138 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" {
139 case route-target-constrain-routes-case {
140 uses route-target-constrain-routes;