iproute2/include/uapi/linux/rpl.h
<<
>>
Prefs
   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 _LINUX_RPL_H
  10#define _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
  49