Signed-off-by: Simon Horman <[email protected]>
---
ryu/ofproto/ofproto_v1_4_parser.py | 91 ++++++++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+)
diff --git a/ryu/ofproto/ofproto_v1_4_parser.py
b/ryu/ofproto/ofproto_v1_4_parser.py
index b366d9f..aae6a21 100644
--- a/ryu/ofproto/ofproto_v1_4_parser.py
+++ b/ryu/ofproto/ofproto_v1_4_parser.py
@@ -844,6 +844,97 @@ class OFPPortDescStatsReply(OFPMultipartReply):
super(OFPPortDescStatsReply, self).__init__(datapath, **kwargs)
+class OFPExperimenterMultipart(ofproto_parser.namedtuple(
+ 'OFPExperimenterMultipart',
+ ('experimenter', 'exp_type', 'data'))):
+ """
+ The body of OFPExperimenterStatsReply multipart messages.
+
+ ================ ======================================================
+ Attribute Description
+ ================ ======================================================
+ experimenter Experimenter ID
+ exp_type Experimenter defined
+ data Experimenter defined additional data
+ ================ ======================================================
+ """
+
+ @classmethod
+ def parser(cls, buf, offset):
+ args = struct.unpack_from(
+ ofproto.OFP_EXPERIMENTER_MULTIPART_HEADER_PACK_STR, buf,
+ offset)
+ args = list(args)
+ args.append(buf[offset +
+ ofproto.OFP_EXPERIMENTER_MULTIPART_HEADER_SIZE:])
+ stats = cls(*args)
+ stats.length = ofproto.OFP_METER_FEATURES_SIZE
+ return stats
+
+ def serialize(self):
+ buf = bytearray()
+ msg_pack_into(ofproto.OFP_EXPERIMENTER_MULTIPART_HEADER_PACK_STR,
+ buf, 0,
+ self.experimenter, self.exp_type)
+ return buf + self.data
+
+
+class OFPExperimenterStatsRequestBase(OFPMultipartRequest):
+ def __init__(self, datapath, flags,
+ experimenter, exp_type,
+ type_=None):
+ super(OFPExperimenterStatsRequestBase, self).__init__(datapath, flags)
+ self.experimenter = experimenter
+ self.exp_type = exp_type
+
+
+@_set_stats_type(ofproto.OFPMP_EXPERIMENTER, OFPExperimenterMultipart)
+@_set_msg_type(ofproto.OFPT_MULTIPART_REQUEST)
+class OFPExperimenterStatsRequest(OFPExperimenterStatsRequestBase):
+ """
+ Experimenter multipart request message
+
+ ================ ======================================================
+ Attribute Description
+ ================ ======================================================
+ flags Zero or ``OFPMPF_REQ_MORE``
+ experimenter Experimenter ID
+ exp_type Experimenter defined
+ data Experimenter defined additional data
+ ================ ======================================================
+ """
+ def __init__(self, datapath, flags,
+ experimenter, exp_type, data,
+ type_=None):
+ super(OFPExperimenterStatsRequest, self).__init__(datapath, flags,
+ experimenter,
+ exp_type, type_)
+ self.data = data
+
+ def _serialize_stats_body(self):
+ body = OFPExperimenterMultipart(experimenter=self.experimenter,
+ exp_type=self.exp_type,
+ data=self.data)
+ self.buf += body.serialize()
+
+
[email protected]_stats_type(body_single_struct=True)
+@_set_stats_type(ofproto.OFPMP_EXPERIMENTER, OFPExperimenterMultipart)
+@_set_msg_type(ofproto.OFPT_MULTIPART_REPLY)
+class OFPExperimenterStatsReply(OFPMultipartReply):
+ """
+ Experimenter multipart reply message
+
+ ================ ======================================================
+ Attribute Description
+ ================ ======================================================
+ body An ``OFPExperimenterMultipart`` instance
+ ================ ======================================================
+ """
+ def __init__(self, datapath, type_=None, **kwargs):
+ super(OFPExperimenterStatsReply, self).__init__(datapath, **kwargs)
+
+
class OFPFlowStats(StringifyMixin):
def __init__(self, table_id=None, duration_sec=None, duration_nsec=None,
priority=None, idle_timeout=None, hard_timeout=None,
--
1.8.4
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel