summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ryu/ofproto/ofproto_v1_3.py2
-rw-r--r--ryu/ofproto/oxm_fields.py10
2 files changed, 7 insertions, 5 deletions
diff --git a/ryu/ofproto/ofproto_v1_3.py b/ryu/ofproto/ofproto_v1_3.py
index 7535dfda..b80c5120 100644
--- a/ryu/ofproto/ofproto_v1_3.py
+++ b/ryu/ofproto/ofproto_v1_3.py
@@ -1177,7 +1177,7 @@ oxm_types = [
oxm_fields.OpenFlowBasic('pbb_isid', 37, type_desc.Int3),
oxm_fields.OpenFlowBasic('tunnel_id', 38, type_desc.Int8),
oxm_fields.OpenFlowBasic('ipv6_exthdr', 39, type_desc.Int2),
- oxm_fields.ONFExperimenter('pbb_uca', 2560, type_desc.Int1),
+ oxm_fields.OldONFExperimenter('pbb_uca', 2560, type_desc.Int1),
oxm_fields.NiciraExtended1('tun_ipv4_src', 31, type_desc.IPv4Addr),
oxm_fields.NiciraExtended1('tun_ipv4_dst', 32, type_desc.IPv4Addr),
diff --git a/ryu/ofproto/oxm_fields.py b/ryu/ofproto/oxm_fields.py
index 4ddcba58..52a53d0d 100644
--- a/ryu/ofproto/oxm_fields.py
+++ b/ryu/ofproto/oxm_fields.py
@@ -95,11 +95,12 @@ class _Experimenter(_OxmClass):
self.num = (self.experimenter_id, self.oxm_type)
-class ONFExperimenter(_Experimenter):
+class OldONFExperimenter(_Experimenter):
+ # This class is for the old version of EXT-256
experimenter_id = ofproto_common.ONF_EXPERIMENTER_ID
def __init__(self, name, num, type_):
- super(ONFExperimenter, self).__init__(name, 0, type_)
+ super(OldONFExperimenter, self).__init__(name, 0, type_)
self.num = (self.experimenter_id, num)
self.exp_type = num
@@ -264,7 +265,8 @@ def _parse_header_impl(mod, buf, offset):
offset + hdr_len)
exp_hdr_len = struct.calcsize(exp_hdr_pack_str)
assert exp_hdr_len == 4
- if exp_id == ofproto_common.ONF_EXPERIMENTER_ID:
+ oxm_field = oxm_type & 0x7f
+ if exp_id == ofproto_common.ONF_EXPERIMENTER_ID and oxm_field == 0:
# XXX
# This block implements EXT-256 style experimenter OXM.
onf_exp_type_pack_str = '!H'
@@ -319,7 +321,7 @@ def _make_exp_hdr(mod, n):
if isinstance(desc, _Experimenter): # XXX
(exp_id, exp_type) = n
assert desc.experimenter_id == exp_id
- if isinstance(desc, ONFExperimenter): # XXX
+ if isinstance(desc, OldONFExperimenter): # XXX
# XXX
# This block implements EXT-256 style experimenter OXM.
exp_hdr_pack_str = '!IH' # experimenter_id, exp_type