OpenFlow 1.0 uses a 6-bit field to express the number of wildcarded bits
in the nw_src and nw_dst field. Any value 32 or greater in these fields
(binary 1xxxxx) means that all of the bits are wildcarded. That means
that there are 32 different ways to express a wildcarded nw_src or nw_dst.
At least two of those seem sensible (100000 and 111111) so we shouldn't
warn about one of them.
This fixes the problem by ORing with 100000 instead of 111111, so that any
already-correct wildcarded mask won't be affected.
This fix allows us to update some tests.
---
lib/ofp-util.c | 2 +-
tests/autopath.at | 4 ++--
tests/ovs-ofctl.at | 13 +------------
3 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/lib/ofp-util.c b/lib/ofp-util.c
index 5aa2b82..ade0756 100644
--- a/lib/ofp-util.c
+++ b/lib/ofp-util.c
@@ -2031,7 +2031,7 @@ actions_next(struct actions_iterator *iter)
void
normalize_match(struct ofp_match *m)
{
- enum { OFPFW_NW = (OFPFW_NW_SRC_MASK | OFPFW_NW_DST_MASK | OFPFW_NW_PROTO
+ enum { OFPFW_NW = (OFPFW_NW_SRC_ALL | OFPFW_NW_DST_ALL | OFPFW_NW_PROTO
| OFPFW_NW_TOS) };
enum { OFPFW_TP = OFPFW_TP_SRC | OFPFW_TP_DST };
uint32_t wc;
diff --git a/tests/autopath.at b/tests/autopath.at
index 40e54d5..79ecb02 100644
--- a/tests/autopath.at
+++ b/tests/autopath.at
@@ -3,10 +3,10 @@ AT_BANNER([autopath link selection])
AT_SETUP([autopath basic])
AT_CHECK([ovs-ofctl parse-flow 'actions=autopath(1, NXM_NX_REG0[[]])'], [0],
[OFPT_FLOW_MOD (xid=0x1): ADD actions=autopath(1,NXM_NX_REG0[[]])
-], [ignore])
+])
AT_CHECK([ovs-ofctl parse-flow 'actions=autopath(2, NXM_NX_REG0[[2..30]])'],
[0],
[OFPT_FLOW_MOD (xid=0x1): ADD actions=autopath(2,NXM_NX_REG0[[2..30]])
-], [ignore])
+])
AT_CLEANUP
AT_SETUP([autopath action missing argument])
diff --git a/tests/ovs-ofctl.at b/tests/ovs-ofctl.at
index 1014710..c23945f 100644
--- a/tests/ovs-ofctl.at
+++ b/tests/ovs-ofctl.at
@@ -18,7 +18,7 @@ actions=drop
tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
]])
AT_CHECK([ovs-ofctl parse-flows flows.txt
-], [0], [stdout], [stderr])
+], [0], [stdout])
AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
[[OFPT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
OFPT_FLOW_MOD: ADD in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0
actions=drop
@@ -35,17 +35,6 @@ NXT_FLOW_MOD: ADD
actions=multipath(eth_src,50,hrw,12,0,NXM_NX_REG0[0..3]),multi
NXT_FLOW_MOD: ADD actions=drop
NXT_FLOW_MOD: ADD tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
]])
-AT_CHECK([sed 's/.*|//' stderr], [0], [dnl
-normalization changed ofp_match, details:
- pre: wildcards= 0x3820f8 in_port=65534 dl_src=00:0a:e4:25:6b:b0
dl_dst=00:00:00:00:00:00 dl_vlan= 9 dl_vlan_pcp= 0 dl_type= 0
nw_tos= 0 nw_proto= 0 nw_src= 0 nw_dst= 0 tp_src= 0
tp_dst= 0
-post: wildcards= 0x3ffff8 in_port=65534 dl_src=00:0a:e4:25:6b:b0
dl_dst=00:00:00:00:00:00 dl_vlan= 9 dl_vlan_pcp= 0 dl_type= 0
nw_tos= 0 nw_proto= 0 nw_src= 0 nw_dst= 0 tp_src= 0
tp_dst= 0
-normalization changed ofp_match, details:
- pre: wildcards= 0x3820ff in_port=65534 dl_src=00:00:00:00:00:00
dl_dst=00:00:00:00:00:00 dl_vlan= 0 dl_vlan_pcp= 0 dl_type= 0
nw_tos= 0 nw_proto= 0 nw_src= 0 nw_dst= 0 tp_src= 0
tp_dst= 0
-post: wildcards= 0x3fffff in_port=65534 dl_src=00:00:00:00:00:00
dl_dst=00:00:00:00:00:00 dl_vlan= 0 dl_vlan_pcp= 0 dl_type= 0
nw_tos= 0 nw_proto= 0 nw_src= 0 nw_dst= 0 tp_src= 0
tp_dst= 0
-normalization changed ofp_match, details:
- pre: wildcards= 0x3820ff in_port=65534 dl_src=00:00:00:00:00:00
dl_dst=00:00:00:00:00:00 dl_vlan= 0 dl_vlan_pcp= 0 dl_type= 0
nw_tos= 0 nw_proto= 0 nw_src= 0 nw_dst= 0 tp_src= 0
tp_dst= 0
-post: wildcards= 0x3fffff in_port=65534 dl_src=00:00:00:00:00:00
dl_dst=00:00:00:00:00:00 dl_vlan= 0 dl_vlan_pcp= 0 dl_type= 0
nw_tos= 0 nw_proto= 0 nw_src= 0 nw_dst= 0 tp_src= 0
tp_dst= 0
-])
AT_CLEANUP
AT_SETUP([ovs-ofctl -F nxm parse-flows])
--
1.7.4.4
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev