summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/datatype.c13
-rw-r--r--tests/py/arp/arp.t1
-rw-r--r--tests/py/arp/arp.t.payload6
-rw-r--r--tests/py/arp/arp.t.payload.netdev8
4 files changed, 17 insertions, 11 deletions
diff --git a/src/datatype.c b/src/datatype.c
index 519f79d7..6d6826e9 100644
--- a/src/datatype.c
+++ b/src/datatype.c
@@ -191,19 +191,10 @@ void symbolic_constant_print(const struct symbol_table *tbl,
break;
}
- if (s->identifier == NULL)
+ if (s->identifier == NULL || nft_output_numeric_symbol(octx))
return expr_basetype(expr)->print(expr, octx);
- if (quotes)
- nft_print(octx, "\"");
-
- if (nft_output_numeric_symbol(octx))
- nft_print(octx, "%" PRIu64 "", val);
- else
- nft_print(octx, "%s", s->identifier);
-
- if (quotes)
- nft_print(octx, "\"");
+ nft_print(octx, quotes ? "\"%s\"" : "%s", s->identifier);
}
static void switch_byteorder(void *data, unsigned int len)
diff --git a/tests/py/arp/arp.t b/tests/py/arp/arp.t
index 86bab523..2540c0a7 100644
--- a/tests/py/arp/arp.t
+++ b/tests/py/arp/arp.t
@@ -38,6 +38,7 @@ arp plen != {33-55};ok
arp operation {nak, inreply, inrequest, rreply, rrequest, reply, request};ok
arp operation != {nak, inreply, inrequest, rreply, rrequest, reply, request};ok
+arp operation 1-2;ok
arp operation request;ok
arp operation reply;ok
arp operation rrequest;ok
diff --git a/tests/py/arp/arp.t.payload b/tests/py/arp/arp.t.payload
index d36bef18..52c99329 100644
--- a/tests/py/arp/arp.t.payload
+++ b/tests/py/arp/arp.t.payload
@@ -188,6 +188,12 @@ arp test-arp input
[ payload load 2b @ network header + 6 => reg 1 ]
[ lookup reg 1 set __set%d 0x1 ]
+# arp operation 1-2
+arp test-arp input
+ [ payload load 2b @ network header + 6 => reg 1 ]
+ [ cmp gte reg 1 0x00000100 ]
+ [ cmp lte reg 1 0x00000200 ]
+
# arp operation request
arp test-arp input
[ payload load 2b @ network header + 6 => reg 1 ]
diff --git a/tests/py/arp/arp.t.payload.netdev b/tests/py/arp/arp.t.payload.netdev
index 0146cf50..667691ff 100644
--- a/tests/py/arp/arp.t.payload.netdev
+++ b/tests/py/arp/arp.t.payload.netdev
@@ -246,6 +246,14 @@ netdev test-netdev ingress
[ payload load 2b @ network header + 6 => reg 1 ]
[ lookup reg 1 set __set%d 0x1 ]
+# arp operation 1-2
+netdev test-netdev ingress
+ [ meta load protocol => reg 1 ]
+ [ cmp eq reg 1 0x00000608 ]
+ [ payload load 2b @ network header + 6 => reg 1 ]
+ [ cmp gte reg 1 0x00000100 ]
+ [ cmp lte reg 1 0x00000200 ]
+
# arp operation request
netdev test-netdev ingress
[ meta load protocol => reg 1 ]