2 * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.bgpcep.pcep.topology.provider.config;
10 import com.google.common.base.Optional;
11 import java.net.InetAddress;
12 import java.net.InetSocketAddress;
13 import javax.annotation.Nonnull;
14 import javax.annotation.Nullable;
15 import org.opendaylight.bgpcep.programming.spi.InstructionScheduler;
16 import org.opendaylight.controller.config.yang.pcep.topology.provider.PCEPTopologyProviderRuntimeRegistrator;
17 import org.opendaylight.protocol.concepts.KeyMapping;
18 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
21 * The PCEPTopologyDeployer service is managing PcepTopologyProvider
23 public interface PCEPTopologyDeployer {
25 * Creates and register topology provider instance
26 * @param topologyId topology ID
27 * @param inetSocketAddress inetSocketAddress
28 * @param rpcTimeout rpc Timeout
29 * @param client List of clients password configuration
30 * @param scheduler Instruction Scheduler
32 void createTopologyProvider(@Nonnull TopologyId topologyId, @Nonnull InetSocketAddress inetSocketAddress,
33 short rpcTimeout, @Nullable Optional<KeyMapping> client, @Nonnull InstructionScheduler scheduler,
34 Optional<PCEPTopologyProviderRuntimeRegistrator> runtime);
37 * Closes and unregister topology provider instance
39 * @param topologyID topology ID
41 void removeTopologyProvider(@Nonnull TopologyId topologyID);