Message ID | 20190318094745.GA4394@nebula |
---|---|
State | Changes Requested |
Delegated to: | Pablo Neira |
Headers | show |
Series | [nftables] tests/py: Add Test for `meta time` | expand |
On Tue, Mar 19, 2019 at 3:39 AM Florian Westphal <fw@strlen.de> wrote: > > Karuna Grewal <karunagrewal98@gmail.com> wrote: > > command: add rule ip test-ip4 input meta time 100 > > Error: Could not process rule: Operation not supported > > This means that nft_meta.c doesn't recognize the TIME key. > You need to run the modified/patched kernel for this to work -- > it looks like nft_meta_get_init() hits the "default:" switch label. I'm running the tests against the new modified kernel (I've applied the patch to kernel 5.0.2) and when I logged a debug message it confirms that it's indeed hitting the default switch. But previously running nft against the nf-next fork of the kernel was recognising the `meta time`. This leaves me in a bit of confusion. Meanwhile I'm trying to verify other things, could you please confirm if the kernel tree isn't any issue here.
Karuna Grewal <karunagrewal98@gmail.com> wrote: > On Tue, Mar 19, 2019 at 3:39 AM Florian Westphal <fw@strlen.de> wrote: > > > > Karuna Grewal <karunagrewal98@gmail.com> wrote: > > > command: add rule ip test-ip4 input meta time 100 > > > Error: Could not process rule: Operation not supported > > > > This means that nft_meta.c doesn't recognize the TIME key. > > You need to run the modified/patched kernel for this to work -- > > it looks like nft_meta_get_init() hits the "default:" switch label. > I'm running the tests against the new modified kernel (I've applied > the patch to kernel 5.0.2) and when I logged a debug message it > confirms that it's indeed hitting the default switch. > But previously running nft against the nf-next fork of the kernel was > recognising the `meta time`. This leaves me in a bit of confusion. > Meanwhile I'm trying to verify other things, could you please confirm > if the kernel tree isn't any issue here. It looks like kernel and userspace disagree on the TIME_NS meta attribute enum value.
Thanks. I checked that in the userspace the enum nft_meta_keys has additional values as compared to the linux 5.0.2 's nft_meta_keys but this isn't the case with the nf-next. I'll run the tests again with the nf-next kernel tree. Also, does this mean that I should stick to the nf-next kernel tree instead of the latest kernel release itself? On Tue, Mar 19, 2019 at 12:47 PM Florian Westphal <fw@strlen.de> wrote: > > Karuna Grewal <karunagrewal98@gmail.com> wrote: > > On Tue, Mar 19, 2019 at 3:39 AM Florian Westphal <fw@strlen.de> wrote: > > > > > > Karuna Grewal <karunagrewal98@gmail.com> wrote: > > > > command: add rule ip test-ip4 input meta time 100 > > > > Error: Could not process rule: Operation not supported > > > > > > This means that nft_meta.c doesn't recognize the TIME key. > > > You need to run the modified/patched kernel for this to work -- > > > it looks like nft_meta_get_init() hits the "default:" switch label. > > I'm running the tests against the new modified kernel (I've applied > > the patch to kernel 5.0.2) and when I logged a debug message it > > confirms that it's indeed hitting the default switch. > > But previously running nft against the nf-next fork of the kernel was > > recognising the `meta time`. This leaves me in a bit of confusion. > > Meanwhile I'm trying to verify other things, could you please confirm > > if the kernel tree isn't any issue here. > > It looks like kernel and userspace disagree on the TIME_NS meta attribute > enum value.
Karuna Grewal <karunagrewal98@gmail.com> wrote: > Thanks. I checked that in the userspace the enum nft_meta_keys has > additional values as compared to the linux 5.0.2 's nft_meta_keys but > this isn't the case with the nf-next. > I'll run the tests again with the nf-next kernel tree. > Also, does this mean that I should stick to the nf-next kernel tree > instead of the latest kernel release itself? nf-next lags behind at the moment, it will catch up soon. So, meanwhile you can use nf or even linus tree until nf-next is back in sync.
On Mon, Mar 18, 2019 at 03:17:45PM +0530, Karuna Grewal wrote: > Signed-off-by: Karuna Grewal <karunagrewal98@gmail.com> > --- > tests/py/any/meta.t | 3 +++ > tests/py/any/meta.t.json | 12 ++++++++++++ > tests/py/any/meta.t.payload | 5 +++++ > 3 files changed, 20 insertions(+) > > diff --git a/tests/py/any/meta.t b/tests/py/any/meta.t > index d69b8b4e..3d23dc75 100644 > --- a/tests/py/any/meta.t > +++ b/tests/py/any/meta.t > @@ -205,3 +205,6 @@ meta iif . meta oif vmap { "lo" . "lo" : drop };ok;iif . oif vmap { "lo" . "lo" > > meta random eq 1;ok;meta random 1 > meta random gt 1000000;ok;meta random > 1000000 > + > +meta time 100;ok;meta timestamp 1m40s I think the important thing here is to support for dates. I remember Florian mentioned we need a new datatype for this, to express dates. Still we need support for time range, ie. hh:mm[:ss]-hh:mm[:ss], monthdays and weekdays. We should _not_ support --kerneltz, that broken. We should just provide an alternative that works with UTC. Hopefully daylight saving will be removed everywhere soon (EU is planning for this), so we won't need --kerneltz. Talking by looking at what I see in man iptables-extensions when I look for the `time' match. Will you work on this?
diff --git a/tests/py/any/meta.t b/tests/py/any/meta.t index d69b8b4e..3d23dc75 100644 --- a/tests/py/any/meta.t +++ b/tests/py/any/meta.t @@ -205,3 +205,6 @@ meta iif . meta oif vmap { "lo" . "lo" : drop };ok;iif . oif vmap { "lo" . "lo" meta random eq 1;ok;meta random 1 meta random gt 1000000;ok;meta random > 1000000 + +meta time 100;ok;meta timestamp 1m40s +meta time ;fail diff --git a/tests/py/any/meta.t.json b/tests/py/any/meta.t.json index 2cf91cda..faef4e26 100644 --- a/tests/py/any/meta.t.json +++ b/tests/py/any/meta.t.json @@ -2499,3 +2499,15 @@ } ] +# meta time 100 +[ + { + "match": { + "left": { + "meta": { "key": "time" } + }, + "op": "==", + "right": 100 + } + } +] \ No newline at end of file diff --git a/tests/py/any/meta.t.payload b/tests/py/any/meta.t.payload index b32770f5..71c68e42 100644 --- a/tests/py/any/meta.t.payload +++ b/tests/py/any/meta.t.payload @@ -1021,3 +1021,8 @@ ip test-ip4 input [ meta load priority => reg 1 ] [ cmp eq reg 1 0x87654321 ] +# meta time 100 +ip test-ip4 input + [ meta load timestamp => reg 1 ] + [ cmp eq reg 1 0x00000064 ] +
Signed-off-by: Karuna Grewal <karunagrewal98@gmail.com> --- tests/py/any/meta.t | 3 +++ tests/py/any/meta.t.json | 12 ++++++++++++ tests/py/any/meta.t.payload | 5 +++++ 3 files changed, 20 insertions(+)