Я пытаюсь использовать dpdk с несколькими очередями rx
и tx
на одном физическом порту. Цель состоит в том, чтобы каждый поток отправлял RPC (с некоторым идентификатором внутри пакета) на свой собственный tx
порт и получал ответы в своей собственной rx
очереди.
Однако, чтобы ответы возвращались в правильную очередь, мне нужно настроить rss
для направления пакетов ответа на основе некоторого идентификатора в запросе.
По логике, я бы хотел пометить свои пакеты запросов идентификатором очереди tx-очереди, в которую они отправляются, и серверная сторона rpc отметила бы ответы тем же идентификатором очереди; цель состоит в том, чтобы оборудование считало штамп и направило ответный пакет в правильную аппаратную очередь.
Судя по документации dpdk, я могу указать только хэш-ключ, а не произвольная функция, определяющая, в какую очередь rx
поступят входящие сообщения. К сожалению, я не могу найти исходный код или документацию, демонстрирующую, как используется этот хеш-ключ (что может быть связано с аппаратным обеспечением), поэтому я не могу упорядочить свой пакеты соответственно.
Есть ли способ использовать хэш-ключ для получения эффекта сопоставления запросов и ответов?
В качестве альтернативы, есть ли способ заставить dpdk запустить произвольную функцию для определения правильной очереди назначения для входящего пакета?