This patch series add nftables tunnel expression, statement and object support. The implementation was splitted in multiple patches to ease the review process. All the tests are passing and no memory leaks were detected with valgrind enabled. Please notice this series requires the following patches: * libnftnl: - https://lore.kernel.org/netfilter-devel/20250527193420.9860-1-fmancera@xxxxxxx/T/#t * Linux kernel (already applied on net-next): - https://lore.kernel.org/netfilter-devel/20250521094108.23690-1-fmancera@xxxxxxx/T/#u Fernando Fernandez Mancera (4): tunnel: add vxlan support tunnel: add geneve support tunnel: add tunnel object and statement json support tests: add tunnel shell and python tests Pablo Neira Ayuso (3): src: add tunnel template support tunnel: add erspan support src: add tunnel statement and expression support Makefile.am | 2 + include/expression.h | 6 + include/json.h | 1 + include/parser.h | 1 + include/rule.h | 49 ++++ include/tunnel.h | 37 +++ src/cache.c | 2 + src/evaluate.c | 30 +++ src/expression.c | 1 + src/json.c | 99 +++++++- src/mnl.c | 77 ++++++ src/netlink.c | 121 +++++++++ src/netlink_delinearize.c | 17 ++ src/netlink_linearize.c | 14 ++ src/parser_bison.y | 236 +++++++++++++++++- src/parser_json.c | 190 ++++++++++++++ src/rule.c | 178 ++++++++++++- src/scanner.l | 24 +- src/statement.c | 1 + src/tunnel.c | 94 +++++++ tests/py/netdev/tunnel.t | 7 + tests/py/netdev/tunnel.t.json | 45 ++++ tests/py/netdev/tunnel.t.json.payload | 12 + tests/py/netdev/tunnel.t.payload | 12 + tests/shell/features/tunnel.nft | 17 ++ tests/shell/testcases/sets/0075tunnel_0 | 75 ++++++ .../sets/dumps/0075tunnel_0.json-nft | 171 +++++++++++++ .../testcases/sets/dumps/0075tunnel_0.nft | 63 +++++ 28 files changed, 1568 insertions(+), 14 deletions(-) create mode 100644 include/tunnel.h create mode 100644 src/tunnel.c create mode 100644 tests/py/netdev/tunnel.t create mode 100644 tests/py/netdev/tunnel.t.json create mode 100644 tests/py/netdev/tunnel.t.json.payload create mode 100644 tests/py/netdev/tunnel.t.payload create mode 100644 tests/shell/features/tunnel.nft create mode 100755 tests/shell/testcases/sets/0075tunnel_0 create mode 100644 tests/shell/testcases/sets/dumps/0075tunnel_0.json-nft create mode 100644 tests/shell/testcases/sets/dumps/0075tunnel_0.nft -- 2.49.0