summaryrefslogtreecommitdiffstats
path: root/sys/netipsec/ipsec_output.c
diff options
context:
space:
mode:
authorLuiz Otavio O Souza <luiz@netgate.com>2015-09-15 15:24:23 -0500
committerLuiz Otavio O Souza <luiz@netgate.com>2015-10-20 12:01:30 -0500
commit4ae8d18ecb266f2fb2c6734bb3297bc7651da103 (patch)
treebfd45ba6692bfb9db79797a6ffcd3639e3ac2cbf /sys/netipsec/ipsec_output.c
parent16636d7a65a723c72f597d46931c31fdd4993205 (diff)
downloadFreeBSD-src-4ae8d18ecb266f2fb2c6734bb3297bc7651da103.zip
FreeBSD-src-4ae8d18ecb266f2fb2c6734bb3297bc7651da103.tar.gz
MFC r281694:
Requeue mbuf via netisr when we use IPSec tunnel mode and IPv6. ipsec6_common_input_cb() uses partial copy of ip6_input() to parse headers. But this isn't correct, when we use tunnel mode IPSec. When we stripped outer IPv6 header from the decrypted packet, it can become IPv4 packet and should be handled by ip_input. Also when we use tunnel mode IPSec with IPv6 traffic, we should pass decrypted packet with inner IPv6 header to ip6_input, it will correctly handle it and also can decide to forward it. The "skip" variable points to offset where payload starts. In tunnel mode we reset it to zero after stripping the outer header. So, when it is zero, we should requeue mbuf via netisr. Differential Revision: https://reviews.freebsd.org/D2306 Reviewed by: adrian, gnn Sponsored by: Yandex LLC TAG: IPSEC-HEAD Issue: #4841
Diffstat (limited to 'sys/netipsec/ipsec_output.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud