+ void createNATOnlyFlowEntries(BigInteger dpnId, String interfaceName, String routerName, String associatedVPN, Uuid externalNetworkId, String internalIp, String externalIp) {
+ //String segmentId = associatedVPN == null ? routerName : associatedVPN;
+ LOG.debug("Retrieving vpn id for VPN {} to proceed with create NAT Flows", routerName);
+ long routerId = NatUtil.getVpnId(broker, routerName);
+ if(routerId == NatConstants.INVALID_ID) {
+ LOG.warn("Could not retrieve vpn id for {} to create NAT Flow entries", routerName);
+ return;
+ }
+ long associatedVpnId = NatUtil.getVpnId(broker, associatedVPN);
+ LOG.debug("Associated VPN Id {} for router {}", associatedVpnId, routerName);
+ long vpnId = getVpnId(externalNetworkId);
+ if(vpnId < 0) {
+ LOG.error("Unable to create SNAT table entry for fixed ip {}", internalIp);
+ return;
+ }
+ //Create the DNAT and SNAT table entries
+ //createDNATTblEntry(dpnId, internalIp, externalIp, routerId, vpnId);
+ FlowEntity pFlowEntity = buildPreDNATFlowEntity(dpnId, internalIp, externalIp, routerId, vpnId, associatedVpnId );
+ mdsalManager.installFlow(pFlowEntity);
+
+ FlowEntity flowEntity = buildDNATFlowEntity(dpnId, internalIp, externalIp, routerId, associatedVpnId);
+ mdsalManager.installFlow(flowEntity);
+
+ String macAddr = getExternalGatewayMacAddress(routerName);
+ //createSNATTblEntry(dpnId, internalIp, externalIp, vpnId, routerId, macAddr);
+ pFlowEntity = buildPreSNATFlowEntity(dpnId, internalIp, externalIp, vpnId , routerId, associatedVpnId);
+ mdsalManager.installFlow(pFlowEntity);
+
+ flowEntity = buildSNATFlowEntity(dpnId, internalIp, externalIp, vpnId, macAddr);
+ mdsalManager.installFlow(flowEntity);
+
+ }
+