Commit 22b4ccf4 authored by Alin Serdean's avatar Alin Serdean Committed by Ben Pfaff

ofproto-dpif: Don't try to use dpif_probe_feature() with Windows datapath.

This patch disables features which are not currently supported in the
Windows datapath.

Unfortunately we have to do it in userspace because dpif_probe_feature is
not treated accordingly in the Windows datapath.  Fixing that is the
correct solution; this commit works around it for branch-2.4.

I opened the issue to track the feature for later implementations:
https://github.com/openvswitch/ovs-issues/issues/85Signed-off-by: default avatarAlin Gabriel Serdean <aserdean@cloudbasesolutions.com>
Acked-by: default avatarEitan Eliahu <eliahue@vmware.com>
Acked-by: default avatarNithin Raju <nithin@vmware.com>
Signed-off-by: default avatarBen Pfaff <blp@nicira.com>
parent dbc4cdc1
......@@ -1010,8 +1010,14 @@ check_recirc(struct dpif_backer *backer)
ofpbuf_use_stack(&key, &keybuf, sizeof keybuf);
odp_flow_key_from_flow(&key, &flow, NULL, 0, true);
#ifdef _WIN32
/* XXX Force disable of datapath recirculation from userspace until the
* dpif_probe_feature is properly implemented in the windows datapath */
enable_recirc = false;
#else
enable_recirc = dpif_probe_feature(backer->dpif, "recirculation", &key,
NULL);
#endif
if (enable_recirc) {
VLOG_INFO("%s: Datapath supports recirculation",
......@@ -1045,7 +1051,13 @@ check_ufid(struct dpif_backer *backer)
odp_flow_key_from_flow(&key, &flow, NULL, 0, true);
dpif_flow_hash(backer->dpif, key.data, key.size, &ufid);
#ifdef _WIN32
/* XXX Force disable of datapath recirculation from userspace until the
* dpif_probe_feature is properly implemented in the windows datapath */
enable_ufid = false;
#else
enable_ufid = dpif_probe_feature(backer->dpif, "UFID", &key, &ufid);
#endif
if (enable_ufid) {
VLOG_INFO("%s: Datapath supports unique flow ids",
......@@ -1151,6 +1163,11 @@ check_max_mpls_depth(struct dpif_backer *backer)
ofpbuf_use_stack(&key, &keybuf, sizeof keybuf);
odp_flow_key_from_flow(&key, &flow, NULL, 0, false);
#ifdef _WIN32
/* XXX Force disable of datapath recirculation from userspace until the
* dpif_probe_feature is properly implemented in the windows datapath */
break;
#endif
if (!dpif_probe_feature(backer->dpif, "MPLS", &key, NULL)) {
break;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment