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; }
11 import openconfig-routing-policy { prefix rpol; }
12 import openconfig-bgp-policy { prefix bgp-pol; }
13 import yang-ext { prefix ext; revision-date "2013-07-09"; }
15 organization "AT&T Services, Inc.";
17 contact "Claudio D. Gasparini <claudio.gasparini@pantheon.tech>";
20 "This module contains the base data model of a BGP message.
21 It rolls up the definitions contained in RFC4684.
23 Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
25 This program and the accompanying materials are made available
26 under the terms of the Eclipse Public License v1.0 which
27 accompanies this distribution, and is available at
28 http://www.eclipse.org/legal/epl-v10.html";
31 description "Initial version";
34 identity route-target-constrain-subsequent-address-family {
35 description "SAFI 132 Route Target constrains";
36 reference "https://www.iana.org/assignments/safi-namespace/safi-namespace.xhtml";
38 base bgp-t:subsequent-address-family;
41 grouping route-target-constrain {
42 reference "https://tools.ietf.org/html/rfc4684#page-8";
43 description "The Route Target constrains NLRI is carried in BGP [RFC4684] using BGP Multiprotocol
44 Extensions [RFC4760] with an Address Family Identifier (AFI) of 1 (IPV4)
45 and a Subsequent Address Family Identifier (SAFI) of 132 (ROUTE-TARGET)";
51 choice route-target-constrain-choice {
52 case route-target-constrain-default-case {
53 uses bgp-t:route-target-constrain-default-route-grouping;
55 case route-target-constrain-route-case {
56 uses bgp-t:route-target-extended-community-grouping;
58 case route-target-constrain-ipv4-route-case {
59 uses bgp-t:route-target-ipv4-grouping;
61 case route-target-constrain-as-4-extended-community-case {
62 uses bgp-t:as-4-route-target-extended-community-grouping;
68 grouping route-target-constrain-destination {
69 list route-target-constrain-destination {
70 uses route-target-constrain;
71 uses bgp-msg:path-id-grouping;
75 grouping route-target-constrain-routes {
76 container route-target-constrain-routes {
77 list route-target-constrain-route {
78 key "route-key path-id";
80 uses route-target-constrain;
85 augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-reach-nlri/bgp-mp:advertized-routes/bgp-mp:destination-type" {
86 case destination-route-target-constrain-advertized-case {
87 container destination-route-target-constrain {
88 uses route-target-constrain-destination;
93 augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-unreach-nlri/bgp-mp:withdrawn-routes/bgp-mp:destination-type" {
94 case destination-route-target-constrain-withdrawn-case {
95 container destination-route-target-constrain{
96 uses route-target-constrain-destination;
101 augment "/bgp-rib:application-rib/bgp-rib:tables/bgp-rib:routes" {
102 case route-target-constrain-routes-case {
103 uses route-target-constrain-routes;
107 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:loc-rib/bgp-rib:tables/bgp-rib:routes" {
108 case route-target-constrain-routes-case {
109 uses route-target-constrain-routes;
113 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-in/bgp-rib:tables/bgp-rib:routes" {
114 case route-target-constrain-routes-case {
115 uses route-target-constrain-routes;
119 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:effective-rib-in/bgp-rib:tables/bgp-rib:routes" {
120 case route-target-constrain-routes-case {
121 uses route-target-constrain-routes;
125 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-out/bgp-rib:tables/bgp-rib:routes" {
126 case route-target-constrain-routes-case {
127 uses route-target-constrain-routes;
131 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" {
132 case route-target-constrain-routes-case {
133 uses route-target-constrain-routes;
137 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" {
138 case route-target-constrain-routes-case {
139 uses route-target-constrain-routes;
143 augment /rpol:routing-policy/rpol:policy-definitions/rpol:policy-definition/rpol:statements/rpol:statement/rpol:actions/bgp-pol:bgp-actions {
144 ext:augment-identifier client-attribute-prepend;
145 container client-attribute-prepend {
147 presence "node is present in the config data to use the client attributes prepend action";
148 description "action to use attribute from advertized from a client(rfc4684)";