[Swan-dev] linux: pluto use kernel SA attribute XFRMA_LASTUSED
Antony Antony
antony at phenome.org
Mon Feb 6 18:38:03 EET 2023
On Fri, Feb 03, 2023 at 10:25:47AM -0500, Paul Wouters wrote:
> On Fri, 3 Feb 2023, Antony Antony wrote:
> Ofcourse, a side effect of doing this was that we _did_ update the
> byte counters so every time the dpddelay period was reached, or a whack
> status or delete was issued, we would update the traffic counters. That
> is probably a good thing to keep. Althoug that makes the addition of
> the fixed lastused less useful to us. But I guess it does end up getting
> more precision with lastused, then our "now" handling evert dpddelay
> time. So that's good to have.
>
> All of this could ofcourse go away if the kernel could send us an "idle"
> callback, but I think that's still not there right?
I don't know any! I feel there was a lot confusion among us, swan
programmers, around last used and we came up with workarounds.
If you look again, with lastused updated for every packet pluto polling
would be simple and possibly scalable. Now pluto can control the rate of
polling from kernel. Otherwise userspsece/pluto would complain receiving too
many idle messages! Think of up link going down, and several 1000s of SAs
become idle at once. The idle timer for all 1000s of SAs go off at once in
the kernel, and the kernel would send 1000s of messages, possibly faster
than pluto would be able to handle them. For each message Pluto would
create IKE informational message, and send it. Likely retransmit IKE
message and timeout? And then delete... I imagine handling of large number
of kernel events would get complex very soon... Uplink going down would
happen from time time. I feel pluto polling is better.
Having said that may be there are ways to implement smart timers in kernel
who knows! In an ideal world lastused update would have been fixed 10 years
ago!
More information about the Swan-dev
mailing list