Hi Phil,

On Wed, Oct 24, 2018 at 12:42:09PM +0200, Phil Sutter wrote:
> Trying to add a range of size 1 was previously not allowed:
> 
> | # nft add element ip t s '{ 40-40 }'
> | Error: Range has zero or negative size
> | add element ip t s { 40-40 }
> |                      ^^^^^
> 
> The error message is not correct: A range of N-K with K >= N consists of
> K - N + 1 elements (N, N + 1, N + 2, ... K - 1, K). Therefore a range of
> N-N consists of 1 (N - N + 1) elements, namely N.
> 
> Allow this in a simple way by reducing the range into a single element:
> 
> | # nft list set ip t s
> | table ip t {
> |     set s {
> |             type inet_service
> |     }
> | }
> | # nft add element ip t s '{ 40-40 }'
> | # nft list set ip t s
> | table ip t {
> |     set s {
> |             type inet_service
> |             elements = { 40 }
> |     }
> | }
> | # nft get element ip t s '{ 40-40 }'
> | table ip t {
> |     set s {
> |             type inet_service
> |             flags interval
> |             elements = { 40 }
> |     }
> | }

Hm, I would probably just do it if the 'merge' flag is set on.

Arguably, this can be something mistyped by the user. Or dealing with
a silly robot.

So not sure about this one.

Reply via email to