View difference between Paste ID: k8UWEZtR and AG1rX9ss
SHOW: | | - or go back to the newest paste.
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 passed to the kernel: */
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