}
}
- grouping route-reflector-cluster-id-config {
- leaf route-reflector-cluster-id {
- type bgp-types:rr-cluster-id-type;
- description
- "Route-reflector cluster id to use when local router is
- configured as a route reflector.";
- }
- }
-
augment /netinst:network-instances/netinst:network-instance/netinst:protocols/netinst:protocol {
ext:augment-identifier network-instance-protocol;
uses openconfig-bgp:bgp-top {
peer-group";
uses openconfig-bgp:bgp-neighbor-peer-group_config;
}
- augment bgp/neighbors/neighbor/config {
- ext:augment-identifier neighbor-cluster-id-config;
- uses route-reflector-cluster-id-config;
- }
augment bgp/global/config {
ext:augment-identifier global-config-augmentation;
- uses route-reflector-cluster-id-config;
+ leaf route-reflector-cluster-id {
+ type bgp-types:rr-cluster-id-type;
+ description
+ "Route-reflector cluster id to use when local router is
+ configured as a route reflector.";
+ }
}
augment bgp/neighbors/neighbor/state {
ext:augment-identifier neighbor_state-augmentation;
ext:augment-identifier peer-group-transport-config;
uses transport-config;
}
- augment bgp/peer-groups/peer-group/config {
- ext:augment-identifier peer-group-cluster-id-config;
- uses route-reflector-cluster-id-config;
- }
augment bgp/peer-groups/peer-group/afi-safis/afi-safi {
ext:augment-identifier group-add-paths-config;
uses openconfig-bgp:bgp-neighbor-add-paths_config;
.toTableKey(afisSAfis.getAfiSafi(), tableTypeRegistry);
final PeerRole role = OpenConfigMappingUtil.toPeerRole(neighbor, peerGroup);
final ClusterIdentifier clusterId = OpenConfigMappingUtil
- .getNeighborClusterIdentifier(neighbor.getConfig());
+ .getNeighborClusterIdentifier(neighbor.getRouteReflector(), peerGroup);
final List<BgpParameters> bgpParameters = getBgpParameters(afisSAfis, rib, tableTypeRegistry);
final KeyMapping keyMapping = OpenConfigMappingUtil.getNeighborKey(neighbor);
final IpAddress neighborLocalAddress = OpenConfigMappingUtil.getLocalAddress(neighbor.getTransport());
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.GlobalAddPathsConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.GlobalConfigAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborAddPathsConfig;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborClusterIdConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborPeerGroupConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborTransportConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.PeerGroupTransportConfig;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.RouteReflectorClusterIdConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.PeerRole;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.ClusterIdentifier;
public static ClusterIdentifier getGlobalClusterIdentifier(final org.opendaylight.yang.gen.v1.http.openconfig.net
.yang.bgp.rev151009.bgp.global.base.Config globalConfig) {
- final RouteReflectorClusterIdConfig configAug
+ final GlobalConfigAugmentation globalConfigAugmentation
= globalConfig.getAugmentation(GlobalConfigAugmentation.class);
- if (configAug != null && configAug.getRouteReflectorClusterId() != null) {
- return new ClusterIdentifier(configAug.getRouteReflectorClusterId().getIpv4Address());
+ if (globalConfigAugmentation != null && globalConfigAugmentation.getRouteReflectorClusterId() != null) {
+ return new ClusterIdentifier(globalConfigAugmentation.getRouteReflectorClusterId().getIpv4Address());
}
return new ClusterIdentifier(globalConfig.getRouterId());
}
@Nullable
- public static ClusterIdentifier getNeighborClusterIdentifier(@Nullable final org.opendaylight.yang.gen.v1.http
- .openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.Config config) {
- if (config != null) {
- final RouteReflectorClusterIdConfig configAug = config.getAugmentation(NeighborClusterIdConfig.class);
- if (configAug != null && configAug.getRouteReflectorClusterId() != null) {
- return new ClusterIdentifier(configAug.getRouteReflectorClusterId().getIpv4Address());
+ public static ClusterIdentifier getNeighborClusterIdentifier(
+ @Nullable final RouteReflector routeReflector,
+ @Nullable final PeerGroup peerGroup) {
+ if (peerGroup != null) {
+ final ClusterIdentifier clusteriId = extractClusterId(peerGroup.getRouteReflector());
+ if (clusteriId != null) {
+ return clusteriId;
+ }
+ }
+
+ return extractClusterId(routeReflector);
+ }
+
+ private static ClusterIdentifier extractClusterId(final RouteReflector routeReflector) {
+ if (routeReflector != null) {
+ final org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.route
+ .reflector.Config config = routeReflector.getConfig();
+ if (config != null && config.getRouteReflectorClusterId() != null) {
+ return new ClusterIdentifier(config.getRouteReflectorClusterId().getIpv4Address());
}
}
return null;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.NeighborBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.NeighborKey;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.peer.group.PeerGroup;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.peer.group.PeerGroupBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Neighbors;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.GlobalConfigAugmentationBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborAddPathsConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborAddPathsConfigBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborClusterIdConfig;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborClusterIdConfigBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborPeerGroupConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborPeerGroupConfigBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.NeighborTransportConfig;
@Test
public void testGetNeighborClusterIdentifier() {
- assertNull(OpenConfigMappingUtil.getNeighborClusterIdentifier(null));
- final ConfigBuilder configBuilder = new ConfigBuilder();
- assertNull(OpenConfigMappingUtil.getNeighborClusterIdentifier(configBuilder.build()));
+ assertNull(OpenConfigMappingUtil.getNeighborClusterIdentifier(null, null));
+
+ final PeerGroupBuilder peerGroup = new PeerGroupBuilder();
+ assertNull(OpenConfigMappingUtil.getNeighborClusterIdentifier(null, peerGroup.build()));
+
+ final RouteReflectorBuilder configBuilder = new RouteReflectorBuilder();
+ assertNull(OpenConfigMappingUtil.getNeighborClusterIdentifier(configBuilder.build(), peerGroup.build()));
- configBuilder.addAugmentation(NeighborClusterIdConfig.class, new NeighborClusterIdConfigBuilder()
+ configBuilder.setConfig(new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor
+ .group.route.reflector.ConfigBuilder()
.setRouteReflectorClusterId(new RrClusterIdType(CLUSTER_ID)).build()).build();
- assertEquals(CLUSTER_ID.getValue(),
- OpenConfigMappingUtil.getNeighborClusterIdentifier(configBuilder.build()).getValue());
+ assertEquals(CLUSTER_ID.getValue(), OpenConfigMappingUtil.getNeighborClusterIdentifier(configBuilder.build(),
+ peerGroup.build()).getValue());
+
+ assertEquals(CLUSTER_ID.getValue(), OpenConfigMappingUtil.getNeighborClusterIdentifier(null,
+ peerGroup.setRouteReflector(configBuilder.build()).build()).getValue());
}
@Test