jamal writes:
 > 3 of 4 ..

 >     [XFRM] Introduce standalone SAD lookup
 >     This allows other in-kernel functions to do SAD lookups.
 >     The only known user at the moment is pktgen.
 >     
 >     Signed-off-by: Jamal Hadi Salim <[EMAIL PROTECTED]>
 

 xfrm is not my area..... 

 Acked-by: Robert Olsson <[EMAIL PROTECTED]>

 Cheers
                                        --ro


 > 
 > diff --git a/include/net/xfrm.h b/include/net/xfrm.h
 > index 311f25a..79d2c37 100644
 > --- a/include/net/xfrm.h
 > +++ b/include/net/xfrm.h
 > @@ -920,6 +920,10 @@ extern struct xfrm_state 
 > *xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t
 >                                        struct flowi *fl, struct xfrm_tmpl 
 > *tmpl,
 >                                        struct xfrm_policy *pol, int *err,
 >                                        unsigned short family);
 > +extern struct xfrm_state * xfrm_stateonly_find(xfrm_address_t *daddr,
 > +                                           xfrm_address_t *saddr,
 > +                                           unsigned short family,
 > +                                           u8 mode, u8 proto, u32 reqid);
 >  extern int xfrm_state_check_expire(struct xfrm_state *x);
 >  extern void xfrm_state_insert(struct xfrm_state *x);
 >  extern int xfrm_state_add(struct xfrm_state *x);
 > diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
 > index 85f3f43..b8562e4 100644
 > --- a/net/xfrm/xfrm_state.c
 > +++ b/net/xfrm/xfrm_state.c
 > @@ -686,6 +686,41 @@ out:
 >      return x;
 >  }
 >  
 > +struct xfrm_state *
 > +xfrm_stateonly_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
 > +                unsigned short family, u8 mode, u8 proto, u32 reqid)
 > +{
 > +    unsigned int h = xfrm_dst_hash(daddr, saddr, reqid, family);
 > +    struct xfrm_state *rx = NULL, *x = NULL;
 > +    struct hlist_node *entry;
 > +
 > +    spin_lock(&xfrm_state_lock);
 > +    hlist_for_each_entry(x, entry, xfrm_state_bydst+h, bydst) {
 > +            if (x->props.family == family &&
 > +                x->props.reqid == reqid &&
 > +                !(x->props.flags & XFRM_STATE_WILDRECV) &&
 > +                xfrm_state_addr_check(x, daddr, saddr, family) &&
 > +                mode == x->props.mode &&
 > +                proto == x->id.proto)  {
 > +
 > +                    if (x->km.state != XFRM_STATE_VALID)
 > +                                    continue;
 > +                    else {
 > +                            rx = x;
 > +                            break;
 > +                    }
 > +            }
 > +    }
 > +
 > +    if (rx)
 > +            xfrm_state_hold(rx);
 > +    spin_unlock(&xfrm_state_lock);
 > +
 > +
 > +    return rx;
 > +}
 > +EXPORT_SYMBOL(xfrm_stateonly_find);
 > +
 >  static void __xfrm_state_insert(struct xfrm_state *x)
 >  {
 >      unsigned int h;
-
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