summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYAMAMOTO Takashi <yamamoto@valinux.co.jp>2013-07-02 11:13:48 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2013-07-12 06:50:06 +0900
commit41877dac0b7aef2104ccce95c9606ac25c034e24 (patch)
tree18130274687fac3f79ecfb1b3c2de1fd26ecb85f
parent309e9c688ca6b80f7a666c6909119fcd1e47e11e (diff)
of1.3: omit mask attribute from str() when appropriate
normalize str() outputs so that tests like str(msg1) == str(msg2) more likely succeed. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/ofproto/ofproto_v1_3_parser.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/ryu/ofproto/ofproto_v1_3_parser.py b/ryu/ofproto/ofproto_v1_3_parser.py
index 060b8267..7c28065d 100644
--- a/ryu/ofproto/ofproto_v1_3_parser.py
+++ b/ryu/ofproto/ofproto_v1_3_parser.py
@@ -958,8 +958,6 @@ class OFPMatchField(StringifyMixin):
del v['header']
del v['length']
del v['n_bytes']
- if 'mask' in v and v['mask'] is None:
- del v['mask']
return d
@classmethod
@@ -968,6 +966,19 @@ class OFPMatchField(StringifyMixin):
# it will be converted by OFPMatch.__init__().
return {cls.__name__: dict_}
+ def stringify_attrs(self):
+ f = super(OFPMatchField, self).stringify_attrs
+ if not ofproto_v1_3.oxm_tlv_header_extract_hasmask(self.header):
+ # something like the following, but yield two values (k,v)
+ # return itertools.ifilter(lambda k, v: k != 'mask', iter())
+ def g():
+ for k, v in f():
+ if k != 'mask':
+ yield (k, v)
+ return g()
+ else:
+ return f()
+
@OFPMatchField.register_field_header([ofproto_v1_3.OXM_OF_IN_PORT])
class MTInPort(OFPMatchField):