lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <18030.40935.850541.752953@robur.slu.se>
Date:	Tue, 12 Jun 2007 15:30:15 +0200
From:	Robert Olsson <Robert.Olsson@...a.slu.se>
To:	hadi@...erus.ca
Cc:	Robert Olsson <Robert.Olsson@...a.slu.se>,
	David Miller <davem@...emloft.net>,
	Herbert Xu <herbert@...dor.apana.org.au>,
	netdev@...r.kernel.org, James Morris <jmorris@...ei.org>
Subject: [PATCH] pktgen IPSEC 3/4: Introduce xfrm SAD only lookup


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 <hadi@...erus.ca>
 

 xfrm is not my area..... 

 Acked-by: Robert Olsson <robert.olsson@....uu.se>

 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 majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ