Openflow多部分请求错误消息:OFPBRC_BAD_LEN(6)

问题描述 投票:1回答:1

长话短说,我有一个项目,要求我从头开始用python创建一个控制器,并处理通过遵循开放流协议通过mininet拓扑创建的交换机的请求。

有用的开放流协议资源:

我的代码可在github上获得,用于克隆和完全透明:

  • [[从2019年12月12日起删除,请参见下面的答案]

我遇到的问题是,我无法发送有关端口统计信息描述的多部分请求消息(在此PortDesc上搜索link)。我不知道为什么会这样,但是当我在Wireshark中查看数据包数据时,出现“ Range is out of bounds”错误。我无法弄清楚为什么会这样。这是数据包数据的一些屏幕截图:

Wireshark捕获:Bytes where I created the multipart requestOpenflow multipart request messFull screenshot of the openflow protocol

Lua错误消息:Lua error message part 1Lua error message part 2

错误请求错误消息响应:Bad request error message responseenter image description here这里要注意的是,代码显示为OFPBRC_BAD_LEN (6),但是在多部分请求中发送的字节长度为16。

正确发送了数据包数据的同学说,他们使用的包装结构与我相同,只是他们的包装结构成功(请参见python struct文档)。我不知道我的问题可能是什么,而且我的想法已经用光了。任何指针将不胜感激。

TL; DR:我无法发送多部分请求,即使我遵守请求规范,结果仍然会返回错误代码。 Wireshark中的错误显示“ Range out of bounds”,并且我不知道该如何构造我的请求以更正此错误消息。

长话短说,我有一个项目,要求我从头开始用python创建一个控制器,并处理通过遵循开放流协议通过mininet拓扑创建的交换机的请求。 ...

python lua wireshark mininet openflow
1个回答
0
投票

我解决了我的问题,但我不知道问题是什么。首先,我将从解决方案开始,然后讨论我认为问题出在哪里。

© www.soinside.com 2019 - 2024. All rights reserved.