diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2017-07-13 10:41:27 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2017-07-14 14:01:08 +0200 |
commit | a3d562afdd96d4c37fe608af99f364e879ee92b6 (patch) | |
tree | 1cf24ae099ada86a0f783ec879f6c9bf4e78e184 /infra/northbound/bgp/src/main/java/io/fd/honeycomb/infra/bgp/BgpWritersModule.java | |
parent | d28000626470afb327872660849da79869fdf310 (diff) |
HONEYCOMB-369: configurable BGP peers
BGP peer configuration is no longer read from bgp-peer.json file.
Netconf/Restconf is can be used instead.
BGP peer configuration in HC follows openconfig-extensions model (as in ODL BGP):
* http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#bgp-peering
* http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#bgp-application-peer-and-programmable-rib
Change-Id: I91aa6c4fc0923edbacf6cd10abd3957569a4f8c6
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'infra/northbound/bgp/src/main/java/io/fd/honeycomb/infra/bgp/BgpWritersModule.java')
-rw-r--r-- | infra/northbound/bgp/src/main/java/io/fd/honeycomb/infra/bgp/BgpWritersModule.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/infra/northbound/bgp/src/main/java/io/fd/honeycomb/infra/bgp/BgpWritersModule.java b/infra/northbound/bgp/src/main/java/io/fd/honeycomb/infra/bgp/BgpWritersModule.java index b16702968..589eeac7b 100644 --- a/infra/northbound/bgp/src/main/java/io/fd/honeycomb/infra/bgp/BgpWritersModule.java +++ b/infra/northbound/bgp/src/main/java/io/fd/honeycomb/infra/bgp/BgpWritersModule.java @@ -19,19 +19,34 @@ package io.fd.honeycomb.infra.bgp; import com.google.inject.AbstractModule; import com.google.inject.Singleton; import com.google.inject.multibindings.Multibinder; +import io.fd.honeycomb.infra.bgp.neighbors.BgpPeerWriterFactory; import io.fd.honeycomb.translate.write.WriterFactory; +import org.opendaylight.protocol.bgp.openconfig.impl.BGPOpenConfigMappingServiceImpl; +import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigMappingService; +import org.opendaylight.protocol.bgp.rib.impl.StrictBGPPeerRegistry; +import org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * Provides integration of various BGP components with WriterRegistry + * in order to enable configuration updates/read via RESTCONF/NETCONF. + */ public final class BgpWritersModule extends AbstractModule { private static final Logger LOG = LoggerFactory.getLogger(BgpWritersModule.class); protected void configure() { - LOG.debug("Initializing BgpReadersModule"); + LOG.debug("Initializing BgpWritersModule"); // This should be part of BgpModule, but that one is Private and Multibinders + private BASE_MODULES // do not work together, that's why there's a dedicated module here // https://github.com/google/guice/issues/906 + + // Configure peer registry + bind(BGPOpenConfigMappingService.class).toInstance(new BGPOpenConfigMappingServiceImpl()); + bind(BGPPeerRegistry.class).toInstance(StrictBGPPeerRegistry.instance()); + final Multibinder<WriterFactory> binder = Multibinder.newSetBinder(binder(), WriterFactory.class); - binder.addBinding().toProvider(BgpWriterFactoryProvider.class).in(Singleton.class); + binder.addBinding().to(ApplicationRibWriterFactory.class).in(Singleton.class); + binder.addBinding().to(BgpPeerWriterFactory.class).in(Singleton.class); } } |