<reject-route/>
</actions>
</statement>
+ <statement>
+ <name>from-external-to-external-RTC</name>
+ <conditions>
+ <bgp-conditions xmlns="http://openconfig.net/yang/bgp-policy">
+ <afi-safi-in xmlns:x="urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions">x:ROUTE-TARGET-CONSTRAIN</afi-safi-in>
+ <match-role-set xmlns="urn:opendaylight:params:xml:ns:yang:odl:bgp:default:policy">
+ <from-role>
+ <role-set>/rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="only-ebgp"]</role-set>
+ </from-role>
+ <to-role>
+ <role-set>/rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="only-ebgp"]</role-set>
+ </to-role>
+ </match-role-set>
+ </bgp-conditions>
+ </conditions>
+ <actions>
+ <bgp-actions xmlns="http://openconfig.net/yang/bgp-policy">
+ <client-attribute-prepend xmlns="urn:opendaylight:params:xml:ns:yang:bgp:route:target:constrain"/>
+ </bgp-actions>
+ </actions>
+ </statement>
<statement>
<name>to-external</name>
<conditions>
<name>from-internal-or-rr-client-to-route-reflector</name>
<conditions>
<bgp-conditions xmlns="http://openconfig.net/yang/bgp-policy">
+ <afi-safi-not-in xmlns:x="urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions"
+ xmlns="urn:opendaylight:params:xml:ns:yang:odl:bgp:default:policy">x:ROUTE-TARGET-CONSTRAIN</afi-safi-not-in>
<match-role-set xmlns="urn:opendaylight:params:xml:ns:yang:odl:bgp:default:policy">
<from-role>
<role-set>/rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="ibgp-rr-client"]</role-set>
</bgp-actions>
</actions>
</statement>
+ <statement>
+ <name>from-internal-or-rr-client-to-route-RTC</name>
+ <conditions>
+ <bgp-conditions xmlns="http://openconfig.net/yang/bgp-policy">
+ <afi-safi-in xmlns:x="urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions">x:ROUTE-TARGET-CONSTRAIN</afi-safi-in>
+ <match-role-set xmlns="urn:opendaylight:params:xml:ns:yang:odl:bgp:default:policy">
+ <from-role>
+ <role-set>/rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="ibgp-rr-client"]</role-set>
+ </from-role>
+ <to-role>
+ <role-set>/rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="only-rr-client"]</role-set>
+ </to-role>
+ </match-role-set>
+ </bgp-conditions>
+ </conditions>
+ <actions>
+ <bgp-actions xmlns="http://openconfig.net/yang/bgp-policy">
+ <set-originator-id-prepend xmlns="urn:opendaylight:params:xml:ns:yang:odl:bgp:default:policy"/>
+ <set-next-hop>SELF</set-next-hop>
+ </bgp-actions>
+ </actions>
+ </statement>
+ <statement>
+ <name>vpn-membership-RTC</name>
+ <conditions>
+ <bgp-conditions xmlns="http://openconfig.net/yang/bgp-policy">
+ <afi-safi-in xmlns:x="http://openconfig.net/yang/bgp-types">x:L3VPN-IPV4-UNICAST</afi-safi-in>
+ <afi-safi-in xmlns:x="http://openconfig.net/yang/bgp-types">x:L3VPN-IPV6-UNICAST</afi-safi-in>
+ <vpn-non-member xmlns="urn:opendaylight:params:xml:ns:yang:odl:bgp:default:policy"/>
+ </bgp-conditions>
+ </conditions>
+ <actions>
+ <reject-route/>
+ </actions>
+ </statement>
</statements>
</policy-definition>
</policy-definitions>
final Optional<RouteTarget> rtMembership = RouteTargetMembeshipUtil.getRT(route);
if (rtMembership.isPresent()) {
final RouteTarget rt = rtMembership.get();
- if(PeerRole.Ibgp != this.peerImportParameters.getFromPeerRole()) {
+ if(PeerRole.Ebgp != this.peerImportParameters.getFromPeerRole()) {
this.rtCache.cacheRoute(route);
}
this.rtMemberships.add(rt);
} else {
final Optional<RouteTarget> rtMembership = RouteTargetMembeshipUtil.getRT(route);
if (rtMembership.isPresent()) {
- if(PeerRole.Ibgp != this.peerImportParameters.getFromPeerRole()) {
+ if(PeerRole.Ebgp != this.peerImportParameters.getFromPeerRole()) {
this.rtCache.uncacheRoute(route);
}
this.rtMemberships.remove(rtMembership.get());