Fix: refer to SNAT mode using getStatefulSnatFlag method
Change-Id: Ic889c3b096f847808cbe6347cce8dcd62d41151b
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingSnatHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingSnatHandler.java
index b563dc7..8efabcd 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingSnatHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingSnatHandler.java
@@ -30,6 +30,7 @@
import org.onlab.util.KryoNamespace;
import org.onlab.util.Tools;
import org.onosproject.cfg.ComponentConfigService;
+import org.onosproject.cfg.ConfigProperty;
import org.onosproject.cluster.ClusterService;
import org.onosproject.cluster.LeadershipService;
import org.onosproject.cluster.NodeId;
@@ -116,6 +117,7 @@
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.externalIpFromSubnet;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.externalPeerRouterFromSubnet;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.getExternalIp;
+import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.getPropertyValueAsBoolean;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.tunnelPortNumByNetType;
import static org.onosproject.openstacknetworking.util.RulePopulatorUtil.CT_NAT_SRC_FLAG;
import static org.onosproject.openstacknetworking.util.RulePopulatorUtil.buildExtension;
@@ -272,7 +274,7 @@
private void processSnatPacket(PacketContext context, Ethernet eth) {
- if (useStatefulSnat) {
+ if (getStatefulSnatFlag()) {
return;
}
@@ -627,7 +629,7 @@
}
private void resetSnatRules() {
- if (useStatefulSnat) {
+ if (getStatefulSnatFlag()) {
osRouterService.routerInterfaces().forEach(
routerIface -> {
setReactiveSnatRules(routerIface, false);
@@ -782,7 +784,7 @@
IpPrefix.valueOf(osSubnet.getCidr()), netType, install);
});
- if (useStatefulSnat) {
+ if (getStatefulSnatFlag()) {
setStatefulSnatRules(routerIface, install);
} else {
setReactiveSnatRules(routerIface, install);
@@ -1116,6 +1118,12 @@
install);
}
+ private boolean getStatefulSnatFlag() {
+ Set<ConfigProperty> properties =
+ configService.getProperties(getClass().getName());
+ return getPropertyValueAsBoolean(properties, USE_STATEFUL_SNAT);
+ }
+
private class InternalInstancePortListener implements InstancePortListener {
private boolean isRelevantHelper(InstancePortEvent event) {
@@ -1202,7 +1210,7 @@
return;
}
- if (useStatefulSnat) {
+ if (getStatefulSnatFlag()) {
osNodeService.completeNodes(GATEWAY).forEach(gwNode ->
setGatewayToInstanceDownstreamRule(gwNode, instPort, true));
}
@@ -1215,7 +1223,7 @@
return;
}
- if (useStatefulSnat) {
+ if (getStatefulSnatFlag()) {
osNodeService.completeNodes(GATEWAY).forEach(gwNode ->
setGatewayToInstanceDownstreamRule(gwNode, instPort, false));
}
@@ -1403,7 +1411,7 @@
return;
}
- if (useStatefulSnat && osNode.type() == GATEWAY) {
+ if (getStatefulSnatFlag() && osNode.type() == GATEWAY) {
instancePortService.instancePorts().forEach(instPort ->
setGatewayToInstanceDownstreamRule(osNode, instPort, true));
}
@@ -1414,7 +1422,7 @@
return;
}
- if (useStatefulSnat && osNode.type() == GATEWAY) {
+ if (getStatefulSnatFlag() && osNode.type() == GATEWAY) {
instancePortService.instancePorts().forEach(instPort ->
setGatewayToInstanceDownstreamRule(osNode, instPort, false));
}