diff options
author | Simon Horman <horms@verge.net.au> | 2014-02-26 16:07:57 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2014-02-27 13:38:58 +0900 |
commit | 5dbe5df40e55f11d61423731f10535dcef24885c (patch) | |
tree | 4b91a8cb9bea341aac68391d967e58e7ec337505 | |
parent | a3afbf08771dad0f53e977e872d542e48e0d3f7f (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.py | 37 |
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): """ |