import javax.inject.Inject;
import javax.inject.Singleton;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar;
import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager;
import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager;
import org.opendaylight.infrautils.inject.AbstractLifecycle;
+import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.netvirt.elanmanager.api.IElanService;
import org.opendaylight.netvirt.fibmanager.api.IFibManager;
import org.opendaylight.netvirt.natservice.ha.NatDataUtil;
-import org.opendaylight.netvirt.neutronvpn.interfaces.INeutronVpnManager;
import org.opendaylight.netvirt.vpnmanager.api.IVpnFootprintService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService;
private final IdManagerService idManager;
private final NAPTSwitchSelector naptSwitchSelector;
private final NatMode natMode;
- private final INeutronVpnManager nvpnManager;
private final ExternalRoutersListener externalRouterListener;
private final IElanService elanManager;
private final IInterfaceManager interfaceManager;
private final IFibManager fibManager;
private final NatDataUtil natDataUtil;
private final DataTreeEventCallbackRegistrar eventCallbacks;
+ private final NatOverVxlanUtil natOverVxlanUtil;
+ private final Ipv6SubnetFlowProgrammer ipv6SubnetFlowProgrammer;
@Inject
public SnatServiceImplFactory(final DataBroker dataBroker, final IMdsalApiManager mdsalManager,
final IdManagerService idManager,
final NAPTSwitchSelector naptSwitchSelector,
final NatserviceConfig config,
- final INeutronVpnManager nvpnManager,
final ExternalRoutersListener externalRouterListener,
final IElanService elanManager,
final IInterfaceManager interfaceManager,
final IVpnFootprintService vpnFootprintService,
final IFibManager fibManager,
final NatDataUtil natDataUtil,
- final DataTreeEventCallbackRegistrar eventCallbacks) {
+ final DataTreeEventCallbackRegistrar eventCallbacks,
+ final NatOverVxlanUtil natOverVxlanUtil,
+ final Ipv6SubnetFlowProgrammer ipv6SubnetFlowProgrammer) {
this.dataBroker = dataBroker;
this.mdsalManager = mdsalManager;
this.itmManager = itmManager;
} else {
this.natMode = null;
}
- this.nvpnManager = nvpnManager;
this.externalRouterListener = externalRouterListener;
this.elanManager = elanManager;
this.interfaceManager = interfaceManager;
this.fibManager = fibManager;
this.natDataUtil = natDataUtil;
this.eventCallbacks = eventCallbacks;
+ this.natOverVxlanUtil = natOverVxlanUtil;
+ this.ipv6SubnetFlowProgrammer = ipv6SubnetFlowProgrammer;
}
@Override
LOG.info("{} close", getClass().getSimpleName());
}
+ @Nullable
public AbstractSnatService createFlatVlanSnatServiceImpl() {
-
if (natMode == NatMode.Conntrack) {
return new FlatVlanConntrackBasedSnatService(dataBroker, mdsalManager, itmManager, odlInterfaceRpcService,
idManager, naptSwitchSelector, interfaceManager, vpnFootprintService, fibManager, natDataUtil,
return null;
}
- public AbstractSnatService createVxlanGreSnatServiceImpl() {
+ public Ipv6ForwardingService createFlatVlanIpv6ServiceImpl() {
+ return new Ipv6ForwardingService(dataBroker, mdsalManager, itmManager, odlInterfaceRpcService,
+ idManager, naptSwitchSelector, interfaceManager, ipv6SubnetFlowProgrammer);
+ }
+ @Nullable
+ public AbstractSnatService createVxlanGreSnatServiceImpl() {
if (natMode == NatMode.Conntrack) {
- NatOverVxlanUtil.validateAndCreateVxlanVniPool(dataBroker, nvpnManager, idManager,
- NatConstants.ODL_VNI_POOL_NAME);
return new VxlanGreConntrackBasedSnatService(dataBroker, mdsalManager, itmManager, odlInterfaceRpcService,
idManager, naptSwitchSelector, externalRouterListener, elanManager, interfaceManager,
- vpnFootprintService, fibManager, natDataUtil, eventCallbacks);
+ vpnFootprintService, fibManager, natDataUtil, eventCallbacks, natOverVxlanUtil);
}
return null;
}
-
-
}