Warning: This file is not a C or C++ file. It does not have highlighting.
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 | */ |
19 | struct 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 | __DECLARE_FLEX_ARRAY(struct in6_addr, addr); |
41 | __DECLARE_FLEX_ARRAY(__u8, data); |
42 | } segments; |
43 | } __attribute__((packed)); |
44 | |
45 | #define rpl_segaddr segments.addr |
46 | #define rpl_segdata segments.data |
47 | |
48 | #endif |
49 |
Warning: This file is not a C or C++ file. It does not have highlighting.