summaryrefslogtreecommitdiffstats
path: root/net/ipv6/xfrm6_state.c
diff options
context:
space:
mode:
authorMasahide NAKAMURA <nakam@linux-ipv6.org>2006-08-24 02:53:57 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2006-09-23 00:06:34 +0200
commit6c44e6b7ab500d7e3e3f406c83325671be51a752 (patch)
treed68b6347f4e437cd4aac9444ed9ee323f73eb06c /net/ipv6/xfrm6_state.c
parent[XFRM]: Expand XFRM_MAX_DEPTH for route optimization. (diff)
downloadlinux-6c44e6b7ab500d7e3e3f406c83325671be51a752.tar.xz
linux-6c44e6b7ab500d7e3e3f406c83325671be51a752.zip
[XFRM] STATE: Add source address list.
Support source address based searching. Mobile IPv6 will use it. Based on MIPL2 kernel patch. Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/xfrm6_state.c')
-rw-r--r--net/ipv6/xfrm6_state.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv6/xfrm6_state.c b/net/ipv6/xfrm6_state.c
index a1a1f5476442..2fb07850449f 100644
--- a/net/ipv6/xfrm6_state.c
+++ b/net/ipv6/xfrm6_state.c
@@ -126,6 +126,9 @@ __xfrm6_find_acq(u8 mode, u32 reqid, u8 proto,
add_timer(&x0->timer);
xfrm_state_hold(x0);
list_add_tail(&x0->bydst, xfrm6_state_afinfo.state_bydst+h);
+ h = __xfrm6_src_hash(saddr);
+ xfrm_state_hold(x0);
+ list_add_tail(&x0->bysrc, xfrm6_state_afinfo.state_bysrc+h);
wake_up(&km_waitq);
}
if (x0)