From c75be1d5f0e318e2e5bfc9a6a741a32b26c03dee Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Wed, 19 Jun 2013 15:09:17 +0900 Subject: of13 fix multipart reply parsing make the parser return specific classes like OFPGroupFeaturesStatsReply instead of always returning OFPMultipartReply. Signed-off-by: YAMAMOTO Takashi Signed-off-by: FUJITA Tomonori --- ryu/ofproto/ofproto_v1_3_parser.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ryu/ofproto/ofproto_v1_3_parser.py b/ryu/ofproto/ofproto_v1_3_parser.py index 6ab9e1a5..be1846f0 100644 --- a/ryu/ofproto/ofproto_v1_3_parser.py +++ b/ryu/ofproto/ofproto_v1_3_parser.py @@ -2032,12 +2032,14 @@ class OFPMultipartReply(MsgBase): @classmethod def parser(cls, datapath, version, msg_type, msg_len, xid, buf): - msg = super(OFPMultipartReply, cls).parser(datapath, version, msg_type, - msg_len, xid, buf) - msg.type, msg.flags = struct.unpack_from( + type_, flags = struct.unpack_from( ofproto_v1_3.OFP_MULTIPART_REPLY_PACK_STR, buffer(buf), ofproto_v1_3.OFP_HEADER_SIZE) - stats_type_cls = cls._STATS_MSG_TYPES.get(msg.type) + stats_type_cls = cls._STATS_MSG_TYPES.get(type_) + msg = super(OFPMultipartReply, stats_type_cls).parser( + datapath, version, msg_type, msg_len, xid, buf) + msg._type = type_ + msg.flags = flags offset = ofproto_v1_3.OFP_MULTIPART_REPLY_SIZE body = [] -- cgit v1.2.3