From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Phil Sutter <phil@nwl.cc>, netfilter-devel@vger.kernel.org
Subject: Re: [PATCH nf] netfilter: nf_tables: do not refresh timeout when resetting element
Date: Tue, 3 Oct 2023 00:17:53 +0200 [thread overview]
Message-ID: <ZRtBkeP9TYJ10Nrm@calendula> (raw)
In-Reply-To: <ZRs7H7C/Xr7dbRc7@calendula>
On Mon, Oct 02, 2023 at 11:50:25PM +0200, Pablo Neira Ayuso wrote:
> On Mon, Oct 02, 2023 at 08:06:42PM +0200, Phil Sutter wrote:
> > On Mon, Oct 02, 2023 at 11:05:16AM +0200, Pablo Neira Ayuso wrote:
> > > The dump and reset command should not refresh the timeout, this command
> > > is intended to allow users to list existing stateful objects and reset
> > > them, element expiration should be refresh via transaction instead with
> > > a specific command to achieve this, otherwise this is entering combo
> > > semantics that will be hard to be undone later (eg. a user asking to
> > > retrieve counters but _not_ requiring to refresh expiration).
> >
> > From a users' perspective, what is special about the element expires
> > value disqualifying it from being reset along with any counter/quota
> > values?
> >
> > Do you have a PoC for set element reset via transaction yet? Can we
> > integrate non-timeout resets with it, too? Because IIUC, that's an
> > alternative to the pending reset locking.
>
> Problem is listing is not supported from transaction path, this is
> using existing netlink dump infrastructure which runs lockless via
> rcu. So we could support reset, but we could not use netlink dump
> semantics to fetch the values, and user likely wants this to
> fetch-and-reset as in ctnetlink.
Well, with NLM_F_ECHO, it should be possible to explore reset under
commit_mutex, but is it really worth the effort?
With two concurrent threads, we just want to ensure that no invalid
state shows in the listing (you mentioned it is possible to list
negative values with two threads listing-and-resetting at the same
time).
I think we should just make sure something valid is included in the
listing, but as for the two threads performing list-and-reset, why
ensure strict serialization?
This is a rare operation to fetch statistics, most likely having a
single process performing this in place? So we are currently
discussing how to fix the (negative) non-sense in the listing.
> > What we have now is a broad 'reset element', not specifying what to
> > reset. If the above is a feature being asked for, I'd rather implement
> > 'reset element counter', 'reset element timeout', 'reset element quota',
> > etc. commands.
>
> We are currently discussing how to implement refresh timeout into the
> transaction model.
>
> I would suggest we keep this chunk away by now for the _RESET command,
> until we agree on next steps.
next prev parent reply other threads:[~2023-10-02 22:18 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-02 9:05 [PATCH nf] netfilter: nf_tables: do not refresh timeout when resetting element Pablo Neira Ayuso
2023-10-02 9:07 ` Florian Westphal
2023-10-02 18:06 ` Phil Sutter
2023-10-02 21:50 ` Pablo Neira Ayuso
2023-10-02 22:17 ` Pablo Neira Ayuso [this message]
2023-10-02 22:55 ` Phil Sutter
2023-10-03 7:46 ` Pablo Neira Ayuso
2023-10-03 15:57 ` Phil Sutter
2023-10-03 17:21 ` Pablo Neira Ayuso
2023-10-03 17:52 ` Phil Sutter
2023-10-03 18:03 ` Pablo Neira Ayuso
2023-10-03 20:12 ` Phil Sutter
2023-10-04 8:01 ` Pablo Neira Ayuso
2023-10-04 8:07 ` Florian Westphal
2023-10-04 8:23 ` Pablo Neira Ayuso
2023-10-04 8:46 ` Florian Westphal
2023-10-04 9:27 ` Pablo Neira Ayuso
2023-10-04 12:48 ` Florian Westphal
2023-10-04 14:32 ` Pablo Neira Ayuso
2023-10-10 12:48 ` Phil Sutter
2023-10-10 13:18 ` Phil Sutter
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=ZRtBkeP9TYJ10Nrm@calendula \
--to=pablo@netfilter.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=phil@nwl.cc \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).