From 2b41e3c411f5367ee4da5153147c2586e71dfa9d Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Tue, 28 Feb 2023 16:23:25 +0100 Subject: src: add last statement This new statement allows you to know how long ago there was a matching packet. # nft list ruleset table ip x { chain y { [...] ip protocol icmp last used 49m54s884ms counter packets 1 bytes 64 } } if this statement never sees a packet, then the listing says: ip protocol icmp last used never counter packets 0 bytes 0 Add tests/py in this patch too. Signed-off-by: Pablo Neira Ayuso --- src/scanner.l | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/scanner.l') diff --git a/src/scanner.l b/src/scanner.l index bc5b5b62..15ca3d46 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -206,6 +206,7 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) %s SCANSTATE_IGMP %s SCANSTATE_IP %s SCANSTATE_IP6 +%s SCANSTATE_LAST %s SCANSTATE_LIMIT %s SCANSTATE_META %s SCANSTATE_POLICY @@ -402,6 +403,11 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) "packets" { return PACKETS; } "bytes" { return BYTES; } +"last" { scanner_push_start_cond(yyscanner, SCANSTATE_LAST); return LAST; } +{ + "never" { return NEVER; } +} + { "counters" { return COUNTERS; } "quotas" { return QUOTAS; } @@ -437,10 +443,11 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) "quota" { scanner_push_start_cond(yyscanner, SCANSTATE_QUOTA); return QUOTA; } { - "used" { return USED; } "until" { return UNTIL; } } +"used" { return USED; } + "hour" { return HOUR; } "day" { return DAY; } -- cgit v1.2.3