X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dhcpservice%2Fdhcpservice-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Fdhcpservice%2FDhcpProvider.java;h=f86b46424ec7de44a7f67eb263f2a0ecf9dcb214;hb=9909ff254706d57ff52ced55f83e2859257b7d6d;hp=5f15135fb3103bb5505ad1f2b48d3d165fe8bb0b;hpb=e0413e0770f833b1f0965df7f5dcb2a3cfa41916;p=vpnservice.git diff --git a/dhcpservice/dhcpservice-impl/src/main/java/org/opendaylight/vpnservice/dhcpservice/DhcpProvider.java b/dhcpservice/dhcpservice-impl/src/main/java/org/opendaylight/vpnservice/dhcpservice/DhcpProvider.java index 5f15135f..f86b4642 100644 --- a/dhcpservice/dhcpservice-impl/src/main/java/org/opendaylight/vpnservice/dhcpservice/DhcpProvider.java +++ b/dhcpservice/dhcpservice-impl/src/main/java/org/opendaylight/vpnservice/dhcpservice/DhcpProvider.java @@ -7,15 +7,18 @@ */ package org.opendaylight.vpnservice.dhcpservice; -import org.opendaylight.vpnservice.neutronvpn.interfaces.INeutronVpnManager; - -import org.opendaylight.controller.sal.binding.api.NotificationProviderService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService; -import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService; +import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext; import org.opendaylight.controller.sal.binding.api.BindingAwareProvider; +import org.opendaylight.controller.sal.binding.api.NotificationProviderService; import org.opendaylight.vpnservice.mdsalutil.interfaces.IMdsalApiManager; +import org.opendaylight.vpnservice.neutronvpn.interfaces.INeutronVpnManager; +import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rpcs.rev151003.OdlInterfaceRpcService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.itm.rpcs.rev151217.ItmRpcService; +import org.opendaylight.yangtools.concepts.Registration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,6 +33,17 @@ public class DhcpProvider implements BindingAwareProvider, AutoCloseable { private NodeListener dhcpNodeListener; private INeutronVpnManager neutronVpnManager; private DhcpConfigListener dhcpConfigListener; + private OdlInterfaceRpcService interfaceManagerRpc; + private DhcpInterfaceEventListener dhcpInterfaceEventListener; + private DhcpExternalTunnelManager dhcpExternalTunnelManager; + private DhcpNeutronPortListener dhcpNeutronPortListener; + private DhcpLogicalSwitchListener dhcpLogicalSwitchListener; + private DhcpUCastMacListener dhcpUCastMacListener; + private ItmRpcService itmRpcService; + private DhcpInterfaceConfigListener dhcpInterfaceConfigListener; + private EntityOwnershipService entityOwnershipService; + private DhcpDesignatedDpnListener dhcpDesignatedDpnListener; + private DhcpL2GatewayConnectionListener dhcpL2GatewayConnectionListener; @Override public void onSessionInitiated(ProviderContext session) { @@ -40,17 +54,29 @@ public class DhcpProvider implements BindingAwareProvider, AutoCloseable { dhcpManager = new DhcpManager(dataBroker); dhcpManager.setMdsalManager(mdsalManager); dhcpManager.setNeutronVpnService(neutronVpnManager); - dhcpPktHandler = new DhcpPktHandler(dataBroker, dhcpManager); + dhcpExternalTunnelManager = new DhcpExternalTunnelManager(dataBroker, mdsalManager, itmRpcService, entityOwnershipService); + dhcpPktHandler = new DhcpPktHandler(dataBroker, dhcpManager, dhcpExternalTunnelManager); dhcpPktHandler.setPacketProcessingService(pktProcessingService); + dhcpPktHandler.setInterfaceManagerRpc(interfaceManagerRpc); packetListener = notificationService.registerNotificationListener(dhcpPktHandler); - dhcpNodeListener = new NodeListener(dataBroker, dhcpManager); + dhcpNodeListener = new NodeListener(dataBroker, dhcpManager, dhcpExternalTunnelManager); dhcpConfigListener = new DhcpConfigListener(dataBroker, dhcpManager); + dhcpInterfaceEventListener = new DhcpInterfaceEventListener(dhcpManager, dataBroker, dhcpExternalTunnelManager); + dhcpInterfaceConfigListener = new DhcpInterfaceConfigListener(dataBroker, dhcpExternalTunnelManager); + dhcpLogicalSwitchListener = new DhcpLogicalSwitchListener(dhcpExternalTunnelManager, dataBroker); + dhcpUCastMacListener = new DhcpUCastMacListener(dhcpExternalTunnelManager, dataBroker); + dhcpUCastMacListener.registerListener(LogicalDatastoreType.OPERATIONAL, dataBroker); + dhcpNeutronPortListener = new DhcpNeutronPortListener(dataBroker, dhcpExternalTunnelManager); + dhcpNeutronPortListener.registerListener(LogicalDatastoreType.CONFIGURATION, dataBroker); + dhcpDesignatedDpnListener = new DhcpDesignatedDpnListener(dhcpExternalTunnelManager, dataBroker); + dhcpDesignatedDpnListener.registerListener(LogicalDatastoreType.CONFIGURATION, dataBroker); + dhcpL2GatewayConnectionListener = new DhcpL2GatewayConnectionListener(dataBroker, dhcpExternalTunnelManager); + dhcpL2GatewayConnectionListener.registerListener(LogicalDatastoreType.CONFIGURATION, dataBroker); } catch (Exception e) { - LOG.error("Error initializing services", e); + LOG.error("Error initializing services {}", e); } } - public void setMdsalManager(IMdsalApiManager mdsalManager) { this.mdsalManager = mdsalManager; } @@ -77,4 +103,15 @@ public class DhcpProvider implements BindingAwareProvider, AutoCloseable { this.notificationService = notificationServiceDependency; } + public void setInterfaceManagerRpc(OdlInterfaceRpcService interfaceManagerRpc) { + this.interfaceManagerRpc = interfaceManagerRpc; + } + + public void setItmRpcService(ItmRpcService itmRpcService) { + this.itmRpcService = itmRpcService; + } + + public void setEntityOwnershipService(EntityOwnershipService entityOwnershipService) { + this.entityOwnershipService = entityOwnershipService; + } }