diff options
-rw-r--r-- | src/datatype.c | 13 | ||||
-rw-r--r-- | tests/py/arp/arp.t | 1 | ||||
-rw-r--r-- | tests/py/arp/arp.t.payload | 6 | ||||
-rw-r--r-- | tests/py/arp/arp.t.payload.netdev | 8 |
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 ] |