当ovsdb node 连接到控制器的时候,这个时候就建立其了ovsdb node manager 与odl的被动连接方式,为了使的这种被动连接方式成立,必须指定控制器所在ip以及控制器监听的ovsdb端口号,具体命令是:
ovs-vsctl set-manager tcp:<IP address>:6640
下图表示的使ovsdb节点连接到odl的动作流。
步骤1
OVSDB节点建立与OpenDaylight的连接。
步骤2
OVSDB南向provider将OVSDB节点添加到OVSDB MD-SAL oper数据存储中。
步骤3
OVSDB南向provider 根据节点上报信息监听。
步骤4
OVSDB南向provider 监听 OVSDB节点对应数据库所做的任何变动。
当odl连接大奥ovsdb node的时候,南向provider会向节点连接open_vswitch表中写入一个external-id字段。这个id表示的一个ovsdb node,opendaylight-iid和external-id字段示例如下所示:
Open_vSwitch表的external-ids列中的opendaylight-iid字段使得OVSDB节点在操作的MD-SAL数据存储中找到与MD-SALconfig 数据库中相同的节点id。但是如果在external-ids列中没有opendaylight-iid字段,就像刚刚那个截图,此时还建立了一个被动的OVSDB管理器连接,那么将使用Open_vSwitch表的UUID字段来操作MD-SAL operational数据库中的OVSDB节点信息。ovs的uuid示例如下:“node-id”: “ovsdb://uuid/b8dc0bfb-d22b-4938-a2e8-b0084d7bd8c1”。
可以使用以下命令从Open_vSwitch表中删除opendaylight-iid条目:
sudo ovs-vsctl remove open_vswitch . external-id "opendaylight-iid"
建立了ovsdb node 与控制器的连接之后,当节点信息变化后,操作流如下:
步骤1
添加或删除桥和端口,或改变OVSDB节点、桥或端口的属性。
步骤2
OVSDB south provider 接收到OVSDB southbound provider 对MD-SALconfig数据库更改的通知。
步骤3
OVSDB 事务 构建成功,并被传输到OVSDB节点,更新OVSDB节点上的OVSDB数据库。
步骤4
OVSDB节点向OVSDB Southbound provider发送更新消息,更改ovsdb 节点数据。
步骤5
OVSDB Southbound provider将从OVSDB节点接收到的更改映射到状态数据库当中。