All of lore.kernel.org
 help / color / mirror / Atom feed
From: Phil Sutter <phil@nwl.cc>
To: netfilter-devel@vger.kernel.org
Cc: Florian Westphal <fw@strlen.de>,
	Pablo Neira Ayuso <pablo@netfilter.org>,
	Jan Engelhardt <jengelh@inai.de>
Subject: Re: [iptables PATCH v2 0/8] nft: Implement forward compat for future binaries
Date: Thu, 10 Apr 2025 18:47:44 +0200	[thread overview]
Message-ID: <Z_f2MOsvmG_eKF-S@orbyte.nwl.cc> (raw)
In-Reply-To: <20241009114819.15379-1-phil@nwl.cc>

On Wed, Oct 09, 2024 at 01:48:11PM +0200, Phil Sutter wrote:
> Changes since v1:
> - Split the parser into a separate patch for easier backporting by
>   distributions.
> - Make the writer opt-in, allow users to force the parser fallback at
>   run-time.
> - Document the feature in man pages.
> 
> Time to abandon earlier attempts at providing compatibility for old
> binaries, choose the next best option which is not relying upon any
> kernel changes.
> 
> Basically, all extensions replaced by native bytecode are appended to
> rule userdata so when nftnl rule parsing code fails, it may retry
> omitting all these expressions and restoring an extension from userdata
> instead.
> 
> The idea behind this is that extensions are stable which relieves native
> bytecode from being the same. With this series in place, one may
> (re-)start converting extensions into native nftables bytecode again.
> 
> Appending rule userdata upon creation is inactive by default and enabled
> via --compat option or XTABLES_COMPAT env variable. The parser will fall
> back to userdata automatically if present and parsing fails.
> 
> Patches 1-3 are preparation. Patches 4 and 5 implement the parser side,
> patches 6 and 7 implement the writer and patch 8 finally extends
> iptables-test.py to cover the new code.
> 
> Phil Sutter (8):
>   nft: Make add_log() static
>   nft: ruleparse: Introduce nft_parse_rule_expr()
>   nft: __add_{match,target}() can't fail
>   nft: Introduce UDATA_TYPE_COMPAT_EXT
>   nft-ruleparse: Fallback to compat expressions in userdata
>   nft: Pass nft_handle into add_{action,match}()
>   nft: Embed compat extensions in rule userdata
>   tests: iptables-test: Add nft-compat variant

Series applied.

      parent reply	other threads:[~2025-04-10 16:47 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-09 11:48 [iptables PATCH v2 0/8] nft: Implement forward compat for future binaries Phil Sutter
2024-10-09 11:48 ` [iptables PATCH v2 1/8] nft: Make add_log() static Phil Sutter
2024-10-09 11:48 ` [iptables PATCH v2 2/8] nft: ruleparse: Introduce nft_parse_rule_expr() Phil Sutter
2024-10-09 11:48 ` [iptables PATCH v2 3/8] nft: __add_{match,target}() can't fail Phil Sutter
2024-10-09 11:48 ` [iptables PATCH v2 4/8] nft: Introduce UDATA_TYPE_COMPAT_EXT Phil Sutter
2024-10-09 11:48 ` [iptables PATCH v2 5/8] nft-ruleparse: Fallback to compat expressions in userdata Phil Sutter
2024-10-09 11:48 ` [iptables PATCH v2 6/8] nft: Pass nft_handle into add_{action,match}() Phil Sutter
2024-10-09 11:48 ` [iptables PATCH v2 7/8] nft: Embed compat extensions in rule userdata Phil Sutter
2024-10-09 11:48 ` [iptables PATCH v2 8/8] tests: iptables-test: Add nft-compat variant Phil Sutter
2025-04-10 16:47 ` Phil Sutter [this message]

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=Z_f2MOsvmG_eKF-S@orbyte.nwl.cc \
    --to=phil@nwl.cc \
    --cc=fw@strlen.de \
    --cc=jengelh@inai.de \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pablo@netfilter.org \
    /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.