]> err.no Git - linux-2.6/blobdiff - include/net/xfrm.h
Merge upstream (approx. 2.6.12-git8) into 'janitor' branch of netdev-2.6.
[linux-2.6] / include / net / xfrm.h
index a159655ebedee033b4d32db388da7ce21babded2..029522a4cedab6c3f5ef61f56ce61cb5fe4714e4 100644 (file)
@@ -158,22 +158,15 @@ enum {
        XFRM_STATE_DEAD
 };
 
-/* events that could be sent by kernel */
-enum {
-       XFRM_SAP_INVALID,
-       XFRM_SAP_EXPIRED,
-       XFRM_SAP_ADDED,
-       XFRM_SAP_UPDATED,
-       XFRM_SAP_DELETED,
-       XFRM_SAP_FLUSHED,
-       __XFRM_SAP_MAX
-};
-#define XFRM_SAP_MAX (__XFRM_SAP_MAX - 1)
-
 /* callback structure passed from either netlink or pfkey */
 struct km_event
 {
-       u32     data;
+       union {
+               u32 hard;
+               u32 proto;
+               u32 byid;
+       } data;
+
        u32     seq;
        u32     pid;
        u32     event;
@@ -211,6 +204,7 @@ struct xfrm_state_afinfo {
        rwlock_t                lock;
        struct list_head        *state_bydst;
        struct list_head        *state_byspi;
+       int                     (*init_flags)(struct xfrm_state *x);
        void                    (*init_tempsel)(struct xfrm_state *x, struct flowi *fl,
                                                struct xfrm_tmpl *tmpl,
                                                xfrm_address_t *daddr, xfrm_address_t *saddr);
@@ -232,7 +226,7 @@ struct xfrm_type
        struct module           *owner;
        __u8                    proto;
 
-       int                     (*init_state)(struct xfrm_state *x, void *args);
+       int                     (*init_state)(struct xfrm_state *x);
        void                    (*destructor)(struct xfrm_state *);
        int                     (*input)(struct xfrm_state *, struct xfrm_decap_state *, struct sk_buff *skb);
        int                     (*post_input)(struct xfrm_state *, struct xfrm_decap_state *, struct sk_buff *skb);
@@ -679,7 +673,7 @@ static inline int xfrm_sk_clone_policy(struct sock *sk)
        return 0;
 }
 
-extern void xfrm_policy_delete(struct xfrm_policy *pol, int dir);
+extern int xfrm_policy_delete(struct xfrm_policy *pol, int dir);
 
 static inline void xfrm_sk_free_policy(struct sock *sk)
 {
@@ -846,6 +840,7 @@ extern int xfrm_replay_check(struct xfrm_state *x, u32 seq);
 extern void xfrm_replay_advance(struct xfrm_state *x, u32 seq);
 extern int xfrm_state_check(struct xfrm_state *x, struct sk_buff *skb);
 extern int xfrm_state_mtu(struct xfrm_state *x, int mtu);
+extern int xfrm_init_state(struct xfrm_state *x);
 extern int xfrm4_rcv(struct sk_buff *skb);
 extern int xfrm4_output(struct sk_buff *skb);
 extern int xfrm4_tunnel_register(struct xfrm_tunnel *handler);