All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hangbin Liu <hangbin.liu@linux.dev>
To: MPTCP Linux <mptcp@lists.linux.dev>
Subject: Re: [PATCH mptcp-next v2 0/2] selftests: mptcp: convert iptables to nftables
Date: Thu, 3 Sep 2026 10:05:54 +0800	[thread overview]
Message-ID: <apjWApxBPOXac1xa@fedora> (raw)
In-Reply-To: <20260903-mptcp_nft-v2-0-66283e4b9c3b@kylinos.cn>

Hi,

Sorry everyone. Please ignore this version patch as it was post before
I catch up Matthieu's feedback. I will update the patch with a next version.

Hangbin
On Thu, Sep 03, 2026 at 09:12:19AM +0800, Hangbin Liu wrote:
> iptables has been deprecated for years. The Linux kernel has included
> nftables as the successor to iptables since 2014, and every major
> distribution uses nftables as the default packet filtering framework.
> The iptables command we run on modern systems is actually iptables‑nft,
> a compatibility layer that translates iptables syntax to nftables rules
> behind the scenes.
> 
> There are also some features that can be set easily with nft, while we need
> to convert to BPF code under iptables, such as MPTCP add‑addr and
> remove‑addr suboptions. To make future work easier, convert iptables usage
> in mptcp to nftables.
> 
> Tested with iptables-translate to make sure each nft conversion is the same
> with previous one. e.g. for mptcp_sockopt.sh, the ip6tables shows
> 
> bash-5.3# ip6tables -L
> Chain INPUT (policy ACCEPT)
> target     prot opt source               destination
> 
> Chain FORWARD (policy ACCEPT)
> target     prot opt source               destination
> 
> Chain OUTPUT (policy ACCEPT)
> target     prot opt source               destination
> ACCEPT     tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN mark match 0x1
> ACCEPT     tcp  --  anywhere             anywhere             tcp flags:RST/RST mark match 0x0
> ACCEPT     tcp  --  anywhere             anywhere             mark match 0x1
> DROP       tcp  --  anywhere             anywhere             mark match 0x0
> 
> And the backend nft shows like
> 
> bash-5.3# nft list tables
> table ip6 filter
> bash-5.3# nft list table ip6 filter
> table ip6 filter {
>         chain OUTPUT {
>                 type filter hook output priority filter; policy accept;
>                 tcp flags & (fin | syn | rst | ack) == syn meta mark 0x00000001 counter packets 0 bytes 0 accept
>                 tcp flags & rst == rst meta mark 0x00000000 counter packets 0 bytes 0 accept
>                 meta l4proto tcp meta mark 0x00000001 counter packets 0 bytes 0 accept
>                 meta l4proto tcp meta mark 0x00000000 counter packets 0 bytes 0 drop
>         }
> }
> 
> Which matches what we change in the script, except the counter.
> 
> Signed-off-by: Hangbin Liu <liuhangbin@kylinos.cn>
> ---
> Changes in v2:
> - Fix --sync and --tcp-flags RST convert not match issue (sashiko)
> - make sure drop is a number in check_mark. (sashiko)
> - Other than using one inet table, use ip/ip6 tables to retain the same
>   table and chain names used by the original iptables/ip6tables setup.
> - Link to v1: https://lore.kernel.org/r/20260902-mptcp_nft-v1-0-559caa16f410@kylinos.cn
> 
> ---
> Hangbin Liu (2):
>       selftests: mptcp: convert iptables to nftables for mptcp_sockopt.sh
>       selftests: mptcp: convert iptables to nftables for mptcp_join.sh
> 
>  tools/testing/selftests/net/mptcp/config           |   3 +
>  tools/testing/selftests/net/mptcp/mptcp_join.sh    | 142 ++++++++-------------
>  tools/testing/selftests/net/mptcp/mptcp_lib.sh     |   2 +-
>  tools/testing/selftests/net/mptcp/mptcp_sockopt.sh |  51 ++++----
>  4 files changed, 84 insertions(+), 114 deletions(-)
> ---
> base-commit: 8dd2802091fbba563abec55e0455d0e5273c7529
> change-id: 20260902-mptcp_nft-b892782ef929
> 
> Best regards,
> -- 
> Hangbin Liu <liuhangbin@kylinos.cn>
> 

  parent reply	other threads:[~2026-09-03  2:06 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-03  1:12 [PATCH mptcp-next v2 0/2] selftests: mptcp: convert iptables to nftables Hangbin Liu
2026-09-03  1:12 ` [PATCH mptcp-next v2 1/2] selftests: mptcp: convert iptables to nftables for mptcp_sockopt.sh Hangbin Liu
2026-09-03  1:19   ` sashiko-bot
2026-09-03  2:55     ` Hangbin Liu
2026-09-03  1:12 ` [PATCH mptcp-next v2 2/2] selftests: mptcp: convert iptables to nftables for mptcp_join.sh Hangbin Liu
2026-09-03  2:05 ` Hangbin Liu [this message]
2026-09-03  2:20 ` [PATCH mptcp-next v2 0/2] selftests: mptcp: convert iptables to nftables MPTCP CI
2026-09-04 14:59 ` Matthieu Baerts

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=apjWApxBPOXac1xa@fedora \
    --to=hangbin.liu@linux.dev \
    --cc=mptcp@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.