OpenFlow¶
- class os_ken.lib.packet.openflow.OFPUnparseableMsg(datapath, version, msg_type, msg_len, xid, body)¶
不可解析的 OpenFlow 消息编码类。
一个实例至少具有以下属性:
属性
描述
datapath
一个 os_ken.ofproto.ofproto_protocol.ProtocolDesc 实例,用于此消息,或者如果 OpenFlow 协议版本不受支持,则为 None。
版本
OpenFlow 协议版本
msg_type
OpenFlow 消息类型
msg_len
消息长度
xid
事务 ID
body
OpenFlow 消息体数据
注意
"datapath" 属性与 os_ken.controller.controller.Datapath 不同。因此,您不能使用 "datapath" 属性发送 OpenFlow 消息。例如,"datapath" 属性没有 send_msg 方法。
- class os_ken.lib.packet.openflow.openflow(msg)¶
OpenFlow 消息编码/解码类。
一个实例至少具有以下属性:
属性
描述
msg
OpenFlow 消息的一个实例(参见 OpenFlow 协议 API 参考)或一个 OFPUnparseableMsg 实例,如果将数据包解析为 OpenFlow 消息失败。
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。
- serialize(_payload, _prev)¶
编码协议头。
此方法仅在编码数据包时使用。
编码协议头。返回一个包含头的字节数组。
payload 是将立即跟随此头的其余数据包。
prev 是外部协议头的 packet_base.PacketBase 子类。如果当前头是外部头,则 prev 为 None。例如,对于 tcp.serialize,prev 是 ipv4 或 ipv6。