final class BGPGlobalProviderImpl extends AbstractBGPOpenConfigMapper<BGPRibInstanceConfiguration, Bgp> {
private static final PeerGroup APP_PEER_GROUP = new PeerGroupBuilder().setPeerGroupName(APPLICATION_PEER_GROUP_NAME)
- .setKey(new PeerGroupKey(APPLICATION_PEER_GROUP_NAME)).build();
+ .setKey(new PeerGroupKey(APPLICATION_PEER_GROUP_NAME)).build();
public BGPGlobalProviderImpl(final BindingTransactionChain txChain, final BGPConfigStateStore stateHolders) {
super(txChain, stateHolders, Bgp.class);
final BgpBuilder bgpBuilder = new BgpBuilder();
bgpBuilder.setNeighbors(new NeighborsBuilder().build());
bgpBuilder.setPeerGroups(new PeerGroupsBuilder().setPeerGroup(Collections.singletonList(APP_PEER_GROUP)).build());
- final Global global = new GlobalBuilder()
- .setAfiSafis(new AfiSafisBuilder().setAfiSafi(OpenConfigUtil.toAfiSafis(config.getTableTypes(),
- (afiSafi, tableType) -> OpenConfigUtil.toGlobalAfiSafiMultiPath(afiSafi, tableType, config.getPathSelectionModes()))).build())
- .setConfig(new ConfigBuilder()
- .setAs(config.getLocalAs())
- .setRouterId(config.getBgpRibId()).build()).build();
+ final Global global = new GlobalBuilder().setAfiSafis(new AfiSafisBuilder().setAfiSafi(OpenConfigUtil.toAfiSafis(config.getTableTypes(),
+ (afiSafi, tableType) -> OpenConfigUtil.toGlobalAfiSafiMultiPath(afiSafi, tableType, config.getPathSelectionModes()))).build())
+ .setConfig(new ConfigBuilder().setAs(config.getLocalAs()).setRouterId(config.getBgpRibId()).build()).build();
bgpBuilder.setGlobal(global);
return bgpBuilder.build();
}
super(txChain, stateHolders, Neighbor.class);
}
- @Override
- public Class<BGPPeerInstanceConfiguration> getInstanceConfigurationType() {
- return BGPPeerInstanceConfiguration.class;
- }
-
@Override
public Neighbor apply(final BGPPeerInstanceConfiguration config) {
return toNeighborConfiguration(config);
return new ModuleKey(instanceName, BgpPeer.class);
}
+ @Override
+ public Class<BGPPeerInstanceConfiguration> getInstanceConfigurationType() {
+ return BGPPeerInstanceConfiguration.class;
+ }
+
private static Neighbor toNeighborConfiguration(final BGPPeerInstanceConfiguration config) {
return new NeighborBuilder()
.setNeighborAddress(config.getHost())
.setKey(new NeighborKey(config.getHost()))
.setTransport(new TransportBuilder().setConfig(
- new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.transport.ConfigBuilder()
+ new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.transport.ConfigBuilder()
.setPassiveMode(!config.isActive())
.build()).build())
.setConfig(
- new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.ConfigBuilder()
- .setAuthPassword(getPasswor(config.getPassword()))
+ new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.ConfigBuilder()
+ .setAuthPassword(getPassword(config.getPassword()))
.setPeerAs(config.getAsNumber())
.setPeerType(toPeerTye(config.getPeerRole()))
.build())
.setAfiSafis(
- new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.AfiSafisBuilder()
+ new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.AfiSafisBuilder()
.setAfiSafi(OpenConfigUtil.toAfiSafis(config.getAdvertizedTables(),
- (afiSAfi, tableType) -> OpenConfigUtil.toNeigborAfiSafiMultiPath(afiSAfi, tableType, config.getAddPathCapabilities())))
+ (afiSAfi, tableType) -> OpenConfigUtil.toNeigborAfiSafiMultiPath(afiSAfi, tableType, config.getAddPathCapabilities())))
.build())
.setTimers(new TimersBuilder().setConfig(
- new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.timers.ConfigBuilder()
+ new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.timers.ConfigBuilder()
.setHoldTime(BigDecimal.valueOf(config.getHoldTimer()))
.build()).build())
.setRouteReflector(new RouteReflectorBuilder().setConfig(
- new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.route.reflector.ConfigBuilder()
- .setRouteReflectorClient(config.getPeerRole() == PeerRole.RrClient)
- .build()).build())
+ new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.route.reflector.ConfigBuilder()
+ .setRouteReflectorClient(config.getPeerRole() == PeerRole.RrClient).build()).build())
.build();
}
private static PeerType toPeerTye(final PeerRole peerRole) {
- switch(peerRole) {
+ switch (peerRole) {
case Ibgp:
case RrClient:
return PeerType.INTERNAL;
return null;
}
- private static String getPasswor(final Optional<Rfc2385Key> maybePassword) {
+ private static String getPassword(final Optional<Rfc2385Key> maybePassword) {
if (maybePassword.isPresent()) {
return maybePassword.get().getValue();
}
public final class OpenConfigUtil {
- private static final char EQUALS = '=';
-
public static final InstanceIdentifier<Bgp> BGP_IID = InstanceIdentifier.create(Bgp.class);
-
public static final String APPLICATION_PEER_GROUP_NAME = "application-peers";
-
public static final String FAILED_TO_READ_SERVICE = "Failed to read service.";
-
+ private static final char EQUALS = '=';
private static final BiMap<BgpTableType, Class<? extends AfiSafiType>> TABLETYPE_TO_AFISAFI;
static {
public static AfiSafi toNeigborAfiSafiMultiPath(final AfiSafi afiSafi, final BgpTableType tableType, final Collection<AddressFamilies> addPathCapabilities) {
final java.util.Optional<AddressFamilies> addPathMayBe = addPathCapabilities.stream().filter(
- af -> af.getAfi() == tableType.getAfi() && af.getSafi() == tableType.getSafi()).findFirst();
+ af -> af.getAfi() == tableType.getAfi() && af.getSafi() == tableType.getSafi()).findFirst();
if (addPathMayBe.isPresent()) {
final AfiSafi2 afiSafi3 = new AfiSafi2Builder().setUseMultiplePaths(
- new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.use.multiple.paths.neighbor.UseMultiplePathsBuilder().setConfig(
+ new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.use.multiple.paths.neighbor.UseMultiplePathsBuilder().setConfig(
new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.use.multiple.paths.neighbor.use.multiple.paths.ConfigBuilder()
.setEnabled(true).build()).build()).build();
return new AfiSafiBuilder(afiSafi).addAugmentation(AfiSafi2.class, afiSafi3).build();
maxPaths = null;
}
final AfiSafi1 afiSafi1 = new AfiSafi1Builder().setUseMultiplePaths(
- new UseMultiplePathsBuilder().setConfig(new ConfigBuilder().setEnabled(true).build())
- .setEbgp(maxPaths != null ? new EbgpBuilder().setConfig(
- new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.use.multiple.paths.use.multiple.paths.ebgp.ConfigBuilder()
- .setMaximumPaths(maxPaths)
- .build()).build() : null)
- .setIbgp(maxPaths != null ? new IbgpBuilder().setConfig(
- new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.use.multiple.paths.use.multiple.paths.ibgp.ConfigBuilder()
- .setMaximumPaths(maxPaths).build()).build() : null).build()).build();
+ new UseMultiplePathsBuilder().setConfig(new ConfigBuilder().setEnabled(true).build())
+ .setEbgp(maxPaths != null ? new EbgpBuilder().setConfig(
+ new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.use.multiple.paths.use.multiple.paths.ebgp.ConfigBuilder()
+ .setMaximumPaths(maxPaths)
+ .build()).build() : null)
+ .setIbgp(maxPaths != null ? new IbgpBuilder().setConfig(
+ new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.use.multiple.paths.use.multiple.paths.ibgp.ConfigBuilder()
+ .setMaximumPaths(maxPaths).build()).build() : null).build()).build();
return new AfiSafiBuilder(afiSafi).addAugmentation(AfiSafi1.class, afiSafi1).build();
}
}
@Test
public void testToAfiSafi() {
- assertEquals(toAfiSafi(BGP_TABLE_TYPE_IPV4).get(),
- AFISAFI_IPV4);
+ assertEquals(toAfiSafi(BGP_TABLE_TYPE_IPV4).get(), AFISAFI_IPV4);
}
@Test
@Test
public void testToAfiSafis() {
- final List<AfiSafi> afiSafis = OpenConfigUtil.toAfiSafis(Lists.<BgpTableType>newArrayList(BGP_TABLE_TYPE_IPV4),
- (afisafi, tableType) -> afisafi);
+ final List<AfiSafi> afiSafis = OpenConfigUtil.toAfiSafis(Lists.newArrayList(BGP_TABLE_TYPE_IPV4), (afisafi, tableType) -> afisafi);
Assert.assertEquals(Collections.singletonList(AFISAFI_IPV4), afiSafis);
}
@Test
public void toNeigborAfiSafiMultiPathMatch() {
final AfiSafi afiSafi = OpenConfigUtil.toNeigborAfiSafiMultiPath(AFISAFI_IPV4, BGP_TABLE_TYPE_IPV4,
- Lists.newArrayList(new AddressFamiliesBuilder(BGP_TABLE_TYPE_IPV4).setSendReceive(SendReceive.Both).build()));
+ Lists.newArrayList(new AddressFamiliesBuilder(BGP_TABLE_TYPE_IPV4).setSendReceive(SendReceive.Both).build()));
Assert.assertTrue(afiSafi.getAugmentation(AfiSafi2.class).getUseMultiplePaths().getConfig().isEnabled());
}
@Test
public void toGlobalAfiSafiMultiPathNPaths() {
final AfiSafi afiSafi = OpenConfigUtil.toGlobalAfiSafiMultiPath(AFISAFI_IPV4, BGP_TABLE_TYPE_IPV4,
- Collections.singletonMap(new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class), new AddPathBestNPathSelection(5L)));
+ Collections.singletonMap(new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class), new AddPathBestNPathSelection(5L)));
final UseMultiplePaths multiplePaths = afiSafi.getAugmentation(AfiSafi1.class).getUseMultiplePaths();
Assert.assertTrue(multiplePaths.getConfig().isEnabled());
Assert.assertEquals(5, multiplePaths.getIbgp().getConfig().getMaximumPaths().intValue());
@Test
public void toGlobalAfiSafiMultiPathAllPaths() {
final AfiSafi afiSafi = OpenConfigUtil.toGlobalAfiSafiMultiPath(AFISAFI_IPV4, BGP_TABLE_TYPE_IPV4,
- Collections.singletonMap(new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class), new AllPathSelection()));
+ Collections.singletonMap(new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class), new AllPathSelection()));
final UseMultiplePaths multiplePaths = afiSafi.getAugmentation(AfiSafi1.class).getUseMultiplePaths();
Assert.assertTrue(multiplePaths.getConfig().isEnabled());
Assert.assertNull(multiplePaths.getIbgp());
@Test
public void toGlobalAfiSafiMultiPathNoMatch() {
- final AfiSafi afiSafi = OpenConfigUtil.toGlobalAfiSafiMultiPath(AFISAFI_IPV4, BGP_TABLE_TYPE_IPV4,
- Collections.emptyMap());
+ final AfiSafi afiSafi = OpenConfigUtil.toGlobalAfiSafiMultiPath(AFISAFI_IPV4, BGP_TABLE_TYPE_IPV4, Collections.emptyMap());
Assert.assertEquals(AFISAFI_IPV4, afiSafi);
}
- @Test(expected=UnsupportedOperationException.class)
+ @Test(expected = UnsupportedOperationException.class)
public void testPrivateConstructor() throws Throwable {
final Constructor<OpenConfigUtil> c = OpenConfigUtil.class.getDeclaredConstructor();
c.setAccessible(true);
throw e.getCause();
}
}
-
}
\ No newline at end of file