[PATCH v1 0/6] netlink netfilter decoder

Mathis Marion Mathis.Marion at silabs.com
Thu Jun 12 09:56:00 UTC 2025


From: Mathis Marion <mathis.marion at silabs.com>

Hello,

I have been using strace to analyze the nftables kernel API, and ended
up implementing some decoders. This is by no means complete, but I
included already quite a lot of attributes. I hope that the community
will find this valuable.

I manually tested this series using 'strace nft', but I am opened to
spend a bit of time on writing unit tests if necessary. Testing all
attributes seems unreasonable though so I am interested to know more
about the project's expectations.

Mathis Marion (6):
  netlink_netfilter: decode base attributes
  netlink_netfilter: decode expressions
  netlink_netfilter: decode set elements
  netlink_netfilter: decode enums and flags
  netlink_netfilter: decode counters
  netlink_netfilter: decode hooks

 src/netlink_netfilter.c             | 565 ++++++++++++++++++++++++++++
 src/xlat/nft_chain_attrs.in         |  15 +
 src/xlat/nft_chain_flags.in         |   4 +
 src/xlat/nft_cmp_attrs.in           |   6 +
 src/xlat/nft_cmp_ops.in             |   8 +
 src/xlat/nft_counter_attrs.in       |   6 +
 src/xlat/nft_data_attrs.in          |   5 +
 src/xlat/nft_device_attrs.in        |   4 +
 src/xlat/nft_expr_attrs.in          |   5 +
 src/xlat/nft_flowtable_attrs.in     |  10 +
 src/xlat/nft_flowtable_flags.in     |   3 +
 src/xlat/nft_gen_attrs.in           |   6 +
 src/xlat/nft_hook_attrs.in          |   7 +
 src/xlat/nft_immediate_attrs.in     |   5 +
 src/xlat/nft_list_attrs.in          |   4 +
 src/xlat/nft_lookup_attrs.in        |   8 +
 src/xlat/nft_meta_attrs.in          |   6 +
 src/xlat/nft_meta_keys.in           |  38 ++
 src/xlat/nft_obj_attrs.in           |  11 +
 src/xlat/nft_objects.in             |  12 +
 src/xlat/nft_payload_attrs.in       |  11 +
 src/xlat/nft_payload_bases.in       |   7 +
 src/xlat/nft_payload_csum_flags.in  |   2 +
 src/xlat/nft_payload_csum_types.in  |   5 +
 src/xlat/nft_registers.in           |  23 ++
 src/xlat/nft_rule_attrs.in          |  14 +
 src/xlat/nft_set_attrs.in           |  21 ++
 src/xlat/nft_set_elem_attrs.in      |  14 +
 src/xlat/nft_set_elem_flags.in      |   3 +
 src/xlat/nft_set_elem_list_attrs.in |   7 +
 src/xlat/nft_set_flags.in           |  10 +
 src/xlat/nft_set_policies.in        |   4 +
 src/xlat/nft_table_attrs.in         |  10 +
 src/xlat/nft_table_flags.in         |   4 +
 src/xlat/nft_trace_attrs.in         |  20 +
 src/xlat/nft_trace_types.in         |   6 +
 src/xlat/nft_verdict_attrs.in       |   6 +
 src/xlat/nft_verdicts.in            |  12 +
 38 files changed, 907 insertions(+)
 create mode 100644 src/xlat/nft_chain_attrs.in
 create mode 100644 src/xlat/nft_chain_flags.in
 create mode 100644 src/xlat/nft_cmp_attrs.in
 create mode 100644 src/xlat/nft_cmp_ops.in
 create mode 100644 src/xlat/nft_counter_attrs.in
 create mode 100644 src/xlat/nft_data_attrs.in
 create mode 100644 src/xlat/nft_device_attrs.in
 create mode 100644 src/xlat/nft_expr_attrs.in
 create mode 100644 src/xlat/nft_flowtable_attrs.in
 create mode 100644 src/xlat/nft_flowtable_flags.in
 create mode 100644 src/xlat/nft_gen_attrs.in
 create mode 100644 src/xlat/nft_hook_attrs.in
 create mode 100644 src/xlat/nft_immediate_attrs.in
 create mode 100644 src/xlat/nft_list_attrs.in
 create mode 100644 src/xlat/nft_lookup_attrs.in
 create mode 100644 src/xlat/nft_meta_attrs.in
 create mode 100644 src/xlat/nft_meta_keys.in
 create mode 100644 src/xlat/nft_obj_attrs.in
 create mode 100644 src/xlat/nft_objects.in
 create mode 100644 src/xlat/nft_payload_attrs.in
 create mode 100644 src/xlat/nft_payload_bases.in
 create mode 100644 src/xlat/nft_payload_csum_flags.in
 create mode 100644 src/xlat/nft_payload_csum_types.in
 create mode 100644 src/xlat/nft_registers.in
 create mode 100644 src/xlat/nft_rule_attrs.in
 create mode 100644 src/xlat/nft_set_attrs.in
 create mode 100644 src/xlat/nft_set_elem_attrs.in
 create mode 100644 src/xlat/nft_set_elem_flags.in
 create mode 100644 src/xlat/nft_set_elem_list_attrs.in
 create mode 100644 src/xlat/nft_set_flags.in
 create mode 100644 src/xlat/nft_set_policies.in
 create mode 100644 src/xlat/nft_table_attrs.in
 create mode 100644 src/xlat/nft_table_flags.in
 create mode 100644 src/xlat/nft_trace_attrs.in
 create mode 100644 src/xlat/nft_trace_types.in
 create mode 100644 src/xlat/nft_verdict_attrs.in
 create mode 100644 src/xlat/nft_verdicts.in

-- 
2.47.2



More information about the Strace-devel mailing list