From f6ed51374fc2a6a1841b45adf180544b8ba421ae Mon Sep 17 00:00:00 2001 From: Jamal Hadi Salim Date: Sat, 2 Dec 2006 22:22:25 -0800 Subject: [PATCH] --- yaml --- r: 42003 b: refs/heads/master c: 2b5f6dcce5bf94b9b119e9ed8d537098ec61c3d2 h: refs/heads/master i: 42001: 13415d9d95e31104706d64516e0ef2789801641e 41999: 0aa2a6140d17f5963ba865d883f70b2f2d6cade2 v: v3 --- [refs] | 2 +- trunk/Documentation/networking/xfrm_sync.txt | 5 ++++- trunk/include/linux/xfrm.h | 2 ++ trunk/net/xfrm/xfrm_user.c | 4 +++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 077d87637998..764fcc3688a7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 02dba025b0bc881432cf325bfb124fae523087d5 +refs/heads/master: 2b5f6dcce5bf94b9b119e9ed8d537098ec61c3d2 diff --git a/trunk/Documentation/networking/xfrm_sync.txt b/trunk/Documentation/networking/xfrm_sync.txt index 8be626f7c0b8..d7aac9dedeb4 100644 --- a/trunk/Documentation/networking/xfrm_sync.txt +++ b/trunk/Documentation/networking/xfrm_sync.txt @@ -47,10 +47,13 @@ aevent_id structure looks like: struct xfrm_aevent_id { struct xfrm_usersa_id sa_id; + xfrm_address_t saddr; __u32 flags; + __u32 reqid; }; -xfrm_usersa_id in this message layout identifies the SA. +The unique SA is identified by the combination of xfrm_usersa_id, +reqid and saddr. flags are used to indicate different things. The possible flags are: diff --git a/trunk/include/linux/xfrm.h b/trunk/include/linux/xfrm.h index 7907c42bd4e4..088ba8113f7e 100644 --- a/trunk/include/linux/xfrm.h +++ b/trunk/include/linux/xfrm.h @@ -289,7 +289,9 @@ struct xfrm_usersa_id { struct xfrm_aevent_id { struct xfrm_usersa_id sa_id; + xfrm_address_t saddr; __u32 flags; + __u32 reqid; }; struct xfrm_userspi_info { diff --git a/trunk/net/xfrm/xfrm_user.c b/trunk/net/xfrm/xfrm_user.c index 055b72fb37bc..6f97665983d2 100644 --- a/trunk/net/xfrm/xfrm_user.c +++ b/trunk/net/xfrm/xfrm_user.c @@ -1281,10 +1281,12 @@ static int build_aevent(struct sk_buff *skb, struct xfrm_state *x, struct km_eve id = NLMSG_DATA(nlh); nlh->nlmsg_flags = 0; - id->sa_id.daddr = x->id.daddr; + memcpy(&id->sa_id.daddr, &x->id.daddr,sizeof(x->id.daddr)); id->sa_id.spi = x->id.spi; id->sa_id.family = x->props.family; id->sa_id.proto = x->id.proto; + memcpy(&id->saddr, &x->props.saddr,sizeof(x->props.saddr)); + id->reqid = x->props.reqid; id->flags = c->data.aevent; RTA_PUT(skb, XFRMA_REPLAY_VAL, sizeof(x->replay), &x->replay);