Можно ли настроить dpdk RSS так, чтобы запросы, отправленные из определенной очереди tx, возвращали свои ответы в определенной очереди rx?

Я пытаюсь использовать dpdk с несколькими очередями rx и tx на одном физическом порту. Цель состоит в том, чтобы каждый поток отправлял RPC (с некоторым идентификатором внутри пакета) на свой собственный tx порт и получал ответы в своей собственной rx очереди.

Однако, чтобы ответы возвращались в правильную очередь, мне нужно настроить rss для направления пакетов ответа на основе некоторого идентификатора в запросе.

По логике, я бы хотел пометить свои пакеты запросов идентификатором очереди tx-очереди, в которую они отправляются, и серверная сторона rpc отметила бы ответы тем же идентификатором очереди; цель состоит в том, чтобы оборудование считало штамп и направило ответный пакет в правильную аппаратную очередь.

Судя по документации dpdk, я могу указать только хэш-ключ, а не произвольная функция, определяющая, в какую очередь rx поступят входящие сообщения. К сожалению, я не могу найти исходный код или документацию, демонстрирующую, как используется этот хеш-ключ (что может быть связано с аппаратным обеспечением), поэтому я не могу упорядочить свой пакеты соответственно.

Есть ли способ использовать хэш-ключ для получения эффекта сопоставления запросов и ответов?

В качестве альтернативы, есть ли способ заставить dpdk запустить произвольную функцию для определения правильной очереди назначения для входящего пакета?


person merlin2011    schedule 23.04.2018    source источник


Ответы (1)


есть ли способ заставить dpdk запустить произвольную функцию для определения правильной очереди назначения для входящего пакета?

Если нам нужно перенаправить некоторый трафик в определенную очередь, существует Generic flow API в ДПДК.

Для начала ознакомьтесь с примерами Flow API.

person Andriy Berestovskyy    schedule 23.04.2018