2 * Copyright (c) 2021 PANTHEON.tech s.r.o. 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.protocol.bgp.rib.impl.config;
10 import org.opendaylight.mdsal.binding.api.DataBroker;
11 import org.opendaylight.mdsal.binding.api.RpcProviderService;
12 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
13 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
14 import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.BGPRibRoutingPolicyFactory;
15 import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
16 import org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher;
17 import org.opendaylight.protocol.bgp.rib.impl.spi.CodecsRegistry;
18 import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionConsumerContext;
19 import org.opendaylight.protocol.bgp.rib.spi.state.BGPStateProviderRegistry;
20 import org.osgi.service.component.annotations.Activate;
21 import org.osgi.service.component.annotations.Component;
22 import org.osgi.service.component.annotations.Deactivate;
23 import org.osgi.service.component.annotations.Reference;
24 import org.osgi.service.metatype.annotations.AttributeDefinition;
25 import org.osgi.service.metatype.annotations.Designate;
26 import org.osgi.service.metatype.annotations.ObjectClassDefinition;
28 @Component(service = { })
29 @Designate(ocd = OSGiBgpDeployer.Configuration.class)
30 public final class OSGiBgpDeployer extends DefaultBgpDeployer {
31 @ObjectClassDefinition(description = "Configuration of the OSGiBgpDeployer")
32 public @interface Configuration {
33 @AttributeDefinition(description = "Instance name of deployed BGP")
34 String networkInstanceName() default "global-bgp";
38 public OSGiBgpDeployer(@Reference final ClusterSingletonServiceProvider provider,
39 @Reference final RpcProviderService rpcRegistry,
40 @Reference final RIBExtensionConsumerContext ribExtensionContext,
41 @Reference final BGPDispatcher bgpDispatcher,
42 @Reference final BGPRibRoutingPolicyFactory routingPolicyFactory,
43 @Reference final CodecsRegistry codecsRegistry,
44 @Reference final DOMDataBroker domDataBroker,
45 @Reference final DataBroker dataBroker,
46 @Reference final BGPTableTypeRegistryConsumer mappingService,
47 @Reference final BGPStateProviderRegistry stateProviderRegistry,
48 final Configuration configuration) {
49 super(configuration.networkInstanceName(), provider, rpcRegistry, ribExtensionContext, bgpDispatcher,
50 routingPolicyFactory, codecsRegistry, domDataBroker, dataBroker, mappingService, stateProviderRegistry);