长话短说,我有一个项目,要求我从头开始用python创建一个控制器,并处理通过遵循开放流协议通过mininet拓扑创建的交换机的请求。
有用的开放流协议资源:
我的代码可在github上获得,用于克隆和完全透明:
我遇到的问题是,我无法发送有关端口统计信息描述的多部分请求消息(在此PortDesc
上搜索link)。我不知道为什么会这样,但是当我在Wireshark中查看数据包数据时,出现“ Range is out of bounds”错误。我无法弄清楚为什么会这样。这是数据包数据的一些屏幕截图:
错误请求错误消息响应:这里要注意的是,代码显示为OFPBRC_BAD_LEN (6)
,但是在多部分请求中发送的字节长度为16。
正确发送了数据包数据的同学说,他们使用的包装结构与我相同,只是他们的包装结构成功(请参见python struct
文档)。我不知道我的问题可能是什么,而且我的想法已经用光了。任何指针将不胜感激。
TL; DR:我无法发送多部分请求,即使我遵守请求规范,结果仍然会返回错误代码。 Wireshark中的错误显示“ Range out of bounds”,并且我不知道该如何构造我的请求以更正此错误消息。
长话短说,我有一个项目,要求我从头开始用python创建一个控制器,并处理通过遵循开放流协议通过mininet拓扑创建的交换机的请求。 ...
我解决了我的问题,但我不知道问题是什么。首先,我将从解决方案开始,然后讨论我认为问题出在哪里。