This was added in commit 818f1f3e7 "ipv6: add ipv6_addr_prefix_copy" to mainline Linux kernel. Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx> --- backport/backport-include/net/ipv6.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/backport/backport-include/net/ipv6.h b/backport/backport-include/net/ipv6.h index 9da13eb..762ad78 100644 --- a/backport/backport-include/net/ipv6.h +++ b/backport/backport-include/net/ipv6.h @@ -39,4 +39,22 @@ static inline u32 ipv6_addr_hash(const struct in6_addr *a) } #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0) +#define ipv6_addr_prefix_copy LINUX_BACKPORT(ipv6_addr_prefix_copy) +static inline void ipv6_addr_prefix_copy(struct in6_addr *addr, + const struct in6_addr *pfx, + int plen) +{ + /* caller must guarantee 0 <= plen <= 128 */ + int o = plen >> 3, + b = plen & 0x7; + + memcpy(addr->s6_addr, pfx, o); + if (b != 0) { + addr->s6_addr[o] &= ~(0xff00 >> b); + addr->s6_addr[o] |= (pfx->s6_addr[o] & (0xff00 >> b)); + } +} +#endif + #endif /* __BACKPORT_NET_IPV6_H */ -- 2.8.1 -- To unsubscribe from this list: send the line "unsubscribe backports" in