cpf945 2023-04-21 15:52 采纳率: 0%
浏览 21

使用socket调用交换机ovsdb问题

怎样通过socket,向交换机的ovsdb发送请求,修改端口的tag模式,绑定的vsi等信息?

  • 写回答

1条回答 默认 最新

  • 半调子全栈 2023-04-22 16:45
    关注

    要通过Socket向交换机的ovsdb发送请求,需要使用OVSDB协议。以下是一个大致的步骤:

    1. 建立Socket连接:使用Socket连接ovsdb的IP地址和端口号。
    2. 发送JSON-RPC消息:使用OVSDB协议中的JSON-RPC消息格式,向ovsdb发送修改请求。
    3. 处理响应消息:等待ovsdb响应并解析响应消息。

    具体来说,修改端口的tag模式和绑定的VSI信息可以通过以下JSON-RPC消息进行:

    1. 修改端口tag模式:
    {
      "method": "transact",
      "params": [
        "Open_vSwitch",
        {
          "op": "update",
          "table": "Port",
          "where": [["name", "==", "<port_name>"]],
          "row": {
            "tag": "<tag_mode>"
          }
        }
      ],
      "id": 0
    }
    

    其中,<port_name>是需要修改的端口名,<tag_mode>是要设置的tag模式,例如"trunk""access"

    1. 绑定VSI信息:
    {
      "method": "transact",
      "params": [
        "Open_vSwitch",
        {
          "op": "update",
          "table": "Port",
          "where": [["name", "==", "<port_name>"]],
          "row": {
            "vsi_type": "ovs",
            "options": {
              "vsi_id": "<vsi_id>",
              "vsi_type": "ovs",
              "vsi_name": "<vsi_name>",
              "vsi_vlan_list": "<vlan_list>"
            }
          }
        }
      ],
      "id": 0
    }
    

    其中,<port_name>是需要修改的端口名,<vsi_id>是要绑定的VSI ID,<vsi_name>是要绑定的VSI名称,<vlan_list>是VLAN ID列表,例如"1,2,3"

    需要注意的是,以上消息中的"Open_vSwitch"应该是ovsdb中的数据库名,需要根据实际情况进行修改。

    需要注意的是,以上JSON-RPC消息只是示例,具体实现还需要根据ovsdb的版本和具体要求进行修改。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月21日