diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2017-07-13 10:41:27 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2017-07-17 08:16:43 +0000 |
commit | d2664a4f307a833e293b2dfbe44d9ab6579eef2d (patch) | |
tree | ea8d05794c7d110f7a15d18874678925db44e230 /infra/northbound/bgp/src/main/java/io/fd/honeycomb/infra/bgp/BgpWritersModule.java | |
parent | a4a488f7cdd04498bfcda068bf171516a9afe4f0 (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>
(cherry picked from commit a3d562afdd96d4c37fe608af99f364e879ee92b6)
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); } } |