summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSimon Horman <horms@verge.net.au>2014-02-26 16:07:57 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2014-02-27 13:38:58 +0900
commit5dbe5df40e55f11d61423731f10535dcef24885c (patch)
tree4b91a8cb9bea341aac68391d967e58e7ec337505
parenta3afbf08771dad0f53e977e872d542e48e0d3f7f (diff)
of14: Add action experimenter support
Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/ofproto/ofproto_v1_4_parser.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/ryu/ofproto/ofproto_v1_4_parser.py b/ryu/ofproto/ofproto_v1_4_parser.py
index 88433555..4f5eea23 100644
--- a/ryu/ofproto/ofproto_v1_4_parser.py
+++ b/ryu/ofproto/ofproto_v1_4_parser.py
@@ -4918,6 +4918,43 @@ class OFPActionPopPbb(OFPAction):
return cls()
+@OFPAction.register_action_type(
+ ofproto.OFPAT_EXPERIMENTER,
+ ofproto.OFP_ACTION_EXPERIMENTER_HEADER_SIZE)
+class OFPActionExperimenter(OFPAction):
+ """
+ Experimenter action
+
+ This action is an extensible action for the experimenter.
+
+ ================ ======================================================
+ Attribute Description
+ ================ ======================================================
+ experimenter Experimenter ID
+ ================ ======================================================
+ """
+ def __init__(self, experimenter, data=None, type_=None, len_=None):
+ super(OFPActionExperimenter, self).__init__()
+ self.experimenter = experimenter
+ self.data = data
+ self.len = (utils.round_up(len(data), 8) +
+ ofproto.OFP_ACTION_EXPERIMENTER_HEADER_SIZE)
+
+ @classmethod
+ def parser(cls, buf, offset):
+ (type_, len_, experimenter) = struct.unpack_from(
+ ofproto.OFP_ACTION_EXPERIMENTER_HEADER_PACK_STR, buf, offset)
+ data = buf[(offset + ofproto.OFP_ACTION_EXPERIMENTER_HEADER_SIZE
+ ): offset + len_]
+ return cls(experimenter, data)
+
+ def serialize(self, buf, offset):
+ msg_pack_into(ofproto.OFP_ACTION_EXPERIMENTER_HEADER_PACK_STR,
+ buf, offset, self.type, self.len, self.experimenter)
+ if self.data:
+ buf += self.data
+
+
@_set_msg_type(ofproto.OFPT_GROUP_MOD)
class OFPGroupMod(MsgBase):
"""