From 50741c52fe57fd09fa9cbd1a1626bfdd2f4115d8 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Mon, 17 Feb 2025 10:23:24 +0100 Subject: netlink_linearize: use range expression for OP_EQ and OP_IMPLICIT range expression is available since v4.9-rc1~127^2~67^2~3, replace the two cmp expression when generating netlink bytecode. Code to delinearize the two cmp expressions to represent the range remains in place for backwards compatibility. The delinearize path to parse range expressions with NFT_OP_EQ is already present since: 3ed932917cc7 ("src: use new range expression for != [a,b] intervals") Update tests/py payload accordingly, json tests need no update since they already use the range to represent them. Signed-off-by: Pablo Neira Ayuso --- tests/py/any/ct.t.payload | 9 +++------ tests/py/any/meta.t.payload | 21 +++++++-------------- 2 files changed, 10 insertions(+), 20 deletions(-) (limited to 'tests/py/any') diff --git a/tests/py/any/ct.t.payload b/tests/py/any/ct.t.payload index 14385cf7..60160094 100644 --- a/tests/py/any/ct.t.payload +++ b/tests/py/any/ct.t.payload @@ -172,8 +172,7 @@ ip test-ip4 output ip test-ip4 output [ ct load mark => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] - [ cmp gte reg 1 0x32000000 ] - [ cmp lte reg 1 0x45000000 ] + [ range eq reg 1 0x32000000 0x45000000 ] # ct mark != 0x00000032-0x00000045 ip test-ip4 output @@ -240,8 +239,7 @@ ip test-ip4 output ip test-ip4 output [ ct load expiration => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] - [ cmp gte reg 1 0x60ea0000 ] - [ cmp lte reg 1 0x80ee3600 ] + [ range eq reg 1 0x60ea0000 0x80ee3600 ] # ct expiration > 4d23h59m59s ip test-ip4 output @@ -258,8 +256,7 @@ ip test-ip4 output ip test-ip4 output [ ct load expiration => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] - [ cmp gte reg 1 0xe8800000 ] - [ cmp lte reg 1 0xc8af0000 ] + [ range eq reg 1 0xe8800000 0xc8af0000 ] # ct expiration != 33-45 ip test-ip4 output diff --git a/tests/py/any/meta.t.payload b/tests/py/any/meta.t.payload index 49dd729b..a037e067 100644 --- a/tests/py/any/meta.t.payload +++ b/tests/py/any/meta.t.payload @@ -17,8 +17,7 @@ ip test-ip4 input ip test-ip4 input [ meta load len => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] - [ cmp gte reg 1 0x21000000 ] - [ cmp lte reg 1 0x2d000000 ] + [ range eq reg 1 0x21000000 0x2d000000 ] # meta length != 33-45 ip test-ip4 input @@ -99,8 +98,7 @@ ip test-ip4 input # meta l4proto 33-45 ip test-ip4 input [ meta load l4proto => reg 1 ] - [ cmp gte reg 1 0x00000021 ] - [ cmp lte reg 1 0x0000002d ] + [ range eq reg 1 0x00000021 0x0000002d ] # meta l4proto != 33-45 ip test-ip4 input @@ -385,8 +383,7 @@ ip test-ip4 input ip test-ip4 input [ meta load skuid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] - [ cmp gte reg 1 0xb90b0000 ] - [ cmp lte reg 1 0xbd0b0000 ] + [ range eq reg 1 0xb90b0000 0xbd0b0000 ] [ immediate reg 0 accept ] # meta skuid != 2001-2005 accept @@ -448,8 +445,7 @@ ip test-ip4 input ip test-ip4 input [ meta load skgid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] - [ cmp gte reg 1 0xd1070000 ] - [ cmp lte reg 1 0xd5070000 ] + [ range eq reg 1 0xd1070000 0xd5070000 ] [ immediate reg 0 accept ] # meta skgid != 2001-2005 accept @@ -583,8 +579,7 @@ ip test-ip4 input ip test-ip4 input [ meta load cpu => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] - [ cmp gte reg 1 0x01000000 ] - [ cmp lte reg 1 0x03000000 ] + [ range eq reg 1 0x01000000 0x03000000 ] # meta cpu != 1-2 ip test-ip4 input @@ -703,8 +698,7 @@ ip test-ip4 input ip test-ip4 input [ meta load cgroup => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] - [ cmp gte reg 1 0x01001000 ] - [ cmp lte reg 1 0x02001000 ] + [ range eq reg 1 0x01001000 0x02001000 ] # meta cgroup != 1048577-1048578 ip test-ip4 input @@ -789,8 +783,7 @@ ip test-ip4 input ip test-ip4 input [ meta load priority => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] - [ cmp gte reg 1 0xdadaadbc ] - [ cmp lte reg 1 0xdcdaadbc ] + [ range eq reg 1 0xdadaadbc 0xdcdaadbc ] # meta priority != bcad:dada-bcad:dadc ip test-ip4 input -- cgit v1.2.3