import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.protocol.pcep.PCEPDispatcher;
+import org.opendaylight.protocol.pcep.PCEPSessionNegotiatorFactory;
/**
* Provides required dependencies for PCEPTopologyProviderProvider instantiation.
*/
@NonNullByDefault
interface PCEPTopologyProviderDependencies {
+ /**
+ * PCEP Session Negotiator Factory.
+ *
+ * @return Negotiator factory
+ */
+ PCEPSessionNegotiatorFactory getPCEPSessionNegotiatorFactory();
+
/**
* PCEP Dispatcher.
*
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
import org.opendaylight.protocol.pcep.PCEPDispatcher;
+import org.opendaylight.protocol.pcep.PCEPSessionNegotiatorFactory;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.topology.stats.rpc.rev190321.PcepTopologyStatsRpcService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.TopologyTypes1;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.topology.pcep.type.TopologyPcep;
// Services we are using
final @NonNull InstructionSchedulerFactory instructionSchedulerFactory;
final @NonNull ClusterSingletonServiceProvider singletonService;
+ private final @NonNull PCEPSessionNegotiatorFactory sessionNegotiatorFactory;
private final @NonNull RpcProviderService rpcProviderRegistry;
private final @NonNull PceServerProvider pceServerProvider;
private final @NonNull PCEPDispatcher pcepDispatcher;
private Registration statsReg;
public PCEPTopologyTracker(final DataBroker dataBroker, final ClusterSingletonServiceProvider singletonService,
- final RpcProviderService rpcProviderRegistry, final PCEPDispatcher pcepDispatcher,
- final InstructionSchedulerFactory instructionSchedulerFactory, final PceServerProvider pceServerProvider) {
+ final RpcProviderService rpcProviderRegistry, final PCEPSessionNegotiatorFactory sessionNegotiatorFactory,
+ final PCEPDispatcher pcepDispatcher, final InstructionSchedulerFactory instructionSchedulerFactory,
+ final PceServerProvider pceServerProvider) {
this.dataBroker = requireNonNull(dataBroker);
this.singletonService = requireNonNull(singletonService);
this.rpcProviderRegistry = requireNonNull(rpcProviderRegistry);
+ this.sessionNegotiatorFactory = requireNonNull(sessionNegotiatorFactory);
this.pcepDispatcher = requireNonNull(pcepDispatcher);
this.instructionSchedulerFactory = requireNonNull(instructionSchedulerFactory);
this.pceServerProvider = requireNonNull(pceServerProvider);
LOG.info("PCEP Topology tracker initialized");
}
+ @Override
+ public PCEPSessionNegotiatorFactory getPCEPSessionNegotiatorFactory() {
+ return sessionNegotiatorFactory;
+ }
+
@Override
public PCEPDispatcher getPCEPDispatcher() {
return pcepDispatcher;
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
<reference id="rpcProviderService" interface="org.opendaylight.mdsal.binding.api.RpcProviderService"/>
+ <reference id="sessionNegotiatorFactory" interface="org.opendaylight.protocol.pcep.PCEPSessionNegotiatorFactory"/>
<reference id="pcepDispatcher" interface="org.opendaylight.protocol.pcep.PCEPDispatcher"/>
<reference id="clusterSingletonServiceProvider"
interface="org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider"/>
<argument ref="dataBroker"/>
<argument ref="clusterSingletonServiceProvider"/>
<argument ref="rpcProviderService"/>
+ <argument ref="sessionNegotiatorFactory"/>
<argument ref="pcepDispatcher"/>
<argument ref="intructionFactory"/>
<argument ref="pceServerProvider"/>