mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	As Eric Dumazet pointed out [0], ipv6_rthdr_rcv() pulls these data - Segment Routing Header : 8 - Hdr Ext Len : skb_transport_header(skb)[1] << 3 needed by ipv6_rpl_srh_rcv(). We can remove pskb_may_pull() and replace pskb_pull() with skb_pull() in ipv6_rpl_srh_rcv(). Link: https://lore.kernel.org/netdev/CANn89iLboLwLrHXeHJucAqBkEL_S0rJFog68t7wwwXO-aNf5Mg@mail.gmail.com/ [0] Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			749 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			749 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0-or-later */
 | 
						|
/*
 | 
						|
 *  RPL implementation
 | 
						|
 *
 | 
						|
 *  Author:
 | 
						|
 *  (C) 2020 Alexander Aring <alex.aring@gmail.com>
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _NET_RPL_H
 | 
						|
#define _NET_RPL_H
 | 
						|
 | 
						|
#include <linux/rpl.h>
 | 
						|
 | 
						|
#if IS_ENABLED(CONFIG_IPV6_RPL_LWTUNNEL)
 | 
						|
extern int rpl_init(void);
 | 
						|
extern void rpl_exit(void);
 | 
						|
#else
 | 
						|
static inline int rpl_init(void)
 | 
						|
{
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
 | 
						|
static inline void rpl_exit(void) {}
 | 
						|
#endif
 | 
						|
 | 
						|
void ipv6_rpl_srh_decompress(struct ipv6_rpl_sr_hdr *outhdr,
 | 
						|
			     const struct ipv6_rpl_sr_hdr *inhdr,
 | 
						|
			     const struct in6_addr *daddr, unsigned char n);
 | 
						|
 | 
						|
void ipv6_rpl_srh_compress(struct ipv6_rpl_sr_hdr *outhdr,
 | 
						|
			   const struct ipv6_rpl_sr_hdr *inhdr,
 | 
						|
			   const struct in6_addr *daddr, unsigned char n);
 | 
						|
 | 
						|
#endif /* _NET_RPL_H */
 |