diff options
author | YAMAMOTO Takashi <yamamoto@valinux.co.jp> | 2013-07-02 11:13:46 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2013-07-12 06:48:54 +0900 |
commit | fbc7bafe01020962b8fbb3997937732a0320630c (patch) | |
tree | 698c1ea8e07e7dc7cfa06a88e5db2564c8f2a1a6 | |
parent | 8e2e0e8280de3f8637de5f00d082772db47c7aec (diff) |
of1.2: 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_2_parser.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/ryu/ofproto/ofproto_v1_2_parser.py b/ryu/ofproto/ofproto_v1_2_parser.py index b4121c42..37260a87 100644 --- a/ryu/ofproto/ofproto_v1_2_parser.py +++ b/ryu/ofproto/ofproto_v1_2_parser.py @@ -2154,8 +2154,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 @@ -2164,6 +2162,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_2.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_2.OXM_OF_IN_PORT]) class MTInPort(OFPMatchField): |