From ec916a449903f30e00bf5d392ce84b0bb248363a Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Tue, 7 Aug 2018 17:45:15 +0200 Subject: parser_bison: allow to use new osf expression from assignment statement So the following rule to set the conntrack mark based on the OS passive recognition works: # nft add rule x y ct mark set osf name map { "Windows" : 1, "MacOs" : 2 } Fixes: 9f28b685b473 ("src: introduce passive OS fingerprint matching") Signed-off-by: Pablo Neira Ayuso --- tests/py/inet/osf.t | 1 + tests/py/inet/osf.t.payload | 9 +++++++++ 2 files changed, 10 insertions(+) (limited to 'tests/py') diff --git a/tests/py/inet/osf.t b/tests/py/inet/osf.t index 6533b84e..7cf90931 100644 --- a/tests/py/inet/osf.t +++ b/tests/py/inet/osf.t @@ -7,3 +7,4 @@ osf name "Linux";ok osf name "morethansixteenbytes";fail osf name ;fail +ct mark set osf name map { "Windows" : 0x00000001, "MacOs" : 0x00000002 };ok diff --git a/tests/py/inet/osf.t.payload b/tests/py/inet/osf.t.payload index f94c17ec..0381378f 100644 --- a/tests/py/inet/osf.t.payload +++ b/tests/py/inet/osf.t.payload @@ -12,3 +12,12 @@ ip6 osfip6 osfchain inet osfinet osfchain [ osf dreg 1 ] [ cmp eq reg 1 0x756e694c 0x00000078 0x00000000 0x00000000 ] + +# ct mark set osf name map { "Windows" : 0x00000001, "MacOs" : 0x00000002 } +__map%d osfip b size 2 +__map%d osfip 0 + element 646e6957 0073776f 00000000 00000000 : 00000001 0 [end] element 4f63614d 00000073 00000000 00000000 : 00000002 0 [end] +ip osfip osfchain + [ osf dreg 1 ] + [ lookup reg 1 set __map%d dreg 1 ] + [ ct set mark with reg 1 ] -- cgit v1.2.3