On Thu, 5 Oct 2006, Venkat Yekkirala wrote:

> > > -         if (xfrm_policy_match(pol, fl, type, family, dir)) {
> > > +         err = xfrm_policy_match(pol, fl, type, family, dir);
> > > +         if (err) {
> > > +                 if (err == -ESRCH)
> > > +                         continue;
> > > +                 else {
> > > +                         ret = ERR_PTR(err);
> > > +                         goto fail;
> > > +                 }
> > > +         } else {
> > 
> > Semantics issue: if the exact policy match fails with 
> > -EACCESS, should we 
> > then try an inexact match before failing?
> 
> I wonder what you mean by an inexact match here.

There are two policy chains in the kernel: 'bydst'for non-prefixed 
addresses (e.g. /32 or /128 nodes) and 'byidx' for prefixed addresses.

xfrm_policy_lookup_bytype() first checks for a non-prefixed match and then 
for a prefixed match with a higher priority mark.

So, I wonder if it makes sense to continue on to the prefixed lookup if we 
get an -EACCESS on the non-prefixed lookup.

Perhaps some further discussion on this with MLS folk is needed, but in 
any case, I don't think it should block this patchset going in as a 
bugfix, as the behavior can be changed in a further patch if required.


- James
-- 
James Morris
<[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to