linux/include/uapi/linux/tc_act/tc_tunnel_key.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
   2/*
   3 * Copyright (c) 2016, Amir Vadai <amir@vadai.me>
   4 * Copyright (c) 2016, Mellanox Technologies. All rights reserved.
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License as published by
   8 * the Free Software Foundation; either version 2 of the License, or
   9 * (at your option) any later version.
  10 */
  11
  12#ifndef __LINUX_TC_TUNNEL_KEY_H
  13#define __LINUX_TC_TUNNEL_KEY_H
  14
  15#include <linux/pkt_cls.h>
  16
  17#define TCA_ACT_TUNNEL_KEY 17
  18
  19#define TCA_TUNNEL_KEY_ACT_SET      1
  20#define TCA_TUNNEL_KEY_ACT_RELEASE  2
  21
  22struct tc_tunnel_key {
  23        tc_gen;
  24        int t_action;
  25};
  26
  27enum {
  28        TCA_TUNNEL_KEY_UNSPEC,
  29        TCA_TUNNEL_KEY_TM,
  30        TCA_TUNNEL_KEY_PARMS,
  31        TCA_TUNNEL_KEY_ENC_IPV4_SRC,    /* be32 */
  32        TCA_TUNNEL_KEY_ENC_IPV4_DST,    /* be32 */
  33        TCA_TUNNEL_KEY_ENC_IPV6_SRC,    /* struct in6_addr */
  34        TCA_TUNNEL_KEY_ENC_IPV6_DST,    /* struct in6_addr */
  35        TCA_TUNNEL_KEY_ENC_KEY_ID,      /* be64 */
  36        TCA_TUNNEL_KEY_PAD,
  37        TCA_TUNNEL_KEY_ENC_DST_PORT,    /* be16 */
  38        TCA_TUNNEL_KEY_NO_CSUM,         /* u8 */
  39        TCA_TUNNEL_KEY_ENC_OPTS,        /* Nested TCA_TUNNEL_KEY_ENC_OPTS_
  40                                         * attributes
  41                                         */
  42        TCA_TUNNEL_KEY_ENC_TOS,         /* u8 */
  43        TCA_TUNNEL_KEY_ENC_TTL,         /* u8 */
  44        __TCA_TUNNEL_KEY_MAX,
  45};
  46
  47#define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1)
  48
  49enum {
  50        TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC,
  51        TCA_TUNNEL_KEY_ENC_OPTS_GENEVE,         /* Nested
  52                                                 * TCA_TUNNEL_KEY_ENC_OPTS_
  53                                                 * attributes
  54                                                 */
  55        __TCA_TUNNEL_KEY_ENC_OPTS_MAX,
  56};
  57
  58#define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1)
  59
  60enum {
  61        TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC,
  62        TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS,            /* be16 */
  63        TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE,             /* u8 */
  64        TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA,             /* 4 to 128 bytes */
  65
  66        __TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX,
  67};
  68
  69#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
  70        (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
  71
  72#endif
  73