rpl.h (824B)
1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2/* 3 * IPv6 RPL-SR implementation 4 * 5 * Author: 6 * (C) 2020 Alexander Aring <alex.aring@gmail.com> 7 */ 8 9#ifndef _UAPI_LINUX_RPL_H 10#define _UAPI_LINUX_RPL_H 11 12#include <asm/byteorder.h> 13#include <linux/types.h> 14#include <linux/in6.h> 15 16/* 17 * RPL SR Header 18 */ 19struct ipv6_rpl_sr_hdr { 20 __u8 nexthdr; 21 __u8 hdrlen; 22 __u8 type; 23 __u8 segments_left; 24#if defined(__LITTLE_ENDIAN_BITFIELD) 25 __u32 cmpre:4, 26 cmpri:4, 27 reserved:4, 28 pad:4, 29 reserved1:16; 30#elif defined(__BIG_ENDIAN_BITFIELD) 31 __u32 cmpri:4, 32 cmpre:4, 33 pad:4, 34 reserved:20; 35#else 36#error "Please fix <asm/byteorder.h>" 37#endif 38 39 union { 40 struct in6_addr addr[0]; 41 __u8 data[0]; 42 } segments; 43} __attribute__((packed)); 44 45#define rpl_segaddr segments.addr 46#define rpl_segdata segments.data 47 48#endif