Advertisement
Guest User

Untitled

a guest
Mar 8th, 2022
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. diff --git a/datapath/linux/compat/include/linux/openvswitch.h b/datapath/linux/compat/include/linux/openvswitch.h
  2. index 8d9300091..cf9a6962d 100644
  3. --- a/datapath/linux/compat/include/linux/openvswitch.h
  4. +++ b/datapath/linux/compat/include/linux/openvswitch.h
  5. @@ -388,17 +388,16 @@ enum ovs_key_attr {
  6.     OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6,   /* struct ovs_key_ct_tuple_ipv6 */
  7.     OVS_KEY_ATTR_NSH,       /* Nested set of ovs_nsh_key_* */
  8.  
  9. -#ifdef __KERNEL__
  10. -   /* Only used within kernel data path. */
  11. -   OVS_KEY_ATTR_TUNNEL_INFO,  /* struct ovs_tunnel_info */
  12. -#endif
  13. -
  14. -#ifndef __KERNEL__
  15. -   /* Only used within userspace data path. */
  16. +   /* User space decided to squat on types 29 and 30.  They are listed
  17. +    * below, but should not be sent to the kernel: */
  18.     OVS_KEY_ATTR_PACKET_TYPE,  /* be32 packet type */
  19.     OVS_KEY_ATTR_ND_EXTENSIONS, /* struct ovs_key_nd_extensions */
  20. -#endif
  21.  
  22. +   /* WARNING: No new types should be added unless they are defined
  23. +    *          for both kernel and user space (no 'ifdef's).  It's hard
  24. +    *          to keep compatibility otherwise. */
  25. +   OVS_KEY_ATTR_TUNNEL_INFO = 31,  /* struct ip_tunnel_info.
  26. +                      For in-kernel use only. */
  27.     __OVS_KEY_ATTR_MAX
  28.  };
  29.  
  30. diff --git a/lib/odp-execute.c b/lib/odp-execute.c
  31. index 2f4cdd92c..7da56793d 100644
  32. --- a/lib/odp-execute.c
  33. +++ b/lib/odp-execute.c
  34. @@ -553,6 +553,7 @@ odp_execute_set_action(struct dp_packet *packet, const struct nlattr *a)
  35.      case OVS_KEY_ATTR_CT_ZONE:
  36.      case OVS_KEY_ATTR_CT_MARK:
  37.      case OVS_KEY_ATTR_CT_LABELS:
  38. +    case OVS_KEY_ATTR_TUNNEL_INFO:
  39.      case __OVS_KEY_ATTR_MAX:
  40.      default:
  41.          OVS_NOT_REACHED();
  42. @@ -665,6 +666,7 @@ odp_execute_masked_set_action(struct dp_packet *packet,
  43.      case OVS_KEY_ATTR_ICMP:
  44.      case OVS_KEY_ATTR_ICMPV6:
  45.      case OVS_KEY_ATTR_TCP_FLAGS:
  46. +    case OVS_KEY_ATTR_TUNNEL_INFO:
  47.      case __OVS_KEY_ATTR_MAX:
  48.      default:
  49.          OVS_NOT_REACHED();
  50. diff --git a/lib/odp-util.c b/lib/odp-util.c
  51. index 9a705cffa..bf3848b71 100644
  52. --- a/lib/odp-util.c
  53. +++ b/lib/odp-util.c
  54. @@ -193,6 +193,7 @@ ovs_key_attr_to_string(enum ovs_key_attr attr, char *namebuf, size_t bufsize)
  55.      case OVS_KEY_ATTR_PACKET_TYPE: return "packet_type";
  56.      case OVS_KEY_ATTR_NSH: return "nsh";
  57.  
  58. +    case OVS_KEY_ATTR_TUNNEL_INFO:
  59.      case __OVS_KEY_ATTR_MAX:
  60.      default:
  61.          snprintf(namebuf, bufsize, "key%u", (unsigned int) attr);
  62. @@ -3261,6 +3262,7 @@ odp_mask_is_constant__(enum ovs_key_attr attr, const void *mask, size_t size,
  63.      switch (attr) {
  64.      case OVS_KEY_ATTR_UNSPEC:
  65.      case OVS_KEY_ATTR_ENCAP:
  66. +    case OVS_KEY_ATTR_TUNNEL_INFO:
  67.      case __OVS_KEY_ATTR_MAX:
  68.      default:
  69.          return false;
  70. @@ -4412,6 +4414,7 @@ format_odp_key_attr__(const struct nlattr *a, const struct nlattr *ma,
  71.          break;
  72.      }
  73.      case OVS_KEY_ATTR_UNSPEC:
  74. +    case OVS_KEY_ATTR_TUNNEL_INFO:
  75.      case __OVS_KEY_ATTR_MAX:
  76.      default:
  77.          format_generic_odp_key(a, ds);
  78. @@ -6611,6 +6614,7 @@ odp_key_to_dp_packet(const struct nlattr *key, size_t key_len,
  79.          case OVS_KEY_ATTR_MPLS:
  80.          case OVS_KEY_ATTR_PACKET_TYPE:
  81.          case OVS_KEY_ATTR_NSH:
  82. +        case OVS_KEY_ATTR_TUNNEL_INFO:
  83.          case __OVS_KEY_ATTR_MAX:
  84.          default:
  85.              break;
  86. diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c
  87. index 30e7caf54..0b2c79e32 100644
  88. --- a/ofproto/ofproto-dpif-sflow.c
  89. +++ b/ofproto/ofproto-dpif-sflow.c
  90. @@ -1065,6 +1065,7 @@ sflow_read_set_action(const struct nlattr *attr,
  91.      case OVS_KEY_ATTR_UNSPEC:
  92.      case OVS_KEY_ATTR_PACKET_TYPE:
  93.      case OVS_KEY_ATTR_NSH:
  94. +    case OVS_KEY_ATTR_TUNNEL_INFO:
  95.      case __OVS_KEY_ATTR_MAX:
  96.      default:
  97.          break;
  98.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement