diff options
| author | Kacper <kacper@mail.openlinux.dev> | 2025-12-07 20:10:31 +0100 |
|---|---|---|
| committer | Kacper <kacper@mail.openlinux.dev> | 2025-12-07 20:10:31 +0100 |
| commit | fc00c656c96528112d05cf0edf8631bd5eaea446 (patch) | |
| tree | a6e0e6c588191a8bd1c64afc3b7a258e3e66c236 /include/arch/x86_64/linux/rpl.h | |
Add build system scaffolding and libc headers
Diffstat (limited to 'include/arch/x86_64/linux/rpl.h')
| -rw-r--r-- | include/arch/x86_64/linux/rpl.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/include/arch/x86_64/linux/rpl.h b/include/arch/x86_64/linux/rpl.h new file mode 100644 index 00000000..c934a9ca --- /dev/null +++ b/include/arch/x86_64/linux/rpl.h @@ -0,0 +1,41 @@ +/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ +/* + * IPv6 RPL-SR implementation + * + * Author: + * (C) 2020 Alexander Aring <alex.aring@gmail.com> + */ + +#ifndef _LINUX_RPL_H +#define _LINUX_RPL_H + +#include <asm/byteorder.h> +#include <linux/types.h> +#include <linux/in6.h> + +/* + * RPL SR Header + */ +struct ipv6_rpl_sr_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; +#if defined(__LITTLE_ENDIAN_BITFIELD) + __u32 cmpre : 4, cmpri : 4, reserved : 4, pad : 4, reserved1 : 16; +#elif defined(__BIG_ENDIAN_BITFIELD) + __u32 cmpri : 4, cmpre : 4, pad : 4, reserved : 20; +#else +#error "Please fix <asm/byteorder.h>" +#endif + + union { + __DECLARE_FLEX_ARRAY(struct in6_addr, addr); + __DECLARE_FLEX_ARRAY(__u8, data); + } segments; +} __attribute__((packed)); + +#define rpl_segaddr segments.addr +#define rpl_segdata segments.data + +#endif |
