[ovs-dev] [PATCH v3] ovs-ofctl: Remove 'ANY' as a wildcard.

Gurucharan Shetty shettyg at nicira.com
Wed Jan 9 00:58:57 UTC 2013

Currently we use "*" or ANY to mark a field in flow syntax
as a wildcard. With ANY being a valid openflow port now,
there is a conflict for in_port field. So at the least, we
need to remove ANY from being considered as a wildcard for
in_port. But this may cause general confusion and it may be
a better idea to remove 'ANY' as a wildcard for all fields.

Signed-off-by: Gurucharan Shetty <gshetty at nicira.com>
 NEWS                     |    5 +++++
 lib/meta-flow.c          |    2 +-
 utilities/ovs-ofctl.8.in |    4 ++--
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/NEWS b/NEWS
index 537d298..ab7ef4d 100644
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,11 @@ post-v1.9.0
     - The OpenFlow "dp_desc" may now be configured by setting the value of 
       other-config:dp-desc in the Bridge table.
     - Path MTU discovery is no longer supported.
+    - Backward-incompatible changes:
+      - Earlier Open vSwitch versions treated ANY as a wildcard in flow
+        syntax.  OpenFlow 1.1 adds a port named ANY, which introduces a
+        conflict.  ANY was rarely used in flow syntax, so we chose to
+        retire that meaning of ANY in favor of the OpenFlow 1.1 meaning.
 v1.9.0 - xx xxx xxxx
diff --git a/lib/meta-flow.c b/lib/meta-flow.c
index 4579619..7a2c6da 100644
--- a/lib/meta-flow.c
+++ b/lib/meta-flow.c
@@ -2154,7 +2154,7 @@ char *
 mf_parse(const struct mf_field *mf, const char *s,
          union mf_value *value, union mf_value *mask)
-    if (!strcasecmp(s, "any") || !strcmp(s, "*")) {
+    if (!strcmp(s, "*")) {
         memset(value, 0, mf->n_bytes);
         memset(mask, 0, mf->n_bytes);
         return NULL;
diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in
index 906d280..c48645a 100644
--- a/utilities/ovs-ofctl.8.in
+++ b/utilities/ovs-ofctl.8.in
@@ -393,8 +393,8 @@ flows not in normal form.
 The following field assignments describe how a flow matches a packet.
 If any of these assignments is omitted from the flow syntax, the field
 is treated as a wildcard; thus, if all of them are omitted, the
-resulting flow matches all packets.  The string \fB*\fR or \fBANY\fR
-may be specified to explicitly mark any of these fields as a wildcard.  
+resulting flow matches all packets.  The string \fB*\fR may be specified
+to explicitly mark any of these fields as a wildcard.
 (\fB*\fR should be quoted to protect it from shell expansion.)
 .IP \fBin_port=\fIport\fR

More information about the dev mailing list