xref: /openbmc/linux/include/net/rpl.h (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
18610c7c6SAlexander Aring /* SPDX-License-Identifier: GPL-2.0-or-later */
28610c7c6SAlexander Aring /*
38610c7c6SAlexander Aring  *  RPL implementation
48610c7c6SAlexander Aring  *
58610c7c6SAlexander Aring  *  Author:
68610c7c6SAlexander Aring  *  (C) 2020 Alexander Aring <alex.aring@gmail.com>
78610c7c6SAlexander Aring  */
88610c7c6SAlexander Aring 
98610c7c6SAlexander Aring #ifndef _NET_RPL_H
108610c7c6SAlexander Aring #define _NET_RPL_H
118610c7c6SAlexander Aring 
128610c7c6SAlexander Aring #include <linux/rpl.h>
138610c7c6SAlexander Aring 
14*a7a29f9cSAlexander Aring #if IS_ENABLED(CONFIG_IPV6_RPL_LWTUNNEL)
15*a7a29f9cSAlexander Aring extern int rpl_init(void);
16*a7a29f9cSAlexander Aring extern void rpl_exit(void);
17*a7a29f9cSAlexander Aring #else
rpl_init(void)18*a7a29f9cSAlexander Aring static inline int rpl_init(void)
19*a7a29f9cSAlexander Aring {
20*a7a29f9cSAlexander Aring 	return 0;
21*a7a29f9cSAlexander Aring }
22*a7a29f9cSAlexander Aring 
rpl_exit(void)23*a7a29f9cSAlexander Aring static inline void rpl_exit(void) {}
24*a7a29f9cSAlexander Aring #endif
25*a7a29f9cSAlexander Aring 
268610c7c6SAlexander Aring void ipv6_rpl_srh_decompress(struct ipv6_rpl_sr_hdr *outhdr,
278610c7c6SAlexander Aring 			     const struct ipv6_rpl_sr_hdr *inhdr,
288610c7c6SAlexander Aring 			     const struct in6_addr *daddr, unsigned char n);
298610c7c6SAlexander Aring 
308610c7c6SAlexander Aring void ipv6_rpl_srh_compress(struct ipv6_rpl_sr_hdr *outhdr,
318610c7c6SAlexander Aring 			   const struct ipv6_rpl_sr_hdr *inhdr,
328610c7c6SAlexander Aring 			   const struct in6_addr *daddr, unsigned char n);
338610c7c6SAlexander Aring 
348610c7c6SAlexander Aring #endif /* _NET_RPL_H */
358610c7c6SAlexander Aring