bgpPeerBuilder.setPassword(new Rfc2385Key(neighbor.getConfig().getAuthPassword()));
}
if (neighbor.getConfig().getPeerAs() != null) {
- bgpPeerBuilder.setRemoteAs(neighbor.getConfig().getPeerAs().getValue());
+ bgpPeerBuilder.setRemoteAs(neighbor.getConfig().getPeerAs());
}
if (neighbor.getConfig().getPeerType() != null) {
bgpPeerBuilder.setPeerRole(toPeerRole(neighbor));
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.BgpBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.bgp.rib.impl.rev160330.BgpPathSelectionMode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.bgp.rib.impl.rev160330.BgpTableType;
final RibImpl ribImpl = (RibImpl) module.getConfiguration();
final RibImplBuilder ribImplBuilder = new RibImplBuilder();
if (globalConfig.getConfig() != null) {
- ribImplBuilder.setBgpRibId(new BgpId(new Ipv4Address(globalConfig.getConfig().getRouterId().getValue())));
- ribImplBuilder.setLocalAs(globalConfig.getConfig().getAs().getValue());
+ ribImplBuilder.setBgpRibId(new BgpId(globalConfig.getConfig().getRouterId()));
+ ribImplBuilder.setLocalAs(globalConfig.getConfig().getAs());
}
ribImplBuilder.setLocalTable(tableTypes);
ribImplBuilder.setBgpDispatcher(ribImpl.getBgpDispatcher());
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.NeighborKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.bgp.rib.impl.rev160330.BgpApplicationPeer;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.ModuleKey;
@Test
public void testApply() {
- final Neighbor neighbor = neighborProvider.apply(new BGPAppPeerInstanceConfiguration(new InstanceConfigurationIdentifier("instanceName"), "app-rib", new Ipv4Address("1.2.3.4")));
+ final Neighbor neighbor = neighborProvider.apply(new BGPAppPeerInstanceConfiguration(new InstanceConfigurationIdentifier("instanceName"), "app-rib", new BgpId("1.2.3.4")));
final Neighbor expectedNeighbor = new NeighborBuilder()
.setNeighborAddress(new IpAddress(new Ipv4Address("1.2.3.4")))
.setKey(new NeighborKey(new IpAddress(new Ipv4Address("1.2.3.4"))))
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.NeighborsBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.PeerGroupsBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkstateAddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkstateSubsequentAddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev160614.LINKSTATE;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.bgp.rib.impl.rev160330.RibImpl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.ModuleKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@Test
public void testApply() {
final Bgp bgp = this.globalProvider.apply(new BGPRibInstanceConfiguration(new InstanceConfigurationIdentifier("instanceName"), new AsNumber(1L),
- new Ipv4Address("1.2.3.4"), null,
+ new BgpId("1.2.3.4"), null,
Lists.<BgpTableType>newArrayList(new BgpTableTypeImpl(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class)), Collections.emptyMap()));
final BgpBuilder bgpBuilder = new BgpBuilder();
bgpBuilder.setNeighbors(new NeighborsBuilder().build());
final Global global = new GlobalBuilder()
.setAfiSafis(
new AfiSafisBuilder().setAfiSafi(Collections.singletonList(new AfiSafiBuilder().setAfiSafiName(LINKSTATE.class).build())).build())
- .setConfig(new ConfigBuilder().setRouterId(new Ipv4Address("1.2.3.4")).setAs(new AsNumber(1L)).build())
+ .setConfig(new ConfigBuilder().setRouterId(new BgpId("1.2.3.4")).setAs(new AsNumber(1L)).build())
.build();
bgpBuilder.setGlobal(global);
assertEquals(bgpBuilder.build(), bgp);
import com.google.common.base.Preconditions;
import org.opendaylight.protocol.bgp.openconfig.spi.InstanceConfigurationIdentifier;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
/**
* POJO for holding BGP Application Peer module instance configuration
public final class BGPAppPeerInstanceConfiguration extends AbstractInstanceConfiguration {
private final String appRibId;
- private final Ipv4Address bgpId;
+ private final BgpId bgpId;
- public BGPAppPeerInstanceConfiguration(final InstanceConfigurationIdentifier instanceName, final String appRibId, final Ipv4Address bgpId) {
+ public BGPAppPeerInstanceConfiguration(final InstanceConfigurationIdentifier instanceName, final String appRibId, final BgpId bgpId) {
super(instanceName);
this.appRibId = Preconditions.checkNotNull(appRibId);
this.bgpId = Preconditions.checkNotNull(bgpId);
import org.opendaylight.protocol.bgp.mode.api.PathSelectionMode;
import org.opendaylight.protocol.bgp.openconfig.spi.InstanceConfigurationIdentifier;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.ClusterIdentifier;
/**
* POJO for holding BGP RIB module instance configuration
public final class BGPRibInstanceConfiguration extends AbstractInstanceConfiguration {
private final AsNumber localAs;
- private final Ipv4Address bgpRibId;
- private final Ipv4Address clusterId;
+ private final BgpId bgpRibId;
+ private final ClusterIdentifier clusterId;
private final List<BgpTableType> tableTypes;
private final Map<TablesKey, PathSelectionMode> pathSelectionModes;
- public BGPRibInstanceConfiguration(final InstanceConfigurationIdentifier identifier, final AsNumber localAs, final Ipv4Address bgpRibId,
- final Ipv4Address clusterId, final List<BgpTableType> tableTypes, final Map<TablesKey, PathSelectionMode> pathSelectionModes) {
+ public BGPRibInstanceConfiguration(final InstanceConfigurationIdentifier identifier, final AsNumber localAs, final BgpId bgpRibId,
+ final ClusterIdentifier clusterId, final List<BgpTableType> tableTypes, final Map<TablesKey, PathSelectionMode> pathSelectionModes) {
super(identifier);
this.pathSelectionModes = pathSelectionModes;
this.localAs = Preconditions.checkNotNull(localAs);
return localAs;
}
- public Ipv4Address getBgpRibId() {
+ public BgpId getBgpRibId() {
return bgpRibId;
}
- public Optional<Ipv4Address> getClusterId() {
+ public Optional<ClusterIdentifier> getClusterId() {
return Optional.fromNullable(clusterId);
}
package org.opendaylight.protocol.bgp.openconfig.spi.pojo;
-import static org.junit.Assert.assertEquals;
-
import org.junit.Test;
import org.opendaylight.protocol.bgp.openconfig.spi.InstanceConfigurationIdentifier;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
+
+import static org.junit.Assert.assertEquals;
public class BGPAppPeerInstanceConfigurationTest {
private static final InstanceConfigurationIdentifier INSTANCE_NAME = new InstanceConfigurationIdentifier("instanceName");
private static final String RIB_ID = "ribId";
- private static final Ipv4Address BGP_ID = new Ipv4Address("127.0.0.1");
+ private static final BgpId BGP_ID = new BgpId("127.0.0.1");
private final BGPAppPeerInstanceConfiguration config = new BGPAppPeerInstanceConfiguration(INSTANCE_NAME, RIB_ID, BGP_ID);
import org.junit.Test;
import org.opendaylight.protocol.bgp.openconfig.spi.InstanceConfigurationIdentifier;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
-
-;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.ClusterIdentifier;
public class BGPRibInstanceConfigurationTest {
private static final InstanceConfigurationIdentifier INSTANCE_NAME = new InstanceConfigurationIdentifier("instanceName");
- private static final Ipv4Address BGP_ID = new Ipv4Address("127.0.0.1");
- private static final Ipv4Address CLUSTER_ID = new Ipv4Address("127.0.0.2");
+ private static final BgpId BGP_ID = new BgpId("127.0.0.1");
+ private static final ClusterIdentifier CLUSTER_ID = new ClusterIdentifier("127.0.0.2");
private static final AsNumber AS_NUMBER = new AsNumber(72L);
private final BGPRibInstanceConfiguration config = new BGPRibInstanceConfiguration(INSTANCE_NAME, AS_NUMBER, BGP_ID, CLUSTER_ID,
}
final InstanceConfigurationIdentifier identifier = new InstanceConfigurationIdentifier(getIdentifier().getInstanceName());
this.bgpAppPeerInstanceConfiguration = new BGPAppPeerInstanceConfiguration(identifier, getApplicationRibId().getValue(),
- Rev130715Util.getIpv4Address(getBgpPeerId()));
+ getBgpPeerId());
}
@Override
import org.opendaylight.protocol.util.Ipv6Util;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.BgpParameters;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.BgpParametersBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.OptionalCapabilities;
this.neighborProvider = null;
}
final InstanceConfigurationIdentifier identifier = new InstanceConfigurationIdentifier(getIdentifier().getInstanceName());
- this.bgpPeerInstanceConfiguration = new BGPPeerInstanceConfiguration(identifier, Rev130715Util.getIpvAddress(getNormalizedHost()),
- Rev130715Util.getPort(getPort().getValue()), getHoldtimer(), getPeerRole(), getInitiateConnection(),
- getAdvertizedTableDependency(), Rev130715Util.getASNumber(getAsOrDefault(getRibDependency()).getValue()),
+ this.bgpPeerInstanceConfiguration = new BGPPeerInstanceConfiguration(identifier, getNormalizedHost(),
+ getPort(), getHoldtimer(), getPeerRole(), getInitiateConnection(),
+ getAdvertizedTableDependency(), getAsOrDefault(getRibDependency()),
getOptionalPassword(getPassword()), getAddPathDependency());
}
import org.opendaylight.protocol.bgp.openconfig.spi.pojo.BGPRibInstanceConfiguration;
import org.opendaylight.protocol.bgp.rib.impl.RIBImpl;
import org.opendaylight.protocol.bgp.rib.impl.spi.BGPBestPathSelection;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
@Override
public java.lang.AutoCloseable createInstance() {
- final AsNumber asNumber = new AsNumber(getLocalAs());
final Map<TablesKey, PathSelectionMode> pathSelectionStrategies = mapBestPathSelectionStrategyByFamily(getRibPathSelectionModeDependency());
- final RIBImpl rib = new RIBImpl(getRibId(), asNumber, getBgpRibId(), getClusterId(), getExtensionsDependency(),
- getBgpDispatcherDependency(), getCodecTreeFactoryDependency(),
- getDataProviderDependency(), getDomDataProviderDependency(), getLocalTableDependency(), pathSelectionStrategies, classLoadingStrategy(),
+ final RIBImpl rib = new RIBImpl(getRibId(), getLocalAs(), getBgpRibId(), getClusterId(), getExtensionsDependency(),
+ getBgpDispatcherDependency(), getCodecTreeFactoryDependency(), getDataProviderDependency(), getDomDataProviderDependency(), getLocalTableDependency(), pathSelectionStrategies, classLoadingStrategy(),
new RIBImplModuleTracker(getGlobalWriter()), getOpenconfigProviderDependency());
registerSchemaContextListener(rib);
return rib;
this.globalWriter = globalWriter;
final InstanceConfigurationIdentifier identifier = new InstanceConfigurationIdentifier(getIdentifier().getInstanceName());
final List<BgpTableType> tableDependency = getLocalTableDependency();
- final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber as = Rev130715Util.getASNumber(getLocalAs());
- final Ipv4Address bgpRibId = Rev130715Util.getIpv4Address(getBgpRibId());
- final Ipv4Address clusterId = Rev130715Util.getIpv4Address(getClusterId());
- this.bgpRibConfig = new BGPRibInstanceConfiguration(identifier, as, bgpRibId, clusterId, tableDependency,
+ this.bgpRibConfig = new BGPRibInstanceConfiguration(identifier, getLocalAs(), getBgpRibId(), getClusterId(), tableDependency,
mapBestPathSelectionStrategyByFamily(getRibPathSelectionModeDependency()));
}
+++ /dev/null
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.controller.config.yang.bgp.rib.impl;
-
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-
-public final class Rev130715Util {
- private Rev130715Util() {
- throw new UnsupportedOperationException();
- }
-
- public static Ipv4Address getIpv4Address(final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address ipv4) {
- if(ipv4 == null) {
- return null;
- }
- return new Ipv4Address(ipv4.getValue());
- }
-
- public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber getASNumber(final Long localAs) {
- return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber(localAs);
- }
-
- public static PortNumber getPort(final Integer port) {
- return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber(port);
- }
-
- public static IpAddress getIpvAddress(final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress hostWithoutValue) {
- if(hostWithoutValue.getIpv4Address() != null) {
- return new IpAddress(new Ipv4Address(hostWithoutValue.getIpv4Address().getValue()));
- }
- return new IpAddress(new Ipv6Address(hostWithoutValue.getIpv6Address().getValue()));
- }
-}
import org.opendaylight.protocol.bgp.rib.impl.BGPSessionImpl.State;
import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionPreferences;
import org.opendaylight.protocol.util.StatisticsUtil;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Timestamp;
if (localPreferences.isPresent()) {
final BGPSessionPreferences localPref = localPreferences.get();
pref.setBgpId(new BgpId(localPref.getBgpId().getValue()));
- pref.setAs(localPref.getMyAs().getValue());
+ pref.setAs(localPref.getMyAs());
pref.setHoldtimer(localPref.getHoldTime());
if (localPref.getParams() != null) {
for (final BgpParameters param : localPref.getParams()) {
final InetSocketAddress isa = (InetSocketAddress) channel.remoteAddress();
pref.setHost(IpAddressBuilder.getDefaultInstance(isa.getAddress().getHostAddress()));
pref.setPort(new PortNumber(isa.getPort()));
- pref.setBgpId(new BgpId(remoteOpen.getBgpIdentifier().getValue()));
- pref.setAs(remoteOpen.getMyAsNumber().longValue());
+ pref.setBgpId(new BgpId(remoteOpen.getBgpIdentifier()));
+ pref.setAs(new AsNumber(remoteOpen.getMyAsNumber().longValue()));
pref.setHoldtimer(remoteOpen.getHoldTimer());
final List<AdvertizedTableTypes> tt = tableTypes.stream().map(BGPSessionStats::addTableType).collect(Collectors.toList());
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.Tables;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.tables.Routes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.ClusterIdentifier;
import org.opendaylight.yangtools.binding.data.codec.api.BindingCodecTreeFactory;
import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
private final BGPDispatcher dispatcher;
private final DOMTransactionChain domChain;
private final AsNumber localAs;
- private final Ipv4Address bgpIdentifier;
+ private final BgpId bgpIdentifier;
private final Set<BgpTableType> localTables;
private final Set<TablesKey> localTablesKeys;
private final DataBroker dataBroker;
private final Map<TablesKey, PathSelectionMode> bestPathSelectionStrategies;
private final ImportPolicyPeerTracker importPolicyPeerTracker;
- public RIBImpl(final RibId ribId, final AsNumber localAs, final Ipv4Address localBgpId, final Ipv4Address clusterId, final RIBExtensionConsumerContext extensions,
+ public RIBImpl(final RibId ribId, final AsNumber localAs, final BgpId localBgpId, final ClusterIdentifier clusterId, final RIBExtensionConsumerContext extensions,
final BGPDispatcher dispatcher, final BindingCodecTreeFactory codecFactory,
final DataBroker dps, final DOMDataBroker domDataBroker, final List<BgpTableType> localTables,
@Nonnull final Map<TablesKey, PathSelectionMode> bestPathSelectionStrategies, final GeneratedClassLoadingStrategy classStrategy,
}
}
- public RIBImpl(final RibId ribId, final AsNumber localAs, final Ipv4Address localBgpId, final Ipv4Address clusterId, final RIBExtensionConsumerContext extensions,
+ public RIBImpl(final RibId ribId, final AsNumber localAs, final BgpId localBgpId, final ClusterIdentifier clusterId, final RIBExtensionConsumerContext extensions,
final BGPDispatcher dispatcher, final BindingCodecTreeFactory codecFactory,
final DataBroker dps, final DOMDataBroker domDataBroker, final List<BgpTableType> localTables,
final Map<TablesKey, PathSelectionMode> bestPathSelectionstrategies, final GeneratedClassLoadingStrategy classStrategy) {
}
@Override
- public Ipv4Address getBgpIdentifier() {
+ public BgpId getBgpIdentifier() {
return this.bgpIdentifier;
}
}
// https://tools.ietf.org/html/rfc6286#section-2.2
- if (openObj.getBgpIdentifier() != null && openObj.getBgpIdentifier().equals(localPref.getBgpId())) {
+ if (openObj.getBgpIdentifier() != null && openObj.getBgpIdentifier().getValue().equals(localPref.getBgpId().getValue())) {
LOG.warn("Remote and local BGP Identifiers are the same: {}", openObj.getBgpIdentifier());
throw new BGPDocumentedException("Remote and local BGP Identifiers are the same.", BGPError.BAD_BGP_ID);
}
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.BgpParameters;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
/**
* DTO for BGP Session preferences, that contains BGP Open message.
private final int hold;
- private final Ipv4Address bgpId;
+ private final BgpId bgpId;
private final List<BgpParameters> params;
* @param remoteAs expected remote As Number
* @param params list of advertised parameters
*/
- public BGPSessionPreferences(final AsNumber as, final int hold, final Ipv4Address bgpId, final AsNumber remoteAs,
+ public BGPSessionPreferences(final AsNumber as, final int hold, final BgpId bgpId, final AsNumber remoteAs,
final List<BgpParameters> params) {
this.as = as;
this.hold = hold;
*
* @return BGP identifier
*/
- public Ipv4Address getBgpId() {
+ public BgpId getBgpId() {
return this.bgpId;
}
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
/**
public interface RIB extends RibReference {
AsNumber getLocalAs();
- Ipv4Address getBgpIdentifier();
+ BgpId getBgpIdentifier();
/**
* Return the set of table identifiers which are accepted and advertised
import bgp-rib { prefix rib; revision-date 2013-09-25; }
import bgp-types { prefix bgp-t; revision-date 2013-09-19; }
import bgp-multiprotocol { prefix bgp-mp; revision-date 2013-09-19; }
- import config { prefix config; revision-date 2013-04-05; }
import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
import opendaylight-md-sal-binding {prefix mdsb; revision-date 2013-10-28; }
import rfc2385 { prefix rfc2385; revision-date 2016-03-24; }
description
"Expected remote AS number. If not present, it is assumed
to be the same as our local AS number.";
- type uint32;
+ type inet:as-number;
}
leaf password {
leaf as {
description "Autonomous system number.";
- type uint32;
+ type inet:as-number;
default 0;
}
import bgp-types { prefix bgp-t; revision-date 2013-09-19; }
import bgp-rib { prefix rib; revision-date 2013-09-25; }
- import bgp-multiprotocol { prefix bgp-mp; revision-date 2013-09-19; }
- import config { prefix config; revision-date 2013-04-05; }
import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
- import ietf-yang-types { prefix yang; revision-date 2013-07-15; }
import opendaylight-md-sal-binding {prefix mdsb; revision-date 2013-10-28; }
- import rpc-context { prefix rpcx; revision-date 2013-06-17; }
organization "Brocade Communications Systems, Inc.";
contact "Kevin Wang <kwang@brocade.com>";
grouping bgp-rib-impl-identifiers {
leaf local-as {
description "Our local AS number. Needed by best selection path attribute.";
- type uint32;
+ type inet:as-number;
mandatory true;
}
import bgp-multiprotocol { prefix bgp-mp; revision-date 2013-09-19; }
import bgp-message { prefix bgp-msg; revision-date 2013-09-19; }
import ietf-yang-types { prefix yang; revision-date 2013-07-15; }
- import rpc-context { prefix rpcx; revision-date 2013-06-17; }
organization "Brocade Communications Systems, Inc.";
contact "Kevin Wang <kwang@brocade.com>";
import org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry;
import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext;
import org.opendaylight.protocol.bgp.rib.spi.SimpleRIBExtensionProviderContext;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.RibId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
private static final String TRANSACTION_NAME = "testTransaction";
protected static final RibId RIB_ID = new RibId("test");
- protected static final Ipv4Address BGP_ID = new Ipv4Address("192.168.1.1");
- protected static final Ipv4Address CLUSTER_ID = new Ipv4Address("192.168.1.2");
+ protected static final BgpId BGP_ID = new BgpId("192.168.1.1");
+ protected static final ClusterIdentifier CLUSTER_ID = new ClusterIdentifier("192.168.1.2");
+ private static final AsNumber AS_NUMBER = new AsNumber(5000L);
private static final String SESSION_RS_INSTANCE_NAME = "session-reconnect-strategy-factory";
private static final String TCP_RS_INSTANCE_NAME = "tcp-reconnect-strategy-factory";
private static final String RIB_EXTENSIONS_INSTANCE_NAME = "rib-extensions-impl";
return transaction.commit();
}
- protected CommitStatus createRIBImplModuleInstance(final RibId ribId, final Long localAs, final Ipv4Address bgpId, final Ipv4Address clusterId) throws Exception {
+ protected CommitStatus createRIBImplModuleInstance(final RibId ribId, final AsNumber localAs, final BgpId bgpId, final ClusterIdentifier clusterId) throws Exception {
final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
createRIBImplModuleInstance(transaction, ribId, localAs, bgpId, clusterId, createAsyncDataBrokerInstance(transaction));
return transaction.commit();
}
- private ObjectName createRIBImplModuleInstance(final ConfigTransactionJMXClient transaction, final RibId ribId, final Long localAs,
- final Ipv4Address bgpId, final Ipv4Address clusterId, final ObjectName dataBroker) throws Exception {
+ private ObjectName createRIBImplModuleInstance(final ConfigTransactionJMXClient transaction, final RibId ribId, final AsNumber localAs,
+ final BgpId bgpId, final ClusterIdentifier clusterId, final ObjectName dataBroker) throws Exception {
final ObjectName nameCreated = transaction.createModule(FACTORY_NAME, INSTANCE_NAME);
final RIBImplModuleMXBean mxBean = transaction.newMXBeanProxy(nameCreated, RIBImplModuleMXBean.class);
mxBean.setDataProvider(dataBroker);
}
protected ObjectName createRIBImplModuleInstance(final ConfigTransactionJMXClient transaction) throws Exception {
- return createRIBImplModuleInstance(transaction, RIB_ID, 5000L, BGP_ID, CLUSTER_ID,
+ return createRIBImplModuleInstance(transaction, RIB_ID, AS_NUMBER, BGP_ID, CLUSTER_ID,
createAsyncDataBrokerInstance(transaction));
}
public ObjectName createRIBImplModuleInstance(final ConfigTransactionJMXClient transaction, final ObjectName dataBroker)
throws Exception {
- return createRIBImplModuleInstance(transaction, RIB_ID, 5000L, BGP_ID, CLUSTER_ID, dataBroker);
+ return createRIBImplModuleInstance(transaction, RIB_ID, AS_NUMBER, BGP_ID, CLUSTER_ID, dataBroker);
}
public ObjectName createAsyncDataBrokerInstance(final ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException, InstanceNotFoundException {
import org.opendaylight.controller.config.api.ValidationException;
import org.opendaylight.controller.config.api.jmx.CommitStatus;
import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
public class RIBImplModuleTest extends AbstractRIBImplModuleTest {
private static final int EXP_INSTANCES = 7;
+ private static final AsNumber AS_NUMBER = new AsNumber(500L);
private static final String INSTANCE_NAME = "rib-impl";
private static final String FACTORY_NAME = RIBImplModuleFactory.NAME;
@Test
public void testValidationExceptionRibIdNotSet() throws Exception {
try {
- createRIBImplModuleInstance(null, 500L, BGP_ID, CLUSTER_ID);
+ createRIBImplModuleInstance(null, AS_NUMBER, BGP_ID, CLUSTER_ID);
fail();
} catch (final ValidationException e) {
assertTrue(e.getMessage().contains("RibId is not set."));
@Test
public void testValidationExceptionBgpIdNotSet() throws Exception {
try {
- createRIBImplModuleInstance(RIB_ID, 500L, null, CLUSTER_ID);
+ createRIBImplModuleInstance(RIB_ID, AS_NUMBER, null, CLUSTER_ID);
fail();
} catch (final ValidationException e) {
assertTrue(e.getMessage().contains("BgpRibId is not set."));
assertBeanCount(1, FACTORY_NAME);
final RIBImplModuleMXBean mxBean = transaction.newMXBeanProxy(transaction.lookupConfigBean(FACTORY_NAME, INSTANCE_NAME),
RIBImplModuleMXBean.class);
- mxBean.setLocalAs(100L);
+ mxBean.setLocalAs(new AsNumber(100L));
final CommitStatus status = transaction.commit();
assertBeanCount(1, FACTORY_NAME);
assertStatus(status, 0, 1, EXP_INSTANCES - 1);
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.bgp.rib.Rib;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.AddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.ClusterIdentifier;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.SubsequentAddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
public class AbstractRIBTestSetup {
private RIBImpl rib;
- private final Ipv4Address clusterId = new Ipv4Address("128.0.0.1");
- private final Ipv4Address ribId = new Ipv4Address("127.0.0.1");
+ private final ClusterIdentifier clusterId = new ClusterIdentifier("128.0.0.1");
+ private final BgpId ribId = new BgpId("127.0.0.1");
static final Class<? extends AddressFamily> AFI = Ipv4AddressFamily.class;
static final Class<? extends SubsequentAddressFamily> SAFI = UnicastSubsequentAddressFamily.class;
static final TablesKey KEY = new TablesKey(AFI, SAFI);
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.CParameters1;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.CParameters1Builder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities.MultiprotocolCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
import org.slf4j.LoggerFactory;
.build()).build());
capas.add(new OptionalCapabilitiesBuilder().setCParameters(BgpExtendedMessageUtil.EXTENDED_MESSAGE_CAPABILITY).build());
tlvs.add(new BgpParametersBuilder().setOptionalCapabilities(capas).build());
- return new BGPSessionPreferences(AS_NUMBER, (short) 4, new Ipv4Address(socketAddress.getAddress().getHostAddress()), AS_NUMBER, tlvs);
+ return new BGPSessionPreferences(AS_NUMBER, (short) 4, new BgpId(socketAddress.getAddress().getHostAddress()), AS_NUMBER, tlvs);
}
}
assertEquals(1, state.getKeepaliveCurrent().intValue());
assertEquals(BGPSessionImpl.State.UP.name(), state.getSessionState());
assertEquals(BGP_ID.getValue(), new String(state.getLocalPeerPreferences().getHost().getValue()));
- assertEquals(AS_NUMBER.getValue(), state.getLocalPeerPreferences().getAs());
+ assertEquals(AS_NUMBER.getValue(), state.getLocalPeerPreferences().getAs().getValue());
assertTrue(state.getLocalPeerPreferences().getBgpExtendedMessageCapability());
assertEquals(BGP_ID.getValue(), state.getLocalPeerPreferences().getBgpId().getValue());
assertEquals(1, state.getLocalPeerPreferences().getAdvertizedTableTypes().size());
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.CParameters1Builder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities.GracefulRestartCapabilityBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities.MultiprotocolCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
import org.opendaylight.yangtools.yang.binding.Notification;
tlvs.add(new BgpParametersBuilder().setOptionalCapabilities(capas).build());
- final BGPSessionPreferences prefs = new BGPSessionPreferences(new AsNumber(30L), (short) 3, new Ipv4Address("1.1.1.1"), new AsNumber(30L), tlvs);
+ final BGPSessionPreferences prefs = new BGPSessionPreferences(new AsNumber(30L), (short) 3, new BgpId("1.1.1.1"), new AsNumber(30L), tlvs);
final ChannelFuture f = mock(ChannelFuture.class);
doReturn(null).when(f).addListener(any(GenericFutureListener.class));
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.bgp.rib.rib.LocRib;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.Tables;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
import org.opendaylight.yangtools.binding.data.codec.api.BindingCodecTreeFactory;
public void testWithLinkstate() throws InterruptedException, ExecutionException {
final List<BgpTableType> tables = ImmutableList.of(
(BgpTableType) new BgpTableTypeImpl(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class));
- final RIBImpl rib = new RIBImpl(new RibId(TEST_RIB_ID), new AsNumber(72L), new Ipv4Address("127.0.0.1"), null, this.ext2, this.dispatcher,
+ final RIBImpl rib = new RIBImpl(new RibId(TEST_RIB_ID), new AsNumber(72L), new BgpId("127.0.0.1"), null, this.ext2, this.dispatcher,
this.codecFactory, getDataBroker(), getDomBroker(), tables,
Collections.singletonMap(new TablesKey(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class),
BasePathSelectionModeFactory.createBestPathSelectionStrategy()), GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy());
@Test
public void testWithoutLinkstate() throws InterruptedException, ExecutionException {
final List<BgpTableType> tables = ImmutableList.of((BgpTableType) new BgpTableTypeImpl(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class));
- final RIBImpl rib = new RIBImpl(new RibId(TEST_RIB_ID), new AsNumber(72L), new Ipv4Address("127.0.0.1"), null, this.ext1, this.dispatcher,
+ final RIBImpl rib = new RIBImpl(new RibId(TEST_RIB_ID), new AsNumber(72L), new BgpId("127.0.0.1"), null, this.ext1, this.dispatcher,
this.codecFactory, getDataBroker(), getDomBroker(), tables,
Collections.singletonMap(new TablesKey(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class),
BasePathSelectionModeFactory.createBestPathSelectionStrategy()), GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy());
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.OptionalCapabilitiesBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities.CParametersBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities.c.parameters.As4BytesCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
public class StrictBGPPeerRegistryTest {
@Before
public void setUp() throws Exception {
this.peerRegistry = new StrictBGPPeerRegistry();
- this.mockPreferences = new BGPSessionPreferences(LOCAL_AS, 1, new Ipv4Address("0.0.0.1"), LOCAL_AS, Collections.<BgpParameters> emptyList());
+ this.mockPreferences = new BGPSessionPreferences(LOCAL_AS, 1, new BgpId("0.0.0.1"), LOCAL_AS, Collections.<BgpParameters> emptyList());
}
private static BGPSessionListener getMockSession() {
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.BgpParameters;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
static void createPeer(final BGPDispatcher dispatcher, final Arguments arguments, final InetSocketAddress localAddress,
final BGPSessionListener sessionListener, final BgpParameters bgpParameters) {
final AsNumber as = arguments.getAs();
- final BGPSessionPreferences proposal = new BGPSessionPreferences(as, arguments.getHoldTimer(), new Ipv4Address(localAddress.getAddress().getHostAddress()),
+ final BGPSessionPreferences proposal = new BGPSessionPreferences(as, arguments.getHoldTimer(), new BgpId(localAddress.getAddress().getHostAddress()),
as, Collections.singletonList(bgpParameters));
final StrictBGPPeerRegistry strictBGPPeerRegistry = new StrictBGPPeerRegistry();
if (arguments.getInitiateConnection()) {