netfilter: nft_limit: fix packet ratelimiting
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 16 May 2018 20:58:33 +0000 (22:58 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 23 May 2018 07:50:28 +0000 (09:50 +0200)
commit3e0f64b7dd3149f75e8652ff1df56cffeedc8fc1
treef5ed936c6660e06ceda2ccace703f2b3993c0df3
parent97a0549b15a0b466c47f6a0143a490a082c64b4e
netfilter: nft_limit: fix packet ratelimiting

Credit calculations for the packet ratelimiting are not correct, as per
the applied ratelimit of 25/second and burst 8, a total of 33 packets
should have been accepted.  This is true in iptables(33) but not in
nftables (~65). For packet ratelimiting, use:

div_u64(limit->nsecs, limit->rate) * limit->burst;

to calculate credit, just like in iptables' xt_limit does.

Moreover, use default burst in iptables, users are expecting similar
behaviour.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nft_limit.c