diff --git a/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java b/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java
index bfdf5f88df6d671657ea828ec091c6390df0248f..57ccb6a77edaa085350c330b294e2c7229025ad0 100644
--- a/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java
+++ b/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java
@@ -223,8 +223,10 @@ public class FirewallRulesResource extends ServerResource {
 				else if (n.equalsIgnoreCase("src-ip")) {
 					if (!jp.getText().equalsIgnoreCase("ANY")) {
 						rule.any_nw_src = false;
-						rule.any_dl_type = false;
-						rule.dl_type = EthType.IPv4;
+						if (rule.dl_type.equals(EthType.NONE)){
+							rule.any_dl_type = false;
+							rule.dl_type = EthType.IPv4;
+						}
 						try {
 							rule.nw_src_prefix_and_mask = IPv4AddressWithMask.of(jp.getText());
 						} catch (IllegalArgumentException e) {
@@ -237,8 +239,10 @@ public class FirewallRulesResource extends ServerResource {
 				else if (n.equalsIgnoreCase("dst-ip")) {
 					if (!jp.getText().equalsIgnoreCase("ANY")) {
 						rule.any_nw_dst = false;
-						rule.any_dl_type = false;
-						rule.dl_type = EthType.IPv4;
+						if (rule.dl_type.equals(EthType.NONE)){
+							rule.any_dl_type = false;
+							rule.dl_type = EthType.IPv4;
+						}
 						try {
 							rule.nw_dst_prefix_and_mask = IPv4AddressWithMask.of(jp.getText());
 						} catch (IllegalArgumentException e) {