0x1 协议

ovsdb是RFC规定的一个协议,使用JSONRPC实现远程调用通信。


0x2 整体架构

image.png

0x3 ovsdb-server


0x4 ovsdb-client


模块职责

ovsdb-idl是ovs里面实现的一个库,主要有以下几个作用

  • 封装和ovsdb-server通信部分,提供了抽象接口给业务进程使用
    • 将数据以本地指针的方式提供给业务进程使用。
    • 业务进程使用库提供的接口即可提交数据
    • 实现和业务无关,使用者只需修改schema配置文件即可,无需改动代码,对扩展开发,对修改关闭。
  • 提供索引机制,方便查找。

模块实现

  • 整体结构

image.png

  • ovsdb-idl:构建数据库本地缓存idl提供给客户端使用。
  • ovsdb-cs:ovsdb协议的客户端实现,包括连接维护,消息发送,提供抽象接口event给ovsdb-idl使用。
    • 类图

image.png

  • 实现流程图
    • ovsdb-cs的状态机实现

image.png