diff options
author | Masahide NAKAMURA <nakam@linux-ipv6.org> | 2006-08-23 21:08:21 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 18:06:39 -0400 |
commit | fbd9a5b47ee9c319ff0cae584391241ce78ffd6b (patch) | |
tree | 3e6cdcf297e3f82b7ab276e5ffa59abfcb912f44 /net/xfrm/xfrm_state.c | |
parent | f3bd484021d9486b826b422a017d75dd0bd258ad (diff) |
[XFRM] STATE: Common receive function for route optimization extension headers.
XFRM_STATE_WILDRECV flag is introduced; the last resort state is set
it and receives packet which is not route optimized but uses such
extension headers i.e. Mobile IPv6 signaling (binding update and
acknowledgement). A node enabled Mobile IPv6 adds the state.
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/xfrm/xfrm_state.c')
-rw-r--r-- | net/xfrm/xfrm_state.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index 11f480b12952..f05371556cce 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c | |||
@@ -352,6 +352,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr, | |||
352 | list_for_each_entry(x, xfrm_state_bydst+h, bydst) { | 352 | list_for_each_entry(x, xfrm_state_bydst+h, bydst) { |
353 | if (x->props.family == family && | 353 | if (x->props.family == family && |
354 | x->props.reqid == tmpl->reqid && | 354 | x->props.reqid == tmpl->reqid && |
355 | !(x->props.flags & XFRM_STATE_WILDRECV) && | ||
355 | xfrm_state_addr_check(x, daddr, saddr, family) && | 356 | xfrm_state_addr_check(x, daddr, saddr, family) && |
356 | tmpl->mode == x->props.mode && | 357 | tmpl->mode == x->props.mode && |
357 | tmpl->id.proto == x->id.proto && | 358 | tmpl->id.proto == x->id.proto && |