copied from of12 version
Signed-off-by: YAMAMOTO Takashi <[email protected]>
---
ryu/ofproto/ofproto_v1_3_parser.py | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/ryu/ofproto/ofproto_v1_3_parser.py
b/ryu/ofproto/ofproto_v1_3_parser.py
index 04b7b04..2f8a035 100644
--- a/ryu/ofproto/ofproto_v1_3_parser.py
+++ b/ryu/ofproto/ofproto_v1_3_parser.py
@@ -198,6 +198,11 @@ class OFPErrorMsg(MsgBase):
@classmethod
def parser(cls, datapath, version, msg_type, msg_len, xid, buf):
+ type_, = struct.unpack_from('!H', buffer(buf),
+ ofproto_v1_3.OFP_HEADER_SIZE)
+ if type_ == ofproto_v1_3.OFPET_EXPERIMENTER:
+ return OFPErrorExperimenterMsg.parser(datapath, version, msg_type,
+ msg_len, xid, buf)
msg = super(OFPErrorMsg, cls).parser(datapath, version, msg_type,
msg_len, xid, buf)
msg.type, msg.code = struct.unpack_from(
@@ -213,6 +218,27 @@ class OFPErrorMsg(MsgBase):
self.buf += self.data
+class OFPErrorExperimenterMsg(MsgBase):
+ def __init__(self, datapath, type_=None, exp_type=None, experimenter=None,
+ data=None):
+ super(OFPErrorExperimenterMsg, self).__init__(datapath)
+ self.type = ofproto_v1_3.OFPET_EXPERIMENTER
+ self.exp_type = exp_type
+ self.experimenter = experimenter
+ self.data = data
+
+ @classmethod
+ def parser(cls, datapath, version, msg_type, msg_len, xid, buf):
+ cls.cls_msg_type = msg_type
+ msg = super(OFPErrorExperimenterMsg, cls).parser(
+ datapath, version, msg_type, msg_len, xid, buf)
+ msg.type, msg.exp_type, msg.experimenter = struct.unpack_from(
+ ofproto_v1_3.OFP_ERROR_EXPERIMENTER_MSG_PACK_STR, msg.buf,
+ ofproto_v1_3.OFP_HEADER_SIZE)
+ msg.data = msg.buf[ofproto_v1_3.OFP_ERROR_EXPERIMENTER_MSG_SIZE:]
+ return msg
+
+
@_register_parser
@_set_msg_type(ofproto_v1_3.OFPT_ECHO_REQUEST)
class OFPEchoRequest(MsgBase):
--
1.8.3.1
------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel