linux/include/uapi/linux/seg6_iptunnel.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
   2/*
   3 *  SR-IPv6 implementation
   4 *
   5 *  Author:
   6 *  David Lebrun <david.lebrun@uclouvain.be>
   7 *
   8 *
   9 *  This program is free software; you can redistribute it and/or
  10 *      modify it under the terms of the GNU General Public License
  11 *      as published by the Free Software Foundation; either version
  12 *      2 of the License, or (at your option) any later version.
  13 */
  14
  15#ifndef _UAPI_LINUX_SEG6_IPTUNNEL_H
  16#define _UAPI_LINUX_SEG6_IPTUNNEL_H
  17
  18#include <linux/seg6.h>         /* For struct ipv6_sr_hdr. */
  19
  20enum {
  21        SEG6_IPTUNNEL_UNSPEC,
  22        SEG6_IPTUNNEL_SRH,
  23        __SEG6_IPTUNNEL_MAX,
  24};
  25#define SEG6_IPTUNNEL_MAX (__SEG6_IPTUNNEL_MAX - 1)
  26
  27struct seg6_iptunnel_encap {
  28        int mode;
  29        struct ipv6_sr_hdr srh[0];
  30};
  31
  32#define SEG6_IPTUN_ENCAP_SIZE(x) ((sizeof(*x)) + (((x)->srh->hdrlen + 1) << 3))
  33
  34enum {
  35        SEG6_IPTUN_MODE_INLINE,
  36        SEG6_IPTUN_MODE_ENCAP,
  37        SEG6_IPTUN_MODE_L2ENCAP,
  38};
  39
  40#endif
  41