OpenFlow 版本无关的类和函数¶
OpenFlow 消息的基础类¶
- class os_ken.ofproto.ofproto_parser.MsgBase(datapath)¶
这是 OpenFlow 消息类的基础类。
该类的一个实例至少具有以下属性。
属性
描述
datapath
一个 os_ken.controller.controller.Datapath 实例,用于此消息
版本
OpenFlow 协议版本
msg_type
OpenFlow 消息的类型
msg_len
消息的长度
xid
事务 ID
buf
原始数据
- _TYPE¶
_TYPE 类属性用于注释属性的类型。
此类型信息用于查找 JSON 样式的字典的适当转换。
目前已实现以下类型:
类型
描述
ascii
US-ASCII
utf-8
UTF-8
示例
_TYPE = { 'ascii': [ 'hw_addr', ], 'utf-8': [ 'name', ] }
- classmethod from_jsondict(dict_, decode_string=<function b64decode>, **additional_args)¶
从 JSON 样式的字典创建实例。
使用字典中指定的参数实例化此类。
此方法接受以下参数:
参数
描述
dict_
一个描述参数的字典。例如,{"Param1": 100, "Param2": 200}
decode_string
(可选) 指定如何解码字符串。默认值为 base64。此参数仅用于没有在 _TYPE 类属性中显式类型注释的属性。
additional_args
(可选) 构造函数的其他关键字参数。
- to_jsondict(encode_string=<function b64encode>)¶
此方法返回一个 JSON 样式的字典来描述此对象。
返回的字典与 json.dumps() 和 json.loads() 兼容。
假设 ClassName 对象继承自 StringifyMixin。对于如下对象
ClassName(Param1=100, Param2=200)
此方法将产生
{ "ClassName": {"Param1": 100, "Param2": 200} }
此方法接受以下参数:
参数
描述
encode_string
(可选) 指定如何编码具有 python 'str' 类型的属性。默认值为 base64。此参数仅用于没有在 _TYPE 类属性中显式类型注释的属性。
函数¶
- os_ken.ofproto.ofproto_parser.ofp_msg_from_jsondict(dp, jsondict)¶
此函数从给定的 JSON 样式字典实例化适当的 OpenFlow 消息类。以下代码片段创建的对象是等效的。
代码 A
jsonstr = '{ "OFPSetConfig": { "flags": 0, "miss_send_len": 128 } }' jsondict = json.loads(jsonstr) o = ofp_msg_from_jsondict(dp, jsondict)
代码 B
o = dp.ofproto_parser.OFPSetConfig(flags=0, miss_send_len=128)
此函数接受以下参数:
参数
描述
dp
os_ken.controller.Datapath 的一个实例。
jsondict
一个 JSON 样式的字典。