[IPSEC] Use XFRM_MSG_* instead of XFRM_SAP_*
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 19 Jun 2005 05:44:37 +0000 (22:44 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 19 Jun 2005 05:44:37 +0000 (22:44 -0700)
This patch removes XFRM_SAP_* and converts them over to XFRM_MSG_*.
The netlink interface is meant to map directly onto the underlying
xfrm subsystem.  Therefore rather than using a new independent
representation for the events we can simply use the existing ones
from xfrm_user.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
include/net/xfrm.h
net/key/af_key.c
net/xfrm/xfrm_state.c
net/xfrm/xfrm_user.c

index fda356e810149286f1ba9e2d3bd7d88d507a927e..0e65e02b7a1d3f2a396d370142119e159b5defc7 100644 (file)
@@ -158,18 +158,6 @@ 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
 {
index 3fae5c4b48f616550c09cb12102085de1b189c7e..577f0bb5bb31816bb1ecf94848ae2758d9c2cbcf 100644 (file)
@@ -1248,13 +1248,13 @@ static int pfkey_acquire(struct sock *sk, struct sk_buff *skb, struct sadb_msg *
 static inline int event2poltype(int event)
 {
        switch (event) {
-       case XFRM_SAP_DELETED:
+       case XFRM_MSG_DELPOLICY:
                return SADB_X_SPDDELETE;
-       case XFRM_SAP_ADDED:
+       case XFRM_MSG_NEWPOLICY:
                return SADB_X_SPDADD;
-       case XFRM_SAP_UPDATED:
+       case XFRM_MSG_UPDPOLICY:
                return SADB_X_SPDUPDATE;
-       case XFRM_SAP_EXPIRED:
+       case XFRM_MSG_POLEXPIRE:
        //      return SADB_X_SPDEXPIRE;
        default:
                printk("pfkey: Unknown policy event %d\n", event);
@@ -1267,13 +1267,13 @@ static inline int event2poltype(int event)
 static inline int event2keytype(int event)
 {
        switch (event) {
-       case XFRM_SAP_DELETED:
+       case XFRM_MSG_DELSA:
                return SADB_DELETE;
-       case XFRM_SAP_ADDED:
+       case XFRM_MSG_NEWSA:
                return SADB_ADD;
-       case XFRM_SAP_UPDATED:
+       case XFRM_MSG_UPDSA:
                return SADB_UPDATE;
-       case XFRM_SAP_EXPIRED:
+       case XFRM_MSG_EXPIRE:
                return SADB_EXPIRE;
        default:
                printk("pfkey: Unknown SA event %d\n", event);
@@ -1290,7 +1290,7 @@ static int key_notify_sa(struct xfrm_state *x, struct km_event *c)
        struct sadb_msg *hdr;
        int hsc = 3;
 
-       if (c->event == XFRM_SAP_DELETED)
+       if (c->event == XFRM_MSG_DELSA)
                hsc = 0;
 
        skb = pfkey_xfrm_state2msg(x, 0, hsc);
@@ -1337,9 +1337,9 @@ static int pfkey_add(struct sock *sk, struct sk_buff *skb, struct sadb_msg *hdr,
        }
 
        if (hdr->sadb_msg_type == SADB_ADD)
-               c.event = XFRM_SAP_ADDED;
+               c.event = XFRM_MSG_NEWSA;
        else
-               c.event = XFRM_SAP_UPDATED;
+               c.event = XFRM_MSG_UPDSA;
        c.seq = hdr->sadb_msg_seq;
        c.pid = hdr->sadb_msg_pid;
        km_state_notify(x, &c);
@@ -1376,7 +1376,7 @@ static int pfkey_delete(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
 
        c.seq = hdr->sadb_msg_seq;
        c.pid = hdr->sadb_msg_pid;
-       c.event = XFRM_SAP_DELETED;
+       c.event = XFRM_MSG_DELSA;
        km_state_notify(x, &c);
        xfrm_state_put(x);
 
@@ -1552,7 +1552,7 @@ static int pfkey_flush(struct sock *sk, struct sk_buff *skb, struct sadb_msg *hd
        c.data.proto = proto;
        c.seq = hdr->sadb_msg_seq;
        c.pid = hdr->sadb_msg_pid;
-       c.event = XFRM_SAP_FLUSHED;
+       c.event = XFRM_MSG_FLUSHSA;
        km_state_notify(NULL, &c);
 
        return 0;
@@ -1962,7 +1962,7 @@ static int key_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *c
        out_hdr = (struct sadb_msg *) out_skb->data;
        out_hdr->sadb_msg_version = PF_KEY_V2;
 
-       if (c->data.byid && c->event == XFRM_SAP_DELETED)
+       if (c->data.byid && c->event == XFRM_MSG_DELPOLICY)
                out_hdr->sadb_msg_type = SADB_X_SPDDELETE2;
        else
                out_hdr->sadb_msg_type = event2poltype(c->event);
@@ -2058,9 +2058,9 @@ static int pfkey_spdadd(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
        }
 
        if (hdr->sadb_msg_type == SADB_X_SPDUPDATE)
-               c.event = XFRM_SAP_UPDATED;
-       else
-               c.event = XFRM_SAP_ADDED;
+               c.event = XFRM_MSG_UPDPOLICY;
+       else 
+               c.event = XFRM_MSG_NEWPOLICY;
 
        c.seq = hdr->sadb_msg_seq;
        c.pid = hdr->sadb_msg_pid;
@@ -2118,7 +2118,7 @@ static int pfkey_spddelete(struct sock *sk, struct sk_buff *skb, struct sadb_msg
 
        c.seq = hdr->sadb_msg_seq;
        c.pid = hdr->sadb_msg_pid;
-       c.event = XFRM_SAP_DELETED;
+       c.event = XFRM_MSG_DELPOLICY;
        km_policy_notify(xp, pol->sadb_x_policy_dir-1, &c);
 
        xfrm_pol_put(xp);
@@ -2174,7 +2174,7 @@ static int pfkey_spdget(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
        c.pid = hdr->sadb_msg_pid;
        if (hdr->sadb_msg_type == SADB_X_SPDDELETE2) {
                c.data.byid = 1;
-               c.event = XFRM_SAP_DELETED;
+               c.event = XFRM_MSG_DELPOLICY;
                km_policy_notify(xp, pol->sadb_x_policy_dir-1, &c);
        } else {
                err = key_pol_get_resp(sk, xp, hdr, pol->sadb_x_policy_dir-1);
@@ -2238,7 +2238,7 @@ static int pfkey_spdflush(struct sock *sk, struct sk_buff *skb, struct sadb_msg
        struct km_event c;
 
        xfrm_policy_flush();
-       c.event = XFRM_SAP_FLUSHED;
+       c.event = XFRM_MSG_FLUSHPOLICY;
        c.pid = hdr->sadb_msg_pid;
        c.seq = hdr->sadb_msg_seq;
        km_policy_notify(NULL, 0, &c);
@@ -2479,13 +2479,13 @@ static int key_notify_sa_expire(struct xfrm_state *x, struct km_event *c)
 static int pfkey_send_notify(struct xfrm_state *x, struct km_event *c)
 {
        switch (c->event) {
-       case XFRM_SAP_EXPIRED:
+       case XFRM_MSG_EXPIRE:
                return key_notify_sa_expire(x, c);
-       case XFRM_SAP_DELETED:
-       case XFRM_SAP_ADDED:
-       case XFRM_SAP_UPDATED:
+       case XFRM_MSG_DELSA:
+       case XFRM_MSG_NEWSA:
+       case XFRM_MSG_UPDSA:
                return key_notify_sa(x, c);
-       case XFRM_SAP_FLUSHED:
+       case XFRM_MSG_FLUSHSA:
                return key_notify_sa_flush(c);
        default:
                printk("pfkey: Unknown SA event %d\n", c->event);
@@ -2498,13 +2498,13 @@ static int pfkey_send_notify(struct xfrm_state *x, struct km_event *c)
 static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, struct km_event *c)
 {
        switch (c->event) {
-       case XFRM_SAP_EXPIRED:
+       case XFRM_MSG_POLEXPIRE:
                return key_notify_policy_expire(xp, c);
-       case XFRM_SAP_DELETED:
-       case XFRM_SAP_ADDED:
-       case XFRM_SAP_UPDATED:
+       case XFRM_MSG_DELPOLICY:
+       case XFRM_MSG_NEWPOLICY:
+       case XFRM_MSG_UPDPOLICY:
                return key_notify_policy(xp, dir, c);
-       case XFRM_SAP_FLUSHED:
+       case XFRM_MSG_FLUSHPOLICY:
                return key_notify_policy_flush(c);
        default:
                printk("pfkey: Unknown policy event %d\n", c->event);
index e068bd7210504f464703ece5dcb77048a39e5fb7..2537f26f097c8741aa19307e1a909ab1077a681d 100644 (file)
@@ -836,7 +836,7 @@ static void km_state_expired(struct xfrm_state *x, int hard)
        struct km_event c;
 
        c.data.hard = hard;
-       c.event = XFRM_SAP_EXPIRED;
+       c.event = XFRM_MSG_EXPIRE;
        km_state_notify(x, &c);
 
        if (hard)
@@ -884,7 +884,7 @@ void km_policy_expired(struct xfrm_policy *pol, int dir, int hard)
        struct km_event c;
 
        c.data.hard = hard;
-       c.event = XFRM_SAP_EXPIRED;
+       c.event = XFRM_MSG_POLEXPIRE;
        km_policy_notify(pol, dir, &c);
 
        if (hard)
index ff6fc610730ecf4b73bb19e6536bf9f01f1b04ab..bc4fd74568738041b5501d6f0de847f36b23f36d 100644 (file)
@@ -301,10 +301,7 @@ static int xfrm_add_sa(struct sk_buff *skb, struct nlmsghdr *nlh, void **xfrma)
 
        c.seq = nlh->nlmsg_seq;
        c.pid = nlh->nlmsg_pid;
-       if (nlh->nlmsg_type == XFRM_MSG_NEWSA)
-               c.event = XFRM_SAP_ADDED;
-       else
-               c.event = XFRM_SAP_UPDATED;
+       c.event = nlh->nlmsg_type;
 
        km_state_notify(x, &c);
        xfrm_state_put(x);
@@ -336,7 +333,7 @@ static int xfrm_del_sa(struct sk_buff *skb, struct nlmsghdr *nlh, void **xfrma)
 
        c.seq = nlh->nlmsg_seq;
        c.pid = nlh->nlmsg_pid;
-       c.event = XFRM_SAP_DELETED;
+       c.event = nlh->nlmsg_type;
        km_state_notify(x, &c);
        xfrm_state_put(x);
 
@@ -728,11 +725,7 @@ static int xfrm_add_policy(struct sk_buff *skb, struct nlmsghdr *nlh, void **xfr
                return err;
        }
 
-       if (!excl)
-               c.event = XFRM_SAP_UPDATED;
-       else
-               c.event = XFRM_SAP_ADDED;
-
+       c.event = nlh->nlmsg_type;
        c.seq = nlh->nlmsg_seq;
        c.pid = nlh->nlmsg_pid;
        km_policy_notify(xp, p->dir, &c);
@@ -884,7 +877,7 @@ static int xfrm_get_policy(struct sk_buff *skb, struct nlmsghdr *nlh, void **xfr
                }
        } else {
                c.data.byid = p->index;
-               c.event = XFRM_SAP_DELETED;
+               c.event = nlh->nlmsg_type;
                c.seq = nlh->nlmsg_seq;
                c.pid = nlh->nlmsg_pid;
                km_policy_notify(xp, p->dir, &c);
@@ -902,7 +895,7 @@ static int xfrm_flush_sa(struct sk_buff *skb, struct nlmsghdr *nlh, void **xfrma
 
        xfrm_state_flush(p->proto);
        c.data.proto = p->proto;
-       c.event = XFRM_SAP_FLUSHED;
+       c.event = nlh->nlmsg_type;
        c.seq = nlh->nlmsg_seq;
        c.pid = nlh->nlmsg_pid;
        km_state_notify(NULL, &c);
@@ -915,7 +908,7 @@ static int xfrm_flush_policy(struct sk_buff *skb, struct nlmsghdr *nlh, void **x
        struct km_event c;
 
        xfrm_policy_flush();
-       c.event = XFRM_SAP_FLUSHED;
+       c.event = nlh->nlmsg_type;
        c.seq = nlh->nlmsg_seq;
        c.pid = nlh->nlmsg_pid;
        km_policy_notify(NULL, 0, &c);
@@ -1193,7 +1186,6 @@ static int xfrm_notify_sa(struct xfrm_state *x, struct km_event *c)
        struct xfrm_usersa_info *p;
        struct nlmsghdr *nlh;
        struct sk_buff *skb;
-       u32 nlt;
        unsigned char *b;
        int len = xfrm_sa_len(x);
 
@@ -1202,16 +1194,7 @@ static int xfrm_notify_sa(struct xfrm_state *x, struct km_event *c)
                return -ENOMEM;
        b = skb->tail;
 
-       if (c->event == XFRM_SAP_ADDED)
-               nlt = XFRM_MSG_NEWSA;
-       else if (c->event == XFRM_SAP_UPDATED)
-               nlt = XFRM_MSG_UPDSA;
-       else if (c->event == XFRM_SAP_DELETED)
-               nlt = XFRM_MSG_DELSA;
-       else
-               goto nlmsg_failure;
-
-       nlh = NLMSG_PUT(skb, c->pid, c->seq, nlt, sizeof(*p));
+       nlh = NLMSG_PUT(skb, c->pid, c->seq, c->event, sizeof(*p));
        nlh->nlmsg_flags = 0;
 
        p = NLMSG_DATA(nlh);
@@ -1243,13 +1226,13 @@ static int xfrm_send_state_notify(struct xfrm_state *x, struct km_event *c)
 {
 
        switch (c->event) {
-       case XFRM_SAP_EXPIRED:
+       case XFRM_MSG_EXPIRE:
                return xfrm_exp_state_notify(x, c);
-       case XFRM_SAP_DELETED:
-       case XFRM_SAP_UPDATED:
-       case XFRM_SAP_ADDED:
+       case XFRM_MSG_DELSA:
+       case XFRM_MSG_UPDSA:
+       case XFRM_MSG_NEWSA:
                return xfrm_notify_sa(x, c);
-       case XFRM_SAP_FLUSHED:
+       case XFRM_MSG_FLUSHSA:
                return xfrm_notify_sa_flush(c);
        default:
                 printk("xfrm_user: Unknown SA event %d\n", c->event);
@@ -1417,7 +1400,6 @@ static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *
        struct xfrm_userpolicy_info *p;
        struct nlmsghdr *nlh;
        struct sk_buff *skb;
-       u32 nlt = 0 ;
        unsigned char *b;
        int len = RTA_SPACE(sizeof(struct xfrm_user_tmpl) * xp->xfrm_nr);
        len += NLMSG_SPACE(sizeof(struct xfrm_userpolicy_info));
@@ -1427,16 +1409,7 @@ static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *
                return -ENOMEM;
        b = skb->tail;
 
-       if (c->event == XFRM_SAP_ADDED)
-               nlt = XFRM_MSG_NEWPOLICY;
-       else if (c->event == XFRM_SAP_UPDATED)
-               nlt = XFRM_MSG_UPDPOLICY;
-       else if (c->event == XFRM_SAP_DELETED)
-               nlt = XFRM_MSG_DELPOLICY;
-       else
-               goto nlmsg_failure;
-
-       nlh = NLMSG_PUT(skb, c->pid, c->seq, nlt, sizeof(*p));
+       nlh = NLMSG_PUT(skb, c->pid, c->seq, c->event, sizeof(*p));
 
        p = NLMSG_DATA(nlh);
 
@@ -1483,13 +1456,13 @@ static int xfrm_send_policy_notify(struct xfrm_policy *xp, int dir, struct km_ev
 {
 
        switch (c->event) {
-       case XFRM_SAP_ADDED:
-       case XFRM_SAP_UPDATED:
-       case XFRM_SAP_DELETED:
+       case XFRM_MSG_NEWPOLICY:
+       case XFRM_MSG_UPDPOLICY:
+       case XFRM_MSG_DELPOLICY:
                return xfrm_notify_policy(xp, dir, c);
-       case XFRM_SAP_FLUSHED:
+       case XFRM_MSG_FLUSHPOLICY:
                return xfrm_notify_policy_flush(c);
-       case XFRM_SAP_EXPIRED:
+       case XFRM_MSG_POLEXPIRE:
                return xfrm_exp_policy_notify(xp, dir, c);
        default:
                printk("xfrm_user: Unknown Policy event %d\n", c->event);