]> err.no Git - linux-2.6/blobdiff - include/net/xfrm.h
KVM: Add fpu get/set operations
[linux-2.6] / include / net / xfrm.h
index 8287081d77f2baf47e7eed0d756b65e5a7bf3c4c..66c2d3eec03c14a75485eb43d57de513c10755cd 100644 (file)
@@ -423,6 +423,18 @@ struct xfrm_sadinfo
        u32 sadhmcnt; /* max allowed hash bkts */
        u32 sadcnt; /* current running count */
 };
+
+struct xfrm_spdinfo
+{
+       u32 incnt;
+       u32 outcnt;
+       u32 fwdcnt;
+       u32 inscnt;
+       u32 outscnt;
+       u32 fwdscnt;
+       u32 spdhcnt;
+       u32 spdhmcnt;
+};
 #ifdef CONFIG_AUDITSYSCALL
 extern void xfrm_audit_log(uid_t auid, u32 secid, int type, int result,
                    struct xfrm_policy *xp, struct xfrm_state *x);
@@ -591,6 +603,10 @@ struct xfrm_dst
                struct rt6_info         rt6;
        } u;
        struct dst_entry *route;
+#ifdef CONFIG_XFRM_SUB_POLICY
+       struct flowi *origin;
+       struct xfrm_selector *partner;
+#endif
        u32 genid;
        u32 route_mtu_cached;
        u32 child_mtu_cached;
@@ -603,6 +619,12 @@ static inline void xfrm_dst_destroy(struct xfrm_dst *xdst)
        dst_release(xdst->route);
        if (likely(xdst->u.dst.xfrm))
                xfrm_state_put(xdst->u.dst.xfrm);
+#ifdef CONFIG_XFRM_SUB_POLICY
+       kfree(xdst->origin);
+       xdst->origin = NULL;
+       kfree(xdst->partner);
+       xdst->partner = NULL;
+#endif
 }
 
 extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev);
@@ -946,6 +968,7 @@ extern struct xfrm_state *xfrm_find_acq_byseq(u32 seq);
 extern int xfrm_state_delete(struct xfrm_state *x);
 extern void xfrm_state_flush(u8 proto, struct xfrm_audit *audit_info);
 extern void xfrm_sad_getinfo(struct xfrm_sadinfo *si);
+extern void xfrm_spd_getinfo(struct xfrm_spdinfo *si);
 extern int xfrm_replay_check(struct xfrm_state *x, __be32 seq);
 extern void xfrm_replay_advance(struct xfrm_state *x, __be32 seq);
 extern void xfrm_replay_notify(struct xfrm_state *x, int event);