DPDK Programmer’s Guide(45)Vhost庫

官方文檔查看地址:
http://doc.dpdk.org/guides/prog_guide/service_cores.html
PDF下載地址:
https://www.intel.com/content/www/us/en/embedded/technology/packet-processing/dpdk/dpdk-programmers-guide.html

本篇難度係數:
翻譯:☆☆☆☆☆
理解:★★☆☆☆

45.Vhost Library
vhost庫實現了一個用戶空間virtio net服務器,允許用戶直接操作virtio環。換句話說,它允許用戶從VM virtio net設備獲取/放置數據包。要實現這一點,vhost庫應該能夠:

  • 訪問客戶內存:
    對於QEMU,這是通過使用-object memory-backend-file,share=on,...選擇。這意味着QEMU將創建一個文件作爲guest RAM。share=on選項允許另一個進程映射該文件,這意味着它可以訪問guest RAM。
  • 瞭解有關vring的所有必要信息:
    諸如可用環存儲在何處之類的信息。Vhost定義一些消息(通過Unix域套接字文件傳遞),告訴後端它需要知道如何操作vring的所有信息。

45.1Vhost API概述
以下是一些關鍵的Vhost API函數的概述:

  • rte_vhost_driver_register(path, flags)
    該函數將一個vhost驅動程序註冊到系統中。path指定Unix域套接字文件路徑。
    目前支持的標誌是:
    • RTE_VHOST_USER_CLIENT
      當給出該標誌時,DPDK vhost-user將充當客戶機。請看下面的解釋。
    • RTE_VHOST_USER_NO_RECONNECT
      當DPDK vhost-user作爲客戶機時,它將繼續嘗試重新連接到服務器(QEMU),直到成功爲止。這在兩種情況下是有用的:
      • 當QEMU尚未啓動時。
      • 當QEMU重新啓動時(例如由於客戶OS重新啓動)。
        默認情況下啓用此重新連接選項。但是,可以通過設置此標誌關閉它。
    • RTE_VHOST_USER_DEQUEUE_ZERO_COPY
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章