kernel-ark/net/xfrm
Gao feng 0c1833797a ipv6: fix incorrect ipsec fragment
Since commit ad0081e43a
"ipv6: Fragment locally generated tunnel-mode IPSec6 packets as needed"
the fragment of packets is incorrect.
because tunnel mode needs IPsec headers and trailer for all fragments,
while on transport mode it is sufficient to add the headers to the
first fragment and the trailer to the last.

so modify mtu and maxfraglen base on ipsec mode and if fragment is first
or last.

with my test,it work well(every fragment's size is the mtu)
and does not trigger slow fragment path.

Changes from v1:
	though optimization, mtu_prev and maxfraglen_prev can be delete.
	replace xfrm mode codes with dst_entry's new frag DST_XFRM_TUNNEL.
	add fuction ip6_append_data_mtu to make codes clearer.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-27 01:11:22 -04:00
..
Kconfig xfrm: make xfrm_algo.c a module 2012-05-15 13:13:34 -04:00
Makefile xfrm: make xfrm_algo.c a module 2012-05-15 13:13:34 -04:00
xfrm_algo.c xfrm_algo: drop an unnecessary inclusion 2012-05-15 13:13:34 -04:00
xfrm_hash.c net: allow GFP_HIGHMEM in __vmalloc() 2010-11-21 10:04:04 -08:00
xfrm_hash.h net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
xfrm_input.c xfrm: Perform a replay check after return from async codepaths 2011-09-21 15:20:57 -04:00
xfrm_ipcomp.c net: add skb frag size accessors 2011-10-19 03:10:46 -04:00
xfrm_output.c xfrm: Remove unused xfrm_state from xfrm_state_check_space 2012-03-22 19:29:58 -04:00
xfrm_policy.c ipv6: fix incorrect ipsec fragment 2012-05-27 01:11:22 -04:00
xfrm_proc.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
xfrm_replay.c xfrm: Access the replay notify functions via the registered callbacks 2012-03-22 19:29:58 -04:00
xfrm_state.c net: remove ipv6_addr_copy() 2011-11-22 16:43:32 -05:00
xfrm_sysctl.c net: Convert all sysctl registrations to register_net_sysctl 2012-04-20 21:22:30 -04:00
xfrm_user.c xfrm_user: Stop using NLA_PUT*(). 2012-04-01 18:11:36 -04:00