No reason to support the old awkward API for shiny OF1.4.
Signed-off-by: FUJITA Tomonori <[email protected]>
---
ryu/ofproto/ofproto_v1_4_parser.py | 81 ++++----------------------------------
1 file changed, 8 insertions(+), 73 deletions(-)
diff --git a/ryu/ofproto/ofproto_v1_4_parser.py
b/ryu/ofproto/ofproto_v1_4_parser.py
index 0eacc1d..4980d03 100644
--- a/ryu/ofproto/ofproto_v1_4_parser.py
+++ b/ryu/ofproto/ofproto_v1_4_parser.py
@@ -3654,24 +3654,14 @@ class OFPActionSetField(OFPAction):
================ ======================================================
"""
def __init__(self, field=None, **kwargs):
- # old api
- # OFPActionSetField(field)
- # new api
- # OFPActionSetField(eth_src="00:00:00:00:00")
super(OFPActionSetField, self).__init__()
- if isinstance(field, OFPMatchField):
- # old api compat
- assert len(kwargs) == 0
- self.field = field
- else:
- # new api
- assert len(kwargs) == 1
- key = kwargs.keys()[0]
- value = kwargs[key]
- assert isinstance(key, (str, unicode))
- assert not isinstance(value, tuple) # no mask
- self.key = key
- self.value = value
+ assert len(kwargs) == 1
+ key = kwargs.keys()[0]
+ value = kwargs[key]
+ assert isinstance(key, (str, unicode))
+ assert not isinstance(value, tuple) # no mask
+ self.key = key
+ self.value = value
@classmethod
def parser(cls, buf, offset):
@@ -3681,17 +3671,9 @@ class OFPActionSetField(OFPAction):
k, uv = ofproto.oxm_to_user(n, value, mask)
action = cls(**{k: uv})
action.len = len_
-
- # old api compat
- action.field = OFPMatchField.parser(buf, offset + 4)
-
return action
def serialize(self, buf, offset):
- # old api compat
- if self._composed_with_old_api():
- return self.serialize_old(buf, offset)
-
n, value, mask = ofproto.oxm_from_user(self.key, self.value)
len_ = ofproto.oxm_serialize(n, value, mask, buf, offset + 4)
self.len = utils.round_up(4 + len_, 8)
@@ -3699,32 +3681,7 @@ class OFPActionSetField(OFPAction):
pad_len = self.len - (4 + len_)
ofproto_parser.msg_pack_into("%dx" % pad_len, buf, offset + 4 + len_)
- # XXX old api compat
- def serialize_old(self, buf, offset):
- len_ = ofproto.OFP_ACTION_SET_FIELD_SIZE + self.field.oxm_len()
- self.len = utils.round_up(len_, 8)
- pad_len = self.len - len_
-
- msg_pack_into('!HH', buf, offset, self.type, self.len)
- self.field.serialize(buf, offset + 4)
- offset += len_
- ofproto_parser.msg_pack_into("%dx" % pad_len, buf, offset)
-
- # XXX old api compat
- def _composed_with_old_api(self):
- return not hasattr(self, 'value')
-
def to_jsondict(self):
- # XXX old api compat
- if self._composed_with_old_api():
- # copy object first because serialize_old is destructive
- o2 = OFPActionSetField(self.field)
- # serialize and parse to fill new fields
- buf = bytearray()
- o2.serialize(buf, 0)
- o = OFPActionSetField.parser(str(buf), 0)
- else:
- o = self
return {
self.__class__.__name__: {
'field': ofproto.oxm_to_jsondict(self.key, self.value)
@@ -3734,29 +3691,7 @@ class OFPActionSetField(OFPAction):
@classmethod
def from_jsondict(cls, dict_):
k, v = ofproto.oxm_from_jsondict(dict_['field'])
- o = OFPActionSetField(**{k: v})
-
- # XXX old api compat
- # serialize and parse to fill old attributes
- buf = bytearray()
- o.serialize(buf, 0)
- return OFPActionSetField.parser(str(buf), 0)
-
- # XXX old api compat
- def __str__(self):
- # XXX old api compat
- if self._composed_with_old_api():
- # copy object first because serialize_old is destructive
- o2 = OFPActionSetField(self.field)
- # serialize and parse to fill new fields
- buf = bytearray()
- o2.serialize(buf, 0)
- o = OFPActionSetField.parser(str(buf), 0)
- else:
- o = self
- return super(OFPActionSetField, o).__str__()
-
- __repr__ = __str__
+ return OFPActionSetField(**{k: v})
def stringify_attrs(self):
yield (self.key, self.value)
--
1.8.3.4 (Apple Git-47)
------------------------------------------------------------------------------
WatchGuard Dimension instantly turns raw network data into actionable
security intelligence. It gives you real-time visual feedback on key
security issues and trends. Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel