X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=fibmanager%2Ffibmanager-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Ffibmanager%2FFibManagerProvider.java;h=15ea7db36dcb5e707c72db09b49e21cc9d3755d6;hb=78638a6543c647ffff30d36e52604f5b7b5e785b;hp=cb2da5e2b8d4efe83391f4207e10ce8bf7adc95a;hpb=fab3933242466a4be69bdbc3bc2199fc35b61317;p=vpnservice.git diff --git a/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManagerProvider.java b/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManagerProvider.java index cb2da5e2..15ea7db3 100644 --- a/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManagerProvider.java +++ b/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManagerProvider.java @@ -10,18 +10,22 @@ package org.opendaylight.vpnservice.fibmanager; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext; import org.opendaylight.controller.sal.binding.api.BindingAwareProvider; +import org.opendaylight.fibmanager.api.IFibManager; +import org.opendaylight.vpnmanager.api.IVpnManager; import org.opendaylight.vpnservice.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.l3nexthop.rev150409.L3nexthopService; import org.opendaylight.yangtools.yang.binding.RpcService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class FibManagerProvider implements BindingAwareProvider, AutoCloseable { +public class FibManagerProvider implements BindingAwareProvider, IFibManager, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(FibManagerProvider.class); private FibManager fibManager; private IMdsalApiManager mdsalManager; + private IVpnManager vpnmanager; + private FibNodeCapableListener fibNcListener; @Override public void onSessionInitiated(ProviderContext session) { @@ -31,6 +35,8 @@ public class FibManagerProvider implements BindingAwareProvider, AutoCloseable { final RpcService nexthopService = session.getRpcService(L3nexthopService.class); fibManager = new FibManager(dataBroker, nexthopService); fibManager.setMdsalManager(mdsalManager); + fibManager.setVpnmanager(vpnmanager); + fibNcListener = new FibNodeCapableListener(dataBroker, fibManager); } catch (Exception e) { LOG.error("Error initializing services", e); } @@ -40,9 +46,25 @@ public class FibManagerProvider implements BindingAwareProvider, AutoCloseable { public void close() throws Exception { LOG.info("FibManagerProvider Closed"); fibManager.close(); + fibNcListener.close(); } public void setMdsalManager(IMdsalApiManager mdsalManager) { this.mdsalManager = mdsalManager; } -} \ No newline at end of file + + public void setVpnmanager(IVpnManager vpnmanager) { + this.vpnmanager = vpnmanager; + vpnmanager.setFibService(this); + } + + @Override + public void populateFibOnNewDpn(long dpnId, long vpnId, String rd) { + fibManager.populateFibOnNewDpn(dpnId, vpnId, rd); + } + + @Override + public void cleanUpDpnForVpn(long dpnId, long vpnId, String rd) { + fibManager.populateFibOnNewDpn(dpnId, vpnId, rd); + } +}