logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

tc_tunnel_key.h (2478B)


  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. #ifndef __LINUX_TC_TUNNEL_KEY_H
  7. #define __LINUX_TC_TUNNEL_KEY_H
  8. #include <linux/pkt_cls.h>
  9. #define TCA_TUNNEL_KEY_ACT_SET 1
  10. #define TCA_TUNNEL_KEY_ACT_RELEASE 2
  11. struct tc_tunnel_key {
  12. tc_gen;
  13. int t_action;
  14. };
  15. enum {
  16. TCA_TUNNEL_KEY_UNSPEC,
  17. TCA_TUNNEL_KEY_TM,
  18. TCA_TUNNEL_KEY_PARMS,
  19. TCA_TUNNEL_KEY_ENC_IPV4_SRC, /* be32 */
  20. TCA_TUNNEL_KEY_ENC_IPV4_DST, /* be32 */
  21. TCA_TUNNEL_KEY_ENC_IPV6_SRC, /* struct in6_addr */
  22. TCA_TUNNEL_KEY_ENC_IPV6_DST, /* struct in6_addr */
  23. TCA_TUNNEL_KEY_ENC_KEY_ID, /* be64 */
  24. TCA_TUNNEL_KEY_PAD,
  25. TCA_TUNNEL_KEY_ENC_DST_PORT, /* be16 */
  26. TCA_TUNNEL_KEY_NO_CSUM, /* u8 */
  27. TCA_TUNNEL_KEY_ENC_OPTS, /* Nested TCA_TUNNEL_KEY_ENC_OPTS_
  28. * attributes
  29. */
  30. TCA_TUNNEL_KEY_ENC_TOS, /* u8 */
  31. TCA_TUNNEL_KEY_ENC_TTL, /* u8 */
  32. TCA_TUNNEL_KEY_NO_FRAG, /* flag */
  33. __TCA_TUNNEL_KEY_MAX,
  34. };
  35. #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1)
  36. enum {
  37. TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC,
  38. TCA_TUNNEL_KEY_ENC_OPTS_GENEVE, /* Nested
  39. * TCA_TUNNEL_KEY_ENC_OPTS_
  40. * attributes
  41. */
  42. TCA_TUNNEL_KEY_ENC_OPTS_VXLAN, /* Nested
  43. * TCA_TUNNEL_KEY_ENC_OPTS_
  44. * attributes
  45. */
  46. TCA_TUNNEL_KEY_ENC_OPTS_ERSPAN, /* Nested
  47. * TCA_TUNNEL_KEY_ENC_OPTS_
  48. * attributes
  49. */
  50. __TCA_TUNNEL_KEY_ENC_OPTS_MAX,
  51. };
  52. #define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1)
  53. enum {
  54. TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC,
  55. TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS, /* be16 */
  56. TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */
  57. TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */
  58. __TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX,
  59. };
  60. #define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
  61. (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
  62. enum {
  63. TCA_TUNNEL_KEY_ENC_OPT_VXLAN_UNSPEC,
  64. TCA_TUNNEL_KEY_ENC_OPT_VXLAN_GBP, /* u32 */
  65. __TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX,
  66. };
  67. #define TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX \
  68. (__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX - 1)
  69. enum {
  70. TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_UNSPEC,
  71. TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_VER, /* u8 */
  72. TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */
  73. TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */
  74. TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */
  75. __TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX,
  76. };
  77. #define TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX \
  78. (__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX - 1)
  79. #endif