ovs-vsctl 和 ovs-dpctl 的区别

The Difference between ovs-vsctl and ovs-dpctl

如果我正在设置一个通过 OpenFlow 控制的交换机设备,使用 ovs-dpctlovs-vsctl[=24 的条件是什么=]? ovs-dpctl 的手册页说如果使用 ovs-vswitchd 则使用 ovs-vsctl

那么你会在什么情况下使用ovs-dpctl?它做了什么你不能做的?

一个后续问题是 OF "datapath" 值的来源。这将是 OF 控制器用于识别 OF 开关的 OF 规范中的 64 位数字。这个值是自动计算的还是必须输入?

感谢您对此的任何帮助。

ovs-dpctl:

创建、修改和删除 Open vSwitch 数据路径的工具。 以下是一些示例(命令是随机的):

– ovs-dpctl add-dp dp1
– ovs-dpctl add-if dp1 eth0
– ovs-dpctl show
– ovs-dpctl dump-flows

ovs-vsctl:

用于查询和更新 ovs-vswitchd 配置的实用程序(在 ovsdb-server 的帮助下)。端口配置、网桥 additions/deletions、绑定和 VLAN 标记只是此命令可用的部分选项。

这里有一些例子(命令是随机的):

– ovs-vsctl –V : Prints the current version of openvswitch.
– ovs-vsctl show : Prints a brief overview of the switch database configuration.
– ovs-vsctl list-br : Prints a list of configured bridges
– ovs-vsctl list-ports <bridge> : Prints a list of ports on a specific bridge.
– ovs-vsctl list interface : Prints a list of interfaces.
– ovs-vsctl add-br <bridge> : Creates a bridge in the switch database.

ovs-ofctl:

我认为这个工具也值得一提。用于监视和管理 OpenFlow 交换机的命令行工具。用于列出OVS内核模块中实现的流程

- ovs-ofctl add-flow <bridge> <flow>
- ovs-ofctl add-flow <bridge> <match-field> actions=all
- ovs-ofctl del-flows <bridge> <flow>

对我来说,ovs-vsctl 似乎用于配置开放式 vswitch 本身,如配置端口、网桥等。而 ovs-dpctl 用于处理数据路径和接口。

来源:

  1. openvswitch and ovsdb
  2. OpenVSwitch slides
  3. openvswitch cheat sheet

你的第二个问题 -> OF 数据路径: 对我来说,openflow 上下文中的数据路径是一个对象,表示控制器和交换机之间的连接。我相信 OF 控制器可以解决这个问题,但这取决于 OF 控制器。

ovs-vsctl 用于管理 openvswitch,ovs-dpctl 可用于管理 openvswitch 内的数据路径。

可以在 dpif-provider.h:

中找到解释数据路径的相关评论
A datapath is a collection of physical or virtual ports that are
exposed over OpenFlow as a single switch.  Datapaths and the 
collections of ports that they contain may be fixed or dynamic.

Openvswitch 为不同的数据路径实现提供了能力。下图来自 OVS porting guide 显示了不同的数据路径如何适应 OVS 架构。

            _
           |   +-------------------+
           |   |    ovs-vswitchd   |<-->ovsdb-server
           |   +-------------------+
           |   |      ofproto      |<-->OpenFlow controllers
           |   +--------+-+--------+  _
           |   | netdev | |ofproto-|   |
 userspace |   +--------+ |  dpif  |   |
           |   | netdev | +--------+   |
           |   |provider| |  dpif  |   |
           |   +---||---+ +--------+   |
           |       ||     |  dpif  |   | implementation of
           |       ||     |provider|   | ofproto provider
           |_      ||     +---||---+   |
                   ||         ||       |
            _  +---||-----+---||---+   |
           |   |          |datapath|   |
    kernel |   |          +--------+  _|
           |   |                   |
           |_  +--------||---------+
                        ||
                     physical
                       NIC