Re: [nft PATCH 3/4] segtree: Merge get_set_interval_find() and get_set_interval_end()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 30, 2020 at 05:52:18PM +0200, Pablo Neira Ayuso wrote:
> On Thu, Apr 30, 2020 at 05:48:42PM +0200, Phil Sutter wrote:
> > On Thu, Apr 30, 2020 at 05:37:29PM +0200, Pablo Neira Ayuso wrote:
> > > On Thu, Apr 30, 2020 at 05:14:07PM +0200, Phil Sutter wrote:
> > > > Both functions were very similar already. Under the assumption that they
> > > > will always either see a range (or start of) that matches exactly or not
> > > > at all, reduce complexity and make get_set_interval_find() accept NULL
> > > > (left or) right values. This way it becomes a full replacement for
> > > > get_set_interval_end().
> > > 
> > > I have to go back to the commit log of this patch, IIRC my intention
> > > here was to allow users to ask for a single element, then return the
> > > range that contains it.
> > 
> > That was my suspicion as well, but while testing I found out that no
> > matter what I passed to 'get element', I couldn't provoke a situation in
> > which get_set_interval_find() would have left and right elements which
> > didn't match exactly (or not at all).
> > 
> > There must be some preparation happening before the call to
> > get_set_decompose() which normalizes things. And still, If I disable the
> > call to get_set_decompose() entirely, tests start failing.
> 
> Hm, so the approximate or exact matching is broken? Or you mean they
> fail because you didn't expect the approximate matching?

It's the opposite: Things are working fine even after my
simplifications. get_set_interval_find() expected left/right values
which sit within a range, e.g. left/right of 22/23 and a set with
element 20-30. But to my surprise, this doesn't happen. With these
example values, left/right are 20/30, i.e. match the range in the set.

That's why I extended tests/shell/testcases/sets/0034get_element_0.
Please have a look if there's a use-case I missed.

Cheers, Phil



[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux