Alexander Aring | 8610c7c | 2020-03-27 18:00:20 -0400 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| 2 | /* |
| 3 | * RPL implementation |
| 4 | * |
| 5 | * Author: |
| 6 | * (C) 2020 Alexander Aring <alex.aring@gmail.com> |
| 7 | */ |
| 8 | |
| 9 | #ifndef _NET_RPL_H |
| 10 | #define _NET_RPL_H |
| 11 | |
| 12 | #include <linux/rpl.h> |
| 13 | |
Alexander Aring | a7a29f9 | 2020-03-27 18:00:22 -0400 | [diff] [blame] | 14 | #if IS_ENABLED(CONFIG_IPV6_RPL_LWTUNNEL) |
| 15 | extern int rpl_init(void); |
| 16 | extern void rpl_exit(void); |
| 17 | #else |
| 18 | static inline int rpl_init(void) |
| 19 | { |
| 20 | return 0; |
| 21 | } |
| 22 | |
| 23 | static inline void rpl_exit(void) {} |
| 24 | #endif |
| 25 | |
Alexander Aring | 8610c7c | 2020-03-27 18:00:20 -0400 | [diff] [blame] | 26 | /* Worst decompression memory usage ipv6 address (16) + pad 7 */ |
| 27 | #define IPV6_RPL_SRH_WORST_SWAP_SIZE (sizeof(struct in6_addr) + 7) |
| 28 | |
Alexander Aring | 8610c7c | 2020-03-27 18:00:20 -0400 | [diff] [blame] | 29 | size_t ipv6_rpl_srh_size(unsigned char n, unsigned char cmpri, |
| 30 | unsigned char cmpre); |
| 31 | |
| 32 | void ipv6_rpl_srh_decompress(struct ipv6_rpl_sr_hdr *outhdr, |
| 33 | const struct ipv6_rpl_sr_hdr *inhdr, |
| 34 | const struct in6_addr *daddr, unsigned char n); |
| 35 | |
| 36 | void ipv6_rpl_srh_compress(struct ipv6_rpl_sr_hdr *outhdr, |
| 37 | const struct ipv6_rpl_sr_hdr *inhdr, |
| 38 | const struct in6_addr *daddr, unsigned char n); |
| 39 | |
| 40 | #endif /* _NET_RPL_H */ |