diff options
author | Bjoern A. Zeeb <bz@FreeBSD.org> | 2012-02-03 13:08:44 +0000 |
---|---|---|
committer | Bjoern A. Zeeb <bz@FreeBSD.org> | 2012-02-03 13:08:44 +0000 |
commit | 81d5d46b3c4e0cf91258e86120d42e344c127769 (patch) | |
tree | 9e5e8922865a203ccca320c42f6551d953b9b13c /sys/netipsec | |
parent | a84986256fd3db9fcf8b9e443846603efb59ba5b (diff) | |
download | src-81d5d46b3c4e0cf91258e86120d42e344c127769.tar.gz src-81d5d46b3c4e0cf91258e86120d42e344c127769.zip |
Add multi-FIB IPv6 support to the core network stack supplementing
the original IPv4 implementation from r178888:
- Use RT_DEFAULT_FIB in the IPv4 implementation where noticed.
- Use rt*fib() KPI with explicit RT_DEFAULT_FIB where applicable in
the NFS code.
- Use the new in6_rt* KPI in TCP, gif(4), and the IPv6 network stack
where applicable.
- Split in6_rtqtimo() and in6_mtutimo() as done in IPv4 and equally
prevent multiple initializations of callouts in in6_inithead().
- Use wrapper functions where needed to preserve the current KPI to
ease MFCs. Use BURN_BRIDGES to indicate expected future cleanup.
- Fix (related) comments (both technical or style).
- Convert to rtinit() where applicable and only use custom loops where
currently not possible otherwise.
- Multicast group, most neighbor discovery address actions and faith(4)
are locked to the default FIB. Individual IPv6 addresses will only
appear in the default FIB, however redirect information and prefixes
of connected subnets are automatically propagated to all FIBs by
default (mimicking IPv4 behavior as closely as possible).
Sponsored by: Cisco Systems, Inc.
Notes
Notes:
svn path=/projects/multi-fibv6/head/; revision=230942
Diffstat (limited to 'sys/netipsec')
-rw-r--r-- | sys/netipsec/ipsec_output.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netipsec/ipsec_output.c b/sys/netipsec/ipsec_output.c index 77897ed24296..38268f7ae1f0 100644 --- a/sys/netipsec/ipsec_output.c +++ b/sys/netipsec/ipsec_output.c @@ -867,7 +867,7 @@ ipsec6_output_tunnel(struct ipsec_output_state *state, struct secpolicy *sp, int dst6->sin6_family = AF_INET6; dst6->sin6_len = sizeof(*dst6); dst6->sin6_addr = ip6->ip6_dst; - rtalloc(state->ro); + rtalloc_ign_fib(state->ro, 0UL, M_GETFIB(m)); } if (state->ro->ro_rt == NULL) { V_ip6stat.ip6s_noroute++; |