forked from mirrors/linux
		
	There are only two implementaions, one for ipv4 and one for ipv6. Both are almost identical, they clear skb->cb[], set the TRANSFORMED flag in IP(6)CB and then call the common xfrm_output() function. By placing the IPCB handling into the common function, we avoid the need for the output_finish indirection as the output functions can simply use xfrm_output(). Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			699 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			699 B
		
	
	
	
		
			C
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0
 | 
						|
/*
 | 
						|
 * xfrm6_state.c: based on xfrm4_state.c
 | 
						|
 *
 | 
						|
 * Authors:
 | 
						|
 *	Mitsuru KANDA @USAGI
 | 
						|
 *	Kazunori MIYAZAWA @USAGI
 | 
						|
 *	Kunihiro Ishiguro <kunihiro@ipinfusion.com>
 | 
						|
 *		IPv6 support
 | 
						|
 *	YOSHIFUJI Hideaki @USAGI
 | 
						|
 *		Split up af-specific portion
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#include <net/xfrm.h>
 | 
						|
 | 
						|
static struct xfrm_state_afinfo xfrm6_state_afinfo = {
 | 
						|
	.family			= AF_INET6,
 | 
						|
	.proto			= IPPROTO_IPV6,
 | 
						|
	.output			= xfrm6_output,
 | 
						|
	.transport_finish	= xfrm6_transport_finish,
 | 
						|
	.local_error		= xfrm6_local_error,
 | 
						|
};
 | 
						|
 | 
						|
int __init xfrm6_state_init(void)
 | 
						|
{
 | 
						|
	return xfrm_state_register_afinfo(&xfrm6_state_afinfo);
 | 
						|
}
 | 
						|
 | 
						|
void xfrm6_state_fini(void)
 | 
						|
{
 | 
						|
	xfrm_state_unregister_afinfo(&xfrm6_state_afinfo);
 | 
						|
}
 |