Openvswitch支持dpctl

时间:2014-12-12 07:04:42

标签: mininet

我在Ubuntu 14.04下安装了Mininet和openvswitch。尝试使用dpctl发出vSwitch数据路径命令(到Vswitch)。在bash提示符下发出dpctl命令时,返回总是"命令未找到"。使用sudo甚至在openvswitch目录中都是如此。什么阻止找到此命令?似乎它是openvswitch发行版的一部分。还运行NOX控制器,仅供参考。 谢谢!

4 个答案:

答案 0 :(得分:2)

我认为您要查找的命令是ovs-dpctl。它是openvswitch-switch package

的一部分

答案 1 :(得分:2)

Mininet演练使用旧的 dpctl 命令(来自原始参考OpenFlow实现)来显示xterm中的流。最近,使用Open vSwitch工具 ovs-ofctl 更容易。例如,显示从交换机xterm安装在交换机中的流,使用:source

ovs-ofctl dump-flows tcp:127.0.0.1:6634

答案 2 :(得分:1)

不同之处在于:

ovs-dpctl - 管理Open vSwitch数据路径 ovs-ofctl - 管理OpenFlow交换机

我认为您可以使用其中任何一种,但使用情况稍有不同,据我所知,这两种情况相同:

ovs-dpctl dump-flows 要么 ovs-ofctl dump-flows tcp:127.0.0.1:6634

screenshot of command outputs

答案 3 :(得分:0)

ovs-ofctl和ovs-dpctl用于完全两种不同的目的。 ovs-ofctl总是代表开放流动。因此,您可以查看所有不同表的所有不同流。无论控制器添加什么,它都将始终是相同的流程。但是dpctl显示了ovs数据路径流程,即megaflows。 Ovs有一个megaflows的概念,它是多个管道流的组合。例如,如果您有3个开放流程,如:

table = 0,ip,action = dec_ttl,goto_table:1

table = 1,ip,nw_src = 10.0.0.0 / 8,action = goto_table:2

table = 2,in_port = 1,action = output:2

如果一个数据包命中所有3个流,那么你可能会看到一个megaflow在该数据包的数据路径中组合了所有3个开放流规则。 如果您使用dpctl,您可能会看到类似于此的流程:

table = 0,in_port = 1,ip,nw_src = 10.0.0.1,action = dec_ttl,output:2

请记住,OVS会以这样的方式生成megaflow:单一类型的数据包永远不会在数据路径上遇到2个不同的兆流。而ovs中的megaflow机制是为了提高ovs中数据包处理的性能。

如果您想了解有关ovs架构的更多信息,请参阅以下文章: http://openvswitch.org/support/papers/nsdi2015.pdf