Drop ports_valid flag, it just wastes a register
[flowspec-xdp] / genrules.py
index 8e58e9ac6de0259bcbdc3f67636a10882d8b0deb..5d90e8c773a414b218a7db7be03f2b5eb3e085f9 100755 (executable)
@@ -199,7 +199,7 @@ def ip_to_rule(proto, inip, ty, offset):
        break;"""
 
 def fragment_to_rule(ipproto, rules):
-    ast = parse_ast(rules, parse_frag_expr, True)
+    ast = parse_ast(rules, parse_frag_expr, False)
     return "if (!( " + ast.write(ipproto) + " )) break;"
 
 def len_to_rule(rules):
@@ -239,10 +239,10 @@ def dscp_to_rule(proto, rules):
 def port_to_rule(ty, rules):
     if ty == "port" :
         ast = parse_ast(rules, parse_numbers_expr, True)
-        return "if (!ports_valid) break;\nif (!( " + ast.write("sport", "dport") + " )) break;"
+        return "if (sport == -1 || dport == -1) break;\nif (!( " + ast.write("sport", "dport") + " )) break;"
 
     ast = parse_ast(rules, parse_numbers_expr, True)
-    return "if (!ports_valid) break;\nif (!( " + ast.write(ty) + " )) break;"
+    return "if (" + ty + " == -1) break;\nif (!( " + ast.write(ty) + " )) break;"
 
 def tcp_flags_to_rule(rules):
     ast = parse_ast(rules, parse_bit_expr, False)