The BGPTableTypeRegistryConsumer is providing access to the map supported AFI/SAFI.
Remove BGPOpenConfigMappingService in a next step.
Change-Id: I837fe90446da983a4bad1f91fed871052ca67ef6
Signed-off-by: Milos Fabian <milfabia@cisco.com>
//map configuration to OpenConfig BGP
final Neighbor neighbor = OpenConfigMappingUtil.fromBgpPeer(getAddPathDependency(), getAdvertizedTableDependency(), getHoldtimer(),
getHost(), getInitiateConnection(), getPassword(), getPort(), getRetrytimer(), getRemoteAs(), getPeerRole(), getSimpleRoutingPolicy(),
- bgpDeployer.getMappingService());
+ bgpDeployer.getTableTypeRegistry());
//write to configuration DS
final KeyedInstanceIdentifier<Protocol, ProtocolKey> protocolIId = bgpDeployer.getInstanceIdentifier().child(Protocols.class)
.child(Protocol.class, new ProtocolKey(BGP.class, rib.getInstanceIdentifier().getKey().getId().getValue()));
//map configuration to OpenConfig BGP
final Global global = OpenConfigMappingUtil.fromRib(getBgpRibId(), getClusterId(), getRibId(),
new AsNumber(getLocalAs()), getLocalTableDependency(),
- mapBestPathSelectionStrategyByFamily(getRibPathSelectionModeDependency()), bgpDeployer.getMappingService());
+ mapBestPathSelectionStrategyByFamily(getRibPathSelectionModeDependency()), bgpDeployer.getTableTypeRegistry());
final InstanceIdentifier<Bgp> bgpIID = bgpDeployer.getInstanceIdentifier().child(Protocols.class)
.child(Protocol.class, new ProtocolKey(BGP.class, getRibId().getValue())).augmentation(Protocol1.class)
.child(Bgp.class);
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.rib.impl.ApplicationPeer;
import org.opendaylight.protocol.bgp.rib.impl.spi.BgpDeployer.WriteConfiguration;
import org.opendaylight.protocol.bgp.rib.impl.spi.RIB;
private BgpAppPeerSingletonService bgpAppPeerSingletonService;
@Override
- public void start(final RIB rib, final Neighbor neighbor, final BGPOpenConfigMappingService mappingService, final WriteConfiguration configurationWriter) {
+ public void start(final RIB rib, final Neighbor neighbor, final BGPTableTypeRegistryConsumer tableTypeRegistry, final WriteConfiguration configurationWriter) {
this.currentConfiguration = neighbor;
this.bgpAppPeerSingletonService = new BgpAppPeerSingletonService(rib, createAppRibId(neighbor), neighbor.getNeighborAddress().getIpv4Address(),
configurationWriter);
}
@Override
- public void restart(final RIB rib, final BGPOpenConfigMappingService mappingService) {
+ public void restart(final RIB rib, final BGPTableTypeRegistryConsumer tableTypeRegistry) {
Preconditions.checkState(this.currentConfiguration != null);
- start(rib, this.currentConfiguration, mappingService, null);
+ start(rib, this.currentConfiguration, tableTypeRegistry, null);
}
@Override
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.rib.impl.spi.BgpDeployer;
import org.opendaylight.protocol.bgp.rib.impl.spi.InstanceType;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
private final InstanceIdentifier<NetworkInstance> networkInstanceIId;
private final BlueprintContainer container;
private final BundleContext bundleContext;
- private final BGPOpenConfigMappingService mappingService;
+ private final BGPTableTypeRegistryConsumer tableTypeRegistry;
private final ListenerRegistration<BgpDeployerImpl> registration;
@GuardedBy("this")
private final Map<InstanceIdentifier<Bgp>, RibImpl> ribs = new HashMap<>();
private boolean closed;
public BgpDeployerImpl(final String networkInstanceName, final BlueprintContainer container, final BundleContext bundleContext, final DataBroker dataBroker,
- final BGPOpenConfigMappingService mappingService) {
+ final BGPTableTypeRegistryConsumer mappingService) {
this.dataBroker = Preconditions.checkNotNull(dataBroker);
this.container = Preconditions.checkNotNull(container);
this.bundleContext = Preconditions.checkNotNull(bundleContext);
- this.mappingService = Preconditions.checkNotNull(mappingService);
+ this.tableTypeRegistry = Preconditions.checkNotNull(mappingService);
this.networkInstanceIId = InstanceIdentifier.create(NetworkInstances.class)
.child(NetworkInstance.class, new NetworkInstanceKey(networkInstanceName));
Futures.addCallback(initializeNetworkInstance(dataBroker, this.networkInstanceIId), new FutureCallback<Void>() {
final List<PeerBean> closedPeers = closeAllBindedPeers(rootIdentifier);
ribImpl.close();
initiateRibInstance(rootIdentifier, global, ribImpl, configurationWriter);
- closedPeers.forEach(peer -> peer.restart(ribImpl, this.mappingService));
+ closedPeers.forEach(peer -> peer.restart(ribImpl, this.tableTypeRegistry));
LOG.debug("RIB instance created: {}", ribImpl);
}
private void initiateRibInstance(final InstanceIdentifier<Bgp> rootIdentifier, final Global global,
final RibImpl ribImpl, final WriteConfiguration configurationWriter) {
final String ribInstanceName = getRibInstanceName(rootIdentifier);
- ribImpl.start(global, ribInstanceName, this.mappingService, configurationWriter);
+ ribImpl.start(global, ribInstanceName, this.tableTypeRegistry, configurationWriter);
registerRibInstance(ribImpl, ribInstanceName);
}
final String peerInstanceName = getNeighborInstanceName(neighborIdentifier);
final RibImpl rib = this.ribs.get(rootIdentifier);
if (rib != null) {
- bgpPeer.start(rib, neighbor, this.mappingService, configurationWriter);
+ bgpPeer.start(rib, neighbor, this.tableTypeRegistry, configurationWriter);
if (bgpPeer instanceof BgpPeer) {
registerPeerInstance((BgpPeer) bgpPeer, peerInstanceName);
}
}
@Override
- public BGPOpenConfigMappingService getMappingService() {
- return this.mappingService;
+ public BGPTableTypeRegistryConsumer getTableTypeRegistry() {
+ return this.tableTypeRegistry;
}
@Override
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.parser.BgpExtendedMessageUtil;
import org.opendaylight.protocol.bgp.parser.spi.MultiprotocolCapabilitiesUtil;
import org.opendaylight.protocol.bgp.rib.impl.BGPPeer;
}
@Override
- public void start(final RIB rib, final Neighbor neighbor, final BGPOpenConfigMappingService mappingService,
+ public void start(final RIB rib, final Neighbor neighbor, final BGPTableTypeRegistryConsumer tableTypeRegistry,
final WriteConfiguration configurationWriter) {
Preconditions.checkState(this.bgpPeerSingletonService == null, "Previous peer instance {} was not closed.");
- this.bgpPeerSingletonService = new BgpPeerSingletonService(rib, neighbor, mappingService, configurationWriter);
+ this.bgpPeerSingletonService = new BgpPeerSingletonService(rib, neighbor, tableTypeRegistry, configurationWriter);
this.currentConfiguration = neighbor;
}
@Override
- public void restart(final RIB rib, final BGPOpenConfigMappingService mappingService) {
+ public void restart(final RIB rib, final BGPTableTypeRegistryConsumer tableTypeRegistry) {
Preconditions.checkState(this.currentConfiguration != null);
- start(rib, this.currentConfiguration, mappingService, null);
+ start(rib, this.currentConfiguration, tableTypeRegistry, null);
}
@Override
}
private static List<BgpParameters> getBgpParameters(final Neighbor neighbor, final RIB rib,
- final BGPOpenConfigMappingService mappingService) {
+ final BGPTableTypeRegistryConsumer tableTypeRegistry) {
final List<BgpParameters> tlvs = new ArrayList<>();
final List<OptionalCapabilities> caps = new ArrayList<>();
caps.add(new OptionalCapabilitiesBuilder().setCParameters(new CParametersBuilder().setAs4BytesCapability(
caps.add(new OptionalCapabilitiesBuilder().setCParameters(MultiprotocolCapabilitiesUtil.RR_CAPABILITY).build());
final List<AfiSafi> afiSafi = OpenConfigMappingUtil.getAfiSafiWithDefault(neighbor.getAfiSafis(), false);
- final List<AddressFamilies> addPathCapability = OpenConfigMappingUtil.toAddPathCapability(afiSafi, mappingService);
+ final List<AddressFamilies> addPathCapability = OpenConfigMappingUtil.toAddPathCapability(afiSafi, tableTypeRegistry);
if (!addPathCapability.isEmpty()) {
caps.add(new OptionalCapabilitiesBuilder().setCParameters(new CParametersBuilder().addAugmentation(CParameters1.class,
new CParameters1Builder().setAddPathCapability(
new AddPathCapabilityBuilder().setAddressFamilies(addPathCapability).build()).build()).build()).build());
}
- final List<BgpTableType> tableTypes = mappingService.toTableTypes(afiSafi);
+ final List<BgpTableType> tableTypes = OpenConfigMappingUtil.toTableTypes(afiSafi, tableTypeRegistry);
for (final BgpTableType tableType : tableTypes) {
if (!rib.getLocalTables().contains(tableType)) {
LOG.info("RIB instance does not list {} in its local tables. Incoming data will be dropped.", tableType);
private final BGPSessionPreferences prefs;
private Future<Void> connection;
- private BgpPeerSingletonService(final RIB rib, final Neighbor neighbor, final BGPOpenConfigMappingService mappingService,
+ private BgpPeerSingletonService(final RIB rib, final Neighbor neighbor, final BGPTableTypeRegistryConsumer tableTypeRegistry,
final WriteConfiguration configurationWriter) {
this.neighborAddress = neighbor.getNeighborAddress();
this.bgpPeer = new BGPPeer(Ipv4Util.toStringIP(this.neighborAddress), rib,
OpenConfigMappingUtil.toPeerRole(neighbor), getSimpleRoutingPolicy(neighbor), BgpPeer.this.rpcRegistry);
- final List<BgpParameters> bgpParameters = getBgpParameters(neighbor, rib, mappingService);
+ final List<BgpParameters> bgpParameters = getBgpParameters(neighbor, rib, tableTypeRegistry);
final KeyMapping keyMapping = OpenConfigMappingUtil.getNeighborKey(neighbor);
this.prefs = new BGPSessionPreferences(rib.getLocalAs(), getHoldTimer(neighbor), rib.getBgpIdentifier(), getPeerAs(neighbor, rib),
bgpParameters, getPassword(keyMapping));
import java.util.Map;
import java.util.Optional;
import java.util.function.BiFunction;
+import java.util.stream.Collectors;
import org.opendaylight.protocol.bgp.mode.api.PathSelectionMode;
import org.opendaylight.protocol.bgp.mode.impl.add.all.paths.AllPathSelection;
import org.opendaylight.protocol.bgp.mode.impl.add.n.paths.AddPathBestNPathSelection;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
import org.opendaylight.protocol.bgp.rib.impl.spi.RIB;
import org.opendaylight.protocol.concepts.KeyMapping;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.GlobalBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Neighbors;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.AfiSafiType;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.CommunityType;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV4UNICAST;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.PeerType;
return timers != null ? timers.getConfig() : null;
}
- public static Map<BgpTableType, PathSelectionMode> toPathSelectionMode(final List<AfiSafi> afiSafis, final BGPOpenConfigMappingService mappingService) {
+ public static Map<BgpTableType, PathSelectionMode> toPathSelectionMode(final List<AfiSafi> afiSafis, final BGPTableTypeRegistryConsumer tableTypeRegistry) {
final Map<BgpTableType, PathSelectionMode> pathSelectionModes = new HashMap<>();
for (final AfiSafi afiSafi : afiSafis) {
final BgpNeighborAddPathsConfig afiSafi2 = afiSafi.getAugmentation(AfiSafi2.class);
if (afiSafi2 != null) {
- final Optional<BgpTableType> bgpTableType = mappingService.toBgpTableType(afiSafi.getAfiSafiName());
+ final Optional<BgpTableType> bgpTableType = tableTypeRegistry.getTableType(afiSafi.getAfiSafiName());
if (bgpTableType.isPresent()) {
final Short sendMax = afiSafi2.getSendMax();
final PathSelectionMode selectionMode;
return false;
}
- public static List<AddressFamilies> toAddPathCapability(final List<AfiSafi> afiSafis, final BGPOpenConfigMappingService mappingService) {
+ public static List<AddressFamilies> toAddPathCapability(final List<AfiSafi> afiSafis, final BGPTableTypeRegistryConsumer tableTypeRegistry) {
final List<AddressFamilies> addPathCapability = new ArrayList<>();
for (final AfiSafi afiSafi : afiSafis) {
final BgpNeighborAddPathsConfig afiSafi1 = afiSafi.getAugmentation(AfiSafi1.class);
- final Optional<BgpTableType> bgpTableType = mappingService.toBgpTableType(afiSafi.getAfiSafiName());
+ final Optional<BgpTableType> bgpTableType = tableTypeRegistry.getTableType(afiSafi.getAfiSafiName());
if (afiSafi1 != null && bgpTableType.isPresent()) {
final AddressFamiliesBuilder builder = new AddressFamiliesBuilder(bgpTableType.get());
builder.setSendReceive(toSendReceiveMode(afiSafi1));
public static Global fromRib(final BgpId bgpId, final ClusterIdentifier clusterIdentifier, final RibId ribId,
final AsNumber localAs, final List<BgpTableType> localTables,
- final Map<TablesKey, PathSelectionMode> pathSelectionStrategies, final BGPOpenConfigMappingService mappingService) {
- return toGlobalConfiguration(bgpId, clusterIdentifier, localAs, localTables, pathSelectionStrategies, mappingService);
+ final Map<TablesKey, PathSelectionMode> pathSelectionStrategies, final BGPTableTypeRegistryConsumer bgpTableTypeRegistryConsumer) {
+ return toGlobalConfiguration(bgpId, clusterIdentifier, localAs, localTables, pathSelectionStrategies, bgpTableTypeRegistryConsumer);
}
private static Global toGlobalConfiguration(final BgpId bgpId, final ClusterIdentifier clusterIdentifier,
final AsNumber localAs, final List<BgpTableType> localTables,
- final Map<TablesKey, PathSelectionMode> pathSelectionStrategies, final BGPOpenConfigMappingService mappingService) {
+ final Map<TablesKey, PathSelectionMode> pathSelectionStrategies, final BGPTableTypeRegistryConsumer bgpTableTypeRegistryConsumer) {
final ConfigBuilder configBuilder = new ConfigBuilder();
configBuilder.setAs(localAs);
configBuilder.setRouterId(bgpId);
new GlobalConfigAugmentationBuilder().setRouteReflectorClusterId(new RrClusterIdType(clusterIdentifier)).build());
}
return new GlobalBuilder().setAfiSafis(new AfiSafisBuilder().setAfiSafi(toAfiSafis(localTables,
- (afiSafi, tableType) -> toGlobalAfiSafiAddPath(afiSafi, tableType, pathSelectionStrategies), mappingService)).build())
+ (afiSafi, tableType) -> toGlobalAfiSafiAddPath(afiSafi, tableType, pathSelectionStrategies), bgpTableTypeRegistryConsumer)).build())
.setConfig(configBuilder.build()).build();
}
public static Neighbor fromBgpPeer(final List<AddressFamilies> addPathCapabilities,
final List<BgpTableType> advertisedTables, final Integer holdTimer, final IpAddress ipAddress,
final Boolean isActive, final Rfc2385Key password, final PortNumber portNumber, final Integer retryTimer,
- final AsNumber remoteAs, final PeerRole peerRole, final SimpleRoutingPolicy simpleRoutingPolicy, final BGPOpenConfigMappingService mappingService) {
+ final AsNumber remoteAs, final PeerRole peerRole, final SimpleRoutingPolicy simpleRoutingPolicy, final BGPTableTypeRegistryConsumer bgpTableTypeRegistryConsumer) {
final NeighborBuilder neighborBuilder = new NeighborBuilder();
neighborBuilder.setNeighborAddress(ipAddress);
neighborBuilder.setKey(new NeighborKey(ipAddress));
neighborBuilder.setAfiSafis(new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.AfiSafisBuilder().setAfiSafi(toAfiSafis(advertisedTables,
- (afiSafi, tableType) -> toNeighborAfiSafiAddPath(afiSafi, tableType, addPathCapabilities), mappingService)).build());
+ (afiSafi, tableType) -> toNeighborAfiSafiAddPath(afiSafi, tableType, addPathCapabilities), bgpTableTypeRegistryConsumer)).build());
neighborBuilder.setTransport(new TransportBuilder().setConfig(
new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.transport.ConfigBuilder()
.setPassiveMode(!isActive)
}
static List<AfiSafi> toAfiSafis(final List<BgpTableType> advertizedTables, final BiFunction<AfiSafi, BgpTableType, AfiSafi> function,
- final BGPOpenConfigMappingService mappingService) {
+ final BGPTableTypeRegistryConsumer bgpTableTypeRegistryConsumer) {
final List<AfiSafi> afiSafis = new ArrayList<>(advertizedTables.size());
for (final BgpTableType tableType : advertizedTables) {
- final Optional<AfiSafi> afiSafiMaybe = mappingService.toAfiSafi(new BgpTableTypeImpl(tableType.getAfi(), tableType.getSafi()));
+ final Optional<AfiSafi> afiSafiMaybe = toAfiSafi(new BgpTableTypeImpl(tableType.getAfi(), tableType.getSafi()), bgpTableTypeRegistryConsumer);
if (afiSafiMaybe.isPresent()) {
final AfiSafi afiSafi = function.apply(afiSafiMaybe.get(), tableType);
afiSafis.add(afiSafi);
return builder.build();
}
+ public static Optional<AfiSafi> toAfiSafi(final BgpTableType tableType, final BGPTableTypeRegistryConsumer tableTypeRegistry) {
+ final Optional<Class<? extends AfiSafiType>> afiSafi = tableTypeRegistry.getAfiSafiType(tableType);
+ if (afiSafi.isPresent()) {
+ return Optional.of(new AfiSafiBuilder().setAfiSafiName(afiSafi.get()).build());
+ }
+ return Optional.empty();
+ }
+
+ public static List<BgpTableType> toTableTypes(final List<AfiSafi> afiSafis, final BGPTableTypeRegistryConsumer tableTypeRegistry) {
+ return afiSafis.stream()
+ .map(afiSafi -> tableTypeRegistry.getTableType(afiSafi.getAfiSafiName()))
+ .filter(Optional::isPresent)
+ .map(Optional::get)
+ .collect(Collectors.toList());
+ }
+
}
package org.opendaylight.protocol.bgp.rib.impl.config;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.rib.impl.spi.BgpDeployer.WriteConfiguration;
import org.opendaylight.protocol.bgp.rib.impl.spi.RIB;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
*/
public interface PeerBean extends AutoCloseable {
- void start(RIB rib, Neighbor neighbor, BGPOpenConfigMappingService mappingService, WriteConfiguration configurationWriter);
+ void start(RIB rib, Neighbor neighbor, BGPTableTypeRegistryConsumer tableTypeRegistry, WriteConfiguration configurationWriter);
- void restart(RIB rib, BGPOpenConfigMappingService mappingService);
+ void restart(RIB rib, BGPTableTypeRegistryConsumer tableTypeRegistry);
@Override
void close();
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
import org.opendaylight.protocol.bgp.mode.api.PathSelectionMode;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.rib.impl.RIBImpl;
import org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher;
import org.opendaylight.protocol.bgp.rib.impl.spi.BgpDeployer;
this.schemaService = schemaService;
}
- void start(final Global global, final String instanceName, final BGPOpenConfigMappingService mappingService,
+ void start(final Global global, final String instanceName, final BGPTableTypeRegistryConsumer tableTypeRegistry,
final BgpDeployer.WriteConfiguration configurationWriter) {
Preconditions.checkState(this.ribImpl == null, "Previous instance %s was not closed.", this);
- this.ribImpl = createRib(this.provider, global, instanceName, mappingService, configurationWriter);
+ this.ribImpl = createRib(this.provider, global, instanceName, tableTypeRegistry, configurationWriter);
this.schemaContextRegistration = this.schemaService.registerSchemaContextListener(this.ribImpl);
}
}
private RIBImpl createRib(final ClusterSingletonServiceProvider provider, final Global global, final String bgpInstanceName,
- final BGPOpenConfigMappingService mappingService, final BgpDeployer.WriteConfiguration configurationWriter) {
+ final BGPTableTypeRegistryConsumer tableTypeRegistry, final BgpDeployer.WriteConfiguration configurationWriter) {
this.afiSafi = getAfiSafiWithDefault(global.getAfiSafis(), true);
final Config globalConfig = global.getConfig();
this.asNumber = globalConfig.getAs();
this.routerId = globalConfig.getRouterId();
this.clusterId = OpenConfigMappingUtil.getClusterIdentifier(globalConfig);
- final Map<TablesKey, PathSelectionMode> pathSelectionModes = OpenConfigMappingUtil.toPathSelectionMode(this.afiSafi, mappingService).entrySet()
+ final Map<TablesKey, PathSelectionMode> pathSelectionModes = OpenConfigMappingUtil.toPathSelectionMode(this.afiSafi, tableTypeRegistry).entrySet()
.stream().collect(Collectors.toMap(entry -> new TablesKey(entry.getKey().getAfi(), entry.getKey().getSafi()), Map.Entry::getValue));
return new RIBImpl(provider, new RibId(bgpInstanceName), this.asNumber, new BgpId(this.routerId), this.clusterId,
- this.extensions, this.dispatcher, this.codecTreeFactory, this.domBroker, mappingService.toTableTypes(this.afiSafi), pathSelectionModes,
+ this.extensions, this.dispatcher, this.codecTreeFactory, this.domBroker, OpenConfigMappingUtil.toTableTypes(this.afiSafi, tableTypeRegistry), pathSelectionModes,
this.extensions.getClassLoadingStrategy(), configurationWriter);
}
package org.opendaylight.protocol.bgp.rib.impl.spi;
import com.google.common.util.concurrent.ListenableFuture;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
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.top.Bgp;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
*/
InstanceIdentifier<NetworkInstance> getInstanceIdentifier();
- BGPOpenConfigMappingService getMappingService();
+ BGPTableTypeRegistryConsumer getTableTypeRegistry();
<T extends DataObject> ListenableFuture<Void> writeConfiguration(T data, InstanceIdentifier<T> identifier);
<reference id="globalBgpExtensions" interface="org.opendaylight.protocol.bgp.rib.spi.RIBExtensionConsumerContext"/>
<reference id="codecTreeFactory" interface="org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory"/>
<reference id="domDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker" odl:type="pingpong"/>
- <reference id="bgpOpenConfigMappingService" interface="org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService"/>
+ <reference id="bgpTableTypeRegistry" interface="org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer"/>
<reference id="schemaService" interface="org.opendaylight.controller.sal.core.api.model.SchemaService"/>
<reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"/>
<argument ref="blueprintContainer"/>
<argument ref="blueprintBundleContext"/>
<argument ref="dataBroker"/>
- <argument ref="bgpOpenConfigMappingService"/>
+ <argument ref="bgpTableTypeRegistry"/>
</bean>
<service ref="bgpDeployer" interface="org.opendaylight.protocol.bgp.rib.impl.spi.BgpDeployer"/>
import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain;
import org.opendaylight.controller.sal.core.api.model.SchemaService;
import org.opendaylight.controller.sal.core.api.model.YangTextSourceProvider;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
import org.opendaylight.protocol.bgp.rib.impl.StrictBGPPeerRegistry;
import org.opendaylight.protocol.bgp.rib.impl.stats.rib.impl.BGPRenderStats;
import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext;
import org.opendaylight.protocol.bgp.rib.spi.SimpleRIBExtensionProviderContext;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafiBuilder;
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.Global;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV4UNICAST;
private BgpDeployer bgpDeployer;
@Mock
- private BGPOpenConfigMappingService bgpMappingService;
+ private BGPTableTypeRegistryConsumer tableTypeREgistry;
@Mock
private BGPPeerRuntimeMXBean mockedPeer;
doNothing().when(this.bgpDeployer).onNeighborModified(any(),any(),any());
doReturn(this.mockedFuture).when(this.bgpDeployer).writeConfiguration(any(), any());
doReturn(this.mockedFuture).when(this.bgpDeployer).removeConfiguration(any());
- doReturn(java.util.Optional.of(new AfiSafiBuilder().setAfiSafiName(IPV4UNICAST.class).build())).when(this.bgpMappingService).toAfiSafi(any());
- doReturn(this.bgpMappingService).when(this.bgpDeployer).getMappingService();
+ doReturn(java.util.Optional.of(IPV4UNICAST.class)).when(this.tableTypeREgistry).getAfiSafiType(any());
+ doReturn(this.tableTypeREgistry).when(this.bgpDeployer).getTableTypeRegistry();
doReturn(OPENCONFIG_IID).when(this.bgpDeployer).getInstanceIdentifier();
final DOMTransactionChain mockedChain = mock(DOMTransactionChain.class);
final DOMDataWriteTransaction mockedWTx = mock(DOMDataWriteTransaction.class);
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
import org.opendaylight.protocol.bgp.rib.impl.spi.AbstractImportPolicy;
import org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher;
@Mock
protected ClusterSingletonServiceRegistration singletonServiceRegistration;
@Mock
- protected BGPOpenConfigMappingService mappingService;
+ protected BGPTableTypeRegistryConsumer tableTypeRegistry;
@Mock
protected BgpDeployer.WriteConfiguration configurationWriter;
@Mock
.createReconnectingClient(any(InetSocketAddress.class), any(BGPPeerRegistry.class), anyInt(), any(Optional.class));
Mockito.doReturn(this.dispatcher).when(this.rib).getDispatcher();
- Mockito.doReturn(Collections.singletonList(new BgpTableTypeImpl(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class)))
- .when(this.mappingService).toTableTypes(any());
Mockito.doReturn(java.util.Optional.of(new BgpTableTypeImpl(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class)))
- .when(this.mappingService).toBgpTableType(any());
+ .when(this.tableTypeRegistry).getTableType(any());
Mockito.doReturn(Collections.singleton(new BgpTableTypeImpl(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class)))
.when(this.rib).getLocalTables();
Mockito.doNothing().when(this.configurationWriter).apply();
public void testAppPeer() throws Exception {
final Neighbor neighbor = new NeighborBuilder().setConfig(new ConfigBuilder().addAugmentation(Config2.class,
new Config2Builder().setPeerGroup(OpenConfigMappingUtil.APPLICATION_PEER_GROUP_NAME).build()).build()).setNeighborAddress(new IpAddress(new Ipv4Address("127.0.0.1"))).build();
- APP_PEER.start(this.rib, neighbor, this.mappingService, this.configurationWriter);
+ APP_PEER.start(this.rib, neighbor, this.tableTypeRegistry, this.configurationWriter);
Mockito.verify(this.rib).getYangRibId();
Mockito.verify(this.rib).getService();
Mockito.verify(this.rib).getRibIServiceGroupIdentifier();
Mockito.verify(this.rib).getLocalTablesKeys();
Mockito.verify(this.domTx).newWriteOnlyTransaction();
- APP_PEER.restart(this.rib, this.mappingService);
+ APP_PEER.restart(this.rib, this.tableTypeRegistry);
this.singletonService.instantiateServiceInstance();
Mockito.verify(this.rib, times(4)).getYangRibId();
Mockito.verify(this.rib, times(4)).getService();
import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
import org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher;
import org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry;
@Mock
private DataBroker dataBroker;
@Mock
- private BGPOpenConfigMappingService mappingService;
+ private BGPTableTypeRegistryConsumer tableTypeRegistry;
@Mock
private WriteTransaction wTx;
@Mock
final DOMDataBroker domDataBroker = mock(DOMDataBroker.class);
Mockito.doReturn(this.wTx).when(this.dataBroker).newWriteOnlyTransaction();
- Mockito.doReturn("mapping").when(this.mappingService).toString();
+ Mockito.doReturn("mapping").when(this.tableTypeRegistry).toString();
Mockito.doReturn(null).when(domDataBroker).createTransactionChain(any());
Mockito.doReturn(Collections.singletonMap(DOMDataTreeChangeService.class, mock(DOMDataBrokerExtension.class)))
.when(domDataBroker).getSupportedExtensions();
- Mockito.doReturn(Collections.singletonList(TABLE_TYPE)).when(this.mappingService).toTableTypes(any());
- Mockito.doReturn(Optional.of(TABLE_TYPE)).when(this.mappingService).toBgpTableType(any());
+ Mockito.doReturn(Optional.of(TABLE_TYPE)).when(this.tableTypeRegistry).getTableType(any());
Mockito.doNothing().when(this.registration).unregister();
Mockito.doReturn(this.registration).when(this.bundleContext).registerService(eq(InstanceType.RIB.getServices()), any()
, any(Dictionary.class));
@Test
public void testDeployerRib() throws Exception {
Mockito.doReturn(Global.class).when(this.dObject).getDataType();
- final BgpDeployerImpl deployer = new BgpDeployerImpl(NETWORK_INSTANCE_NAME, this.blueprintContainer, this.bundleContext, this.dataBroker, this.mappingService);
+ final BgpDeployerImpl deployer = new BgpDeployerImpl(NETWORK_INSTANCE_NAME, this.blueprintContainer, this.bundleContext, this.dataBroker, this.tableTypeRegistry);
final BgpDeployerImpl spyDeployer = spy(deployer);
configureGlobal(IPV4UNICAST.class);
Mockito.doReturn(WRITE).when(this.dObject).getModificationType();
verify(this.dataBroker).registerDataTreeChangeListener(Mockito.any(DataTreeIdentifier.class), Mockito.any(BgpDeployerImpl.class));
assertEquals(networkInstanceIId, spyDeployer.getInstanceIdentifier());
- assertEquals(this.mappingService, spyDeployer.getMappingService());
+ assertEquals(this.tableTypeRegistry, spyDeployer.getTableTypeRegistry());
spyDeployer.onDataTreeChanged(this.collection);
verifyPrivate(spyDeployer).invoke("onGlobalChanged", any(DataObjectModification.class), any(InstanceIdentifier.class));
@Test
public void testDeployerCreateNeighbor() throws Exception {
- final BgpDeployerImpl deployer = new BgpDeployerImpl(NETWORK_INSTANCE_NAME, this.blueprintContainer, this.bundleContext, this.dataBroker, this.mappingService);
+ final BgpDeployerImpl deployer = new BgpDeployerImpl(NETWORK_INSTANCE_NAME, this.blueprintContainer, this.bundleContext, this.dataBroker, this.tableTypeRegistry);
final BgpDeployerImpl spyDeployer = spy(deployer);
//First create Rib
verify(this.dataBroker).registerDataTreeChangeListener(Mockito.any(DataTreeIdentifier.class), Mockito.any(BgpDeployerImpl.class));
assertEquals(networkInstanceIId, spyDeployer.getInstanceIdentifier());
- assertEquals(this.mappingService, spyDeployer.getMappingService());
+ assertEquals(this.tableTypeRegistry, spyDeployer.getTableTypeRegistry());
spyDeployer.onDataTreeChanged(this.collection);
verify(spyDeployer, times(2)).onDataTreeChanged(any(Collection.class));
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyList;
import static org.mockito.Mockito.times;
import com.google.common.base.Optional;
final Neighbor neighbor = new NeighborBuilder().setAfiSafis(createAfiSafi()).setConfig(createConfig()).setNeighborAddress(NEIGHBOR_ADDRESS)
.setRouteReflector(createRR()).setTimers(createTimers()).setTransport(createTransport()).setAddPaths(createAddPath()).build();
- this.bgpPeer.start(this.rib, neighbor, this.mappingService, this.configurationWriter);
+ this.bgpPeer.start(this.rib, neighbor, this.tableTypeRegistry, this.configurationWriter);
Mockito.verify(this.render).getConfiguredPeerCounter();
Mockito.verify(this.rib).createPeerChain(any());
Mockito.verify(this.rib, times(2)).getLocalAs();
Mockito.verify(this.rib).getLocalTables();
- Mockito.verify(this.mappingService).toTableTypes(anyList());
Mockito.verify(this.rib).getRibIServiceGroupIdentifier();
Mockito.verify(this.rib).registerClusterSingletonService(any(ClusterSingletonService.class));
Mockito.verify(this.dispatcher).createReconnectingClient(any(InetSocketAddress.class), any(BGPPeerRegistry.class), anyInt(), any(Optional.class));
try {
- this.bgpPeer.start(this.rib, neighbor, this.mappingService, this.configurationWriter);
+ this.bgpPeer.start(this.rib, neighbor, this.tableTypeRegistry, this.configurationWriter);
fail("Expected Exception");
} catch (final IllegalStateException expected) {
assertEquals("Previous peer instance {} was not closed.", expected.getMessage());
}
this.bgpPeer.setServiceRegistration(this.serviceRegistration);
this.bgpPeer.close();
- this.bgpPeer.restart(this.rib, this.mappingService);
+ this.bgpPeer.restart(this.rib, this.tableTypeRegistry);
Mockito.verify(this.render, times(2)).getConfiguredPeerCounter();
Mockito.verify(this.rib, times(2)).createPeerChain(any());
Mockito.verify(this.rib, times(4)).getLocalAs();
Mockito.verify(this.rib, times(2)).getLocalTables();
- Mockito.verify(this.mappingService, times(2)).toTableTypes(anyList());
Mockito.verify(this.rib, times(2)).getRibIServiceGroupIdentifier();
Mockito.verify(this.rib, times(2)).registerClusterSingletonService(any(ClusterSingletonService.class));
this.singletonService.instantiateServiceInstance();
Mockito.verify(this.future).cancel(true);
final Neighbor emptyNeighbor = new NeighborBuilder().setNeighborAddress(NEIGHBOR_ADDRESS).build();
- this.bgpPeer.start(this.rib, emptyNeighbor, this.mappingService, this.configurationWriter);
+ this.bgpPeer.start(this.rib, emptyNeighbor, this.tableTypeRegistry, this.configurationWriter);
assertTrue(this.bgpPeer.containsEqualConfiguration(emptyNeighbor));
this.bgpPeer.close();
}
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.AFI_SAFI;
import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.AFI_SAFI_IPV4;
import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.MD5_PASSWORD;
import org.opendaylight.protocol.bgp.mode.api.PathSelectionMode;
import org.opendaylight.protocol.bgp.mode.impl.add.all.paths.AllPathSelection;
import org.opendaylight.protocol.bgp.mode.impl.add.n.paths.AddPathBestNPathSelection;
-import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService;
+import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
import org.opendaylight.protocol.bgp.rib.impl.spi.RIB;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafi;
}
@Mock
- private BGPOpenConfigMappingService mappingService;
+ private BGPTableTypeRegistryConsumer tableTypeRegistry;
@Mock
private RIB rib;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- Mockito.doReturn(Collections.singletonList(BGP_TABLE_TYPE_IPV4))
- .when(this.mappingService).toTableTypes(any());
Mockito.doReturn(java.util.Optional.of(BGP_TABLE_TYPE_IPV4))
- .when(this.mappingService).toBgpTableType(IPV4UNICAST.class);
+ .when(this.tableTypeRegistry).getTableType(IPV4UNICAST.class);
Mockito.doReturn(java.util.Optional.of(BGP_TABLE_TYPE_IPV6))
- .when(this.mappingService).toBgpTableType(IPV6UNICAST.class);
+ .when(this.tableTypeRegistry).getTableType(IPV6UNICAST.class);
Mockito.doReturn(java.util.Optional.of(new BgpTableTypeImpl(Ipv6AddressFamily.class, MplsLabeledVpnSubsequentAddressFamily.class)))
- .when(this.mappingService).toBgpTableType(IPV6LABELLEDUNICAST.class);
- Mockito.doReturn(java.util.Optional.of(new AfiSafiBuilder().setAfiSafiName(IPV4UNICAST.class).build()))
- .when(this.mappingService).toAfiSafi(BGP_TABLE_TYPE_IPV4);
- Mockito.doReturn(java.util.Optional.of(new AfiSafiBuilder().setAfiSafiName(IPV6UNICAST.class).build()))
- .when(this.mappingService).toAfiSafi(BGP_TABLE_TYPE_IPV6);
+ .when(this.tableTypeRegistry).getTableType(IPV6LABELLEDUNICAST.class);
+ Mockito.doReturn(java.util.Optional.of(IPV4UNICAST.class))
+ .when(this.tableTypeRegistry).getAfiSafiType(BGP_TABLE_TYPE_IPV4);
+ Mockito.doReturn(java.util.Optional.of(IPV6UNICAST.class))
+ .when(this.tableTypeRegistry).getAfiSafiType(BGP_TABLE_TYPE_IPV6);
Mockito.doReturn(AS).when(this.rib).getLocalAs();
}
@Test
public void testToAfiSafis() {
final List<AfiSafi> afiSafis = OpenConfigMappingUtil.toAfiSafis(Lists.newArrayList(BGP_TABLE_TYPE_IPV4), (afisafi, tableType) -> afisafi,
- this.mappingService);
+ this.tableTypeRegistry);
Assert.assertEquals(Collections.singletonList(AFISAFI_IPV4), afiSafis);
}
.addAugmentation(AfiSafi2.class, new AfiSafi2Builder().setSendMax(Shorts.checkedCast(N_PATHS)).build()).build());
families.add(new AfiSafiBuilder().setAfiSafiName(IPV6UNICAST.class)
.addAugmentation(AfiSafi2.class, new AfiSafi2Builder().setSendMax(Shorts.checkedCast(ALL_PATHS)).build()).build());
- final Map<BgpTableType, PathSelectionMode> result = OpenConfigMappingUtil.toPathSelectionMode(families, this.mappingService);
+ final Map<BgpTableType, PathSelectionMode> result = OpenConfigMappingUtil.toPathSelectionMode(families, this.tableTypeRegistry);
final Map<BgpTableType, PathSelectionMode> expected = new HashMap<>();
expected.put(new BgpTableTypeImpl(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class), ADD_PATH_BEST_N_PATH_SELECTION);
expected.put(new BgpTableTypeImpl(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class), ADD_PATH_BEST_ALL_PATH_SELECTION);
.addAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev160614.AfiSafi1.class,
new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev160614.AfiSafi1Builder()
.setReceive(false).build()).build());
- final List<AddressFamilies> result = OpenConfigMappingUtil.toAddPathCapability(families, this.mappingService);
+ final List<AddressFamilies> result = OpenConfigMappingUtil.toAddPathCapability(families, this.tableTypeRegistry);
assertEquals(FAMILIES, result);
}
bgpTableKeyPsm.put(new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class), ADD_PATH_BEST_N_PATH_SELECTION);
bgpTableKeyPsm.put(new TablesKey(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class), ADD_PATH_BEST_ALL_PATH_SELECTION);
- final Global result = OpenConfigMappingUtil.fromRib(BGP_ID, CLUSTER_IDENTIFIER, RIB_ID, AS, TABLE_TYPES, bgpTableKeyPsm, this.mappingService);
+ final Global result = OpenConfigMappingUtil.fromRib(BGP_ID, CLUSTER_IDENTIFIER, RIB_ID, AS, TABLE_TYPES, bgpTableKeyPsm, this.tableTypeRegistry);
final Global expected = new GlobalBuilder()
.setAfiSafis(new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.AfiSafisBuilder().setAfiSafi(AFISAFIS).build())
.setConfig(new org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base
@Test
public void fromBgpPeer() {
- final Neighbor result = OpenConfigMappingUtil.fromBgpPeer(FAMILIES, TABLE_TYPES, 30, IPADDRESS, true, null, PORT_NUMBER, 30, AS, PeerRole.Ibgp, null, this.mappingService);
+ final Neighbor result = OpenConfigMappingUtil.fromBgpPeer(FAMILIES, TABLE_TYPES, 30, IPADDRESS, true, null, PORT_NUMBER, 30, AS, PeerRole.Ibgp, null, this.tableTypeRegistry);
final List<AfiSafi> afisafis = new ArrayList<>();
afisafis.add(new AfiSafiBuilder().setAfiSafiName(IPV4UNICAST.class)
.addAugmentation(AfiSafi1.class, new AfiSafi1Builder().setReceive(true).setSendMax(Shorts.checkedCast(ALL_PATHS)).build()).build());
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyList;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
final RibImpl ribImpl = new RibImpl(this.clusterSingletonServiceProvider, this.extension, this.dispatcher,
this.bindingCodecTreeFactory, this.domDataBroker, this.schemaService);
ribImpl.setServiceRegistration(this.serviceRegistration);
- ribImpl.start(createGlobal(), "rib-test", this.mappingService, this.configurationWriter);
- verify(this.mappingService).toTableTypes(anyList());
+ ribImpl.start(createGlobal(), "rib-test", this.tableTypeRegistry, this.configurationWriter);
verify(this.extension).getClassLoadingStrategy();
verify(this.domDataBroker).getSupportedExtensions();
verify(this.clusterSingletonServiceProvider).registerClusterSingletonService(any());