Что такое команда, данные и кольцо в vmxnet3 PMD в DPDK - PullRequest
1 голос
/ 27 мая 2020

Я начинаю работать и понимаю основы DPDK, и он работает с VMWare (VMXNET3 PMD). Я начал просматривать базу кода и нашел ссылку на 3 кольцевые структуры в vmxnet3_tx_queue_t (на vmxnet3_ring.h), а именно cmd_ring, data_ring и comp_ring. не получил документацию по нему или не смог понять.

Любые указатели / направления были бы очень полезны.

1 Ответ

1 голос
/ 28 мая 2020

vmxnet3 довольно прилично описан в документации DPDK NI C: http://doc.dpdk.org/guides/nics/vmxnet3.html

Драйвер предварительно выделяет буферы пакетов и загружает команду кольцевые дескрипторы заранее. Гипервизор заполняет эти буферы пакетов по прибытии пакетов и описатели кольца завершения записи, которые в конечном итоге извлекаются PMD. После приема приложение DPDK освобождает дескрипторы и загружает новые буферы пакетов для приходящих пакетов.

В процедуре передачи приложение DPDK заполняет указатели буфера пакетов в дескрипторах кольца команд и уведомляет гипервизор. В ответ гипервизор принимает пакеты и передает их vSwitch. Он записывает их в кольцо дескрипторов завершения. Кольца считываются PMD в следующем вызове процедуры передачи, а буферы и дескрипторы освобождаются из памяти.

* 1012 очереди абстрагируются API драйвера режима опроса DPDK:

https://doc.dpdk.org/guides/prog_guide/poll_mode_drv.html

Так что вам лучше обратиться к этому документу и использовать этот API, так как вы не сможете в любом случае использовать vmxnet3 звонки прямо в приложении ...

...