DPDK, как проводится опрос? - PullRequest
1 голос
/ 18 февраля 2020

Что я понимаю о DPDK, так это о том, что кольцевой буфер NI C сопоставляется с адресом пользовательского пространства, а данные там получают процессы на основе опроса. (Пожалуйста, исправьте меня, если ошиблись)

Для этого, как проводится опрос periodi c? Существует ли какой-либо процесс, работающий в фоновом режиме, который периодически вызывает опрос через API, предоставляемый PMD (драйвер режима опроса)?

1 Ответ

1 голос
/ 18 февраля 2020

Опрос выполняется просто в al oop, то есть:

main() {
    // Init ports
    ...
    // Main loop
    while(!quit_flag) {
        // Receive a burst of packets (poll)
        nb_rx = rte_eth_rx_burst(...);

        // Process packets
        ...

        // Send a burst of packets
        rte_eth_tx_burst(..., nb_rx);
    }
}

Конечно, это может быть сделано в отдельном потоке (ах) (в DPDK мы называем их lcores), но идея остается неизменным: модель приложения зависит от разработчика.

В репозитории DPDK есть множество примеров

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

...