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 */
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 __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.

source code of linux/include/uapi/linux/rpl.h