diff options
author | Timo Teräs <timo.teras@iki.fi> | 2010-04-07 00:30:04 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-07 03:43:18 -0700 |
commit | fe1a5f031e76bd8761a7803d75b95ee96e84a574 (patch) | |
tree | c74392cef02c1529b00df6c5d0b8f4239fe091c3 /include/net/xfrm.h | |
parent | 8020eb82d4c37d21dade0abeb8feed265a01819e (diff) | |
download | op-kernel-dev-fe1a5f031e76bd8761a7803d75b95ee96e84a574.zip op-kernel-dev-fe1a5f031e76bd8761a7803d75b95ee96e84a574.tar.gz |
flow: virtualize flow cache entry methods
This allows to validate the cached object before returning it.
It also allows to destruct object properly, if the last reference
was held in flow cache. This is also a prepartion for caching
bundles in the flow cache.
In return for virtualizing the methods, we save on:
- not having to regenerate the whole flow cache on policy removal:
each flow matching a killed policy gets refreshed as the getter
function notices it smartly.
- we do not have to call flow_cache_flush from policy gc, since the
flow cache now properly deletes the object if it had any references
Signed-off-by: Timo Teras <timo.teras@iki.fi>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/xfrm.h')
-rw-r--r-- | include/net/xfrm.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index d74e080b..35396e2 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h @@ -19,6 +19,7 @@ #include <net/route.h> #include <net/ipv6.h> #include <net/ip6_fib.h> +#include <net/flow.h> #include <linux/interrupt.h> @@ -481,6 +482,7 @@ struct xfrm_policy { atomic_t refcnt; struct timer_list timer; + struct flow_cache_object flo; u32 priority; u32 index; struct xfrm_mark mark; |