Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Dec 2013 14:47:26 +0400
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        Kajetan Staszkiewicz <vegeta@tuxpowered.net>
Cc:        "freebsd-pf@freebsd.org" <freebsd-pf@freebsd.org>
Subject:   Re: [patch] Source entries removing is awfully slow.
Message-ID:  <20131205104725.GT48919@glebius.int.ru>
In-Reply-To: <201312051107.39932.vegeta@tuxpowered.net>
References:  <201303081419.17743.vegeta@tuxpowered.net> <201312041529.21788.vegeta@tuxpowered.net> <20131205081848.GQ48919@glebius.int.ru> <201312051107.39932.vegeta@tuxpowered.net>

next in thread | previous in thread | raw e-mail | index | archive | help
  Kajetan,

On Thu, Dec 05, 2013 at 11:07:39AM +0100, Kajetan Staszkiewicz wrote:
K> > K> To have the most clean and simple code it would make the most sense to
K> > use the K> aforementioned pfioc_universal_kill for both DIOCKILLSTATES and
K> > K> DIOCKILLSRCNODES. But that would be a change of kernel api which I
K> > assume can K> not take place inside major release, so translation of
K> > structures is currently K> the way to go. Please correct me if I am wrong.
K> > 
K> > It is okay to add new API.
K> 
K> I was rather thinking about leaving DIOCKILLSTATES and DIOCKILLSRCNODES ioctls 
K> in place but change the structure passed to them to pfioc_universal_killer. So 
K> changint the existing API.

That can't be merged.

K> > So in head we will add new API/ABI, then remove obsoleted one. We will
K> > merge only addition to stable/10, not removal.
K> > 
K> > The ABI constraints for stable branches are the following. Newer kernel
K> > must work with older utilxities. So, 10.1 kernel will work with pfctl from
K> > 10.0, since old ioctls are still supported.
K> 
K> Is recompiling older utilities allowed? Please note that I need to add 
K> ps(n?)k_table to (pfioc_src_nod|stat)e_kill and psnk_killed_states to 
K> psnk_src_node_kill anyway. If not, then we must consider that this patch could 
K> get only into head, and only with struct pfioc_universal_kill. I see no reason 
K> to clean up the old parser without adding the new syntax with new parameters.

Recompiling old utilites is allowed.

So, the plan, that would work sounds like that:

1) Add new ioctl number and new structure. Rewrite pfctl to handle it.
2) Remove old ioctls and structures.
3) Merge 1).

What we achieve:

10.1 kernel understands 10.1 pfctl ans has new functionality.
10.1 kernel understands 10.0 pfctl.

-- 
Totus tuus, Glebius.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131205104725.GT48919>