Subject: Re: [RFC] State resolution packet queue for IPsec

From: Steffen Klassert <[email-masked]>
Date: Mon, 4 Feb 2013 09:25:27 +0100

On Tue, Jan 22, 2013 at 12:10:29PM +0100, Steffen Klassert wrote:
> On Mon, Jan 21, 2013 at 04:17:16PM -0500, David Miller wrote:
> > 
> > This is probably the best way to solve this problem without adding
> > xfrm_state resolution notifications.
> > 
> > But really why would notifications be so bad even if they would not
> > be fine grained?
> > 
> > Any time a state is resolved, any state, you run what you have put
> > currently into this new timer function.
> > 
> 
> When we use state resolution notifiers, we have two problems.
> First, we would probably not dequeue the packets on the same
> cpu we enqueued them, this can introduce packet reorder. The
> timer will at least try to run on the local cpu.
> 
> Second, as you already mentioned, even with state resolution
> notifiers, we don't know if the inserted state is the one we
> need and if our state bundle is complete with this state.
> We would need to do a lookup whenever a state is inserted,
> so we hog the cpu that tries to insert the states we need.
> 
> With the timer, we don't have these two problems for the price
> that we have take a good choice on the relookup intervals.
> Not sure what's better here.
> 

I'd apply the timer version to ipsec-next if there are no objections.
We can still tune it if something does not perform well.