[XFRM]: Introduce a helper to compare id protocol.
Put the helper to header for future use. Based on MIPL2 kernel patch. Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7e49e6de30
commit
5794708f11
2 changed files with 9 additions and 3 deletions
|
@ -9,6 +9,7 @@
|
|||
#include <linux/skbuff.h>
|
||||
#include <linux/socket.h>
|
||||
#include <linux/pfkeyv2.h>
|
||||
#include <linux/ipsec.h>
|
||||
#include <linux/in6.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
|
@ -835,6 +836,11 @@ static inline int xfrm_state_kern(struct xfrm_state *x)
|
|||
return atomic_read(&x->tunnel_users);
|
||||
}
|
||||
|
||||
static inline int xfrm_id_proto_match(u8 proto, u8 userproto)
|
||||
{
|
||||
return (userproto == IPSEC_PROTO_ANY || proto == userproto);
|
||||
}
|
||||
|
||||
/*
|
||||
* xfrm algorithm information
|
||||
*/
|
||||
|
|
|
@ -294,7 +294,7 @@ void xfrm_state_flush(u8 proto)
|
|||
restart:
|
||||
list_for_each_entry(x, xfrm_state_bydst+i, bydst) {
|
||||
if (!xfrm_state_kern(x) &&
|
||||
(proto == IPSEC_PROTO_ANY || x->id.proto == proto)) {
|
||||
xfrm_id_proto_match(x->id.proto, proto)) {
|
||||
xfrm_state_hold(x);
|
||||
spin_unlock_bh(&xfrm_state_lock);
|
||||
|
||||
|
@ -772,7 +772,7 @@ int xfrm_state_walk(u8 proto, int (*func)(struct xfrm_state *, int, void*),
|
|||
spin_lock_bh(&xfrm_state_lock);
|
||||
for (i = 0; i < XFRM_DST_HSIZE; i++) {
|
||||
list_for_each_entry(x, xfrm_state_bydst+i, bydst) {
|
||||
if (proto == IPSEC_PROTO_ANY || x->id.proto == proto)
|
||||
if (xfrm_id_proto_match(x->id.proto, proto))
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
@ -783,7 +783,7 @@ int xfrm_state_walk(u8 proto, int (*func)(struct xfrm_state *, int, void*),
|
|||
|
||||
for (i = 0; i < XFRM_DST_HSIZE; i++) {
|
||||
list_for_each_entry(x, xfrm_state_bydst+i, bydst) {
|
||||
if (proto != IPSEC_PROTO_ANY && x->id.proto != proto)
|
||||
if (!xfrm_id_proto_match(x->id.proto, proto))
|
||||
continue;
|
||||
err = func(x, --count, data);
|
||||
if (err)
|
||||
|
|
Loading…
Reference in a new issue