of15: Implement OFPBundleCtrlMsg parser

TODO: backport to of14
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
YAMAMOTO Takashi 2015-04-07 15:44:33 +09:00 committed by FUJITA Tomonori
parent 87015d1a2d
commit 49ef3cd658
2 changed files with 23 additions and 2 deletions

View File

@ -5957,6 +5957,7 @@ class OFPSetAsync(MsgBase):
self.buf += bin_props
@_register_parser
@_set_msg_type(ofproto.OFPT_BUNDLE_CONTROL)
class OFPBundleCtrlMsg(MsgBase):
"""
@ -5996,7 +5997,8 @@ class OFPBundleCtrlMsg(MsgBase):
[ofp.OFPBF_ATOMIC], [])
datapath.send_msg(req)
"""
def __init__(self, datapath, bundle_id, type_, flags, properties):
def __init__(self, datapath, bundle_id=None, type_=None, flags=None,
properties=None):
super(OFPBundleCtrlMsg, self).__init__(datapath)
self.bundle_id = bundle_id
self.type = type_
@ -6013,6 +6015,25 @@ class OFPBundleCtrlMsg(MsgBase):
self.type, self.flags)
self.buf += bin_props
@classmethod
def parser(cls, datapath, version, msg_type, msg_len, xid, buf):
msg = super(OFPBundleCtrlMsg, cls).parser(datapath, version,
msg_type, msg_len,
xid, buf)
(bundle_id, type_, flags) = struct.unpack_from(
ofproto.OFP_BUNDLE_CTRL_MSG_PACK_STR, buf,
ofproto.OFP_HEADER_SIZE)
msg.bundle_id = bundle_id
msg.type = type_
msg.flags = flags
msg.properties = []
rest = msg.buf[ofproto.OFP_BUNDLE_CTRL_MSG_SIZE:]
while rest:
p, rest = OFPBundleProp.parse(rest)
msg.properties.append(p)
return msg
@_set_msg_type(ofproto.OFPT_BUNDLE_ADD_MESSAGE)
class OFPBundleAddMsg(MsgInMsgBase):

View File

@ -145,7 +145,7 @@ implemented = {
ofproto_v1_5.OFPT_ROLE_STATUS: (True, False),
ofproto_v1_5.OFPT_TABLE_STATUS: (True, False),
ofproto_v1_5.OFPT_REQUESTFORWARD: (False, True),
ofproto_v1_5.OFPT_BUNDLE_CONTROL: (False, True),
ofproto_v1_5.OFPT_BUNDLE_CONTROL: (True, True),
ofproto_v1_5.OFPT_BUNDLE_ADD_MESSAGE: (False, True),
},
}