sw test tool: Fix to compare OFPMatch ignoring fields that masks are all zero bits

OF 1.3.3 spec (7.2.3.5 Flow Match Field Masking) says:

    An all-zero-bits oxm_mask is equivalent to omitting the OXM TLV entirely. An all-one-bits oxm_mask
    is equivalent to specifying 0 for oxm_hasmask and omitting oxm_mask.

This patch fixes to compare OFPMatch ignoring fields that masks are all zero bits.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
Yuichi Ito 2014-04-15 14:52:58 +09:00 committed by FUJITA Tomonori
parent 02cce18108
commit bff6008488

View File

@ -793,8 +793,12 @@ class OfTester(app_manager.RyuApp):
# when mask is all one bits, remove mask
if mbytes == '\xff' * ofb.type.size:
united_value = value
# when mask is all zero bits, remove field.
elif mbytes == '\x00' * ofb.type.size:
united_value = None
break
match_fields.append((key, united_value))
if united_value is not None:
match_fields.append((key, united_value))
return match_fields
attr_list = ['cookie', 'priority', 'hard_timeout', 'idle_timeout',