в моей проблеме у RSS не было хорошего баланса нагрузки между ядрами ЦП. В случае, если пакеты rx были изменены путем вставки тегов между mac и ip, поэтому dpdk не смог его распознать. очереди rx настроены. в этом ответе на вопрос: как отключить RSS, но при этом использовать несколько очередей RX в DPDK? он говорит, что можно балансировать нагрузку в циклическом режиме, используя RTE_FLOW. как правильно это сделать грамматически? Я хотел бы знать API или структуры для настройки метода циклического перебора вот моя информация о среде выполнения: 1) версия dpdk: 19.11.9 2) ник PMD: ixgbe 3) прошивка: 825999 и XXV710 4) версия ОС: ядро Ubuntu 16.04: 4.4.0-186
хорошо, вот это 1) версия dpdk: 19.11.9 2) nic PMD: ixgbe 3) fireware: 825999 и XXV710 4) версия ОС: ubuntu 16.04 kerner: 4.4.0-186 5) пример кода для дистрибутива rte_flow: у меня есть Я еще не написал никакого кода о распределении rte_flow, я прочитал пример rte_flow, не вижу кода для настройки циклического перебора. кажется, указывает очередь для указывает поток. и я новичок в dpdk, поэтому, если это не то, что вы хотите, укажите. Я спросил соответствующих практиков, они сказали, что изменение драйвера pmd может решить мою проблему, это единственный способ?
Общая практика @Jhonny заключается в том, чтобы обновить недостающую информацию в вопросе. Пожалуйста, сделайте то же самое.
Что касается фрагмента кода, «лучше всего поделиться фрагментом кода для воспроизведения ошибки». Но здесь непонятно, задаете ли вы вопрос или просите решение, не попробовав или не поделившись фрагментом кода.
@Jhonny, вы упоминаете, что спрашивали других, и соответствующие специалисты предлагали изменить драйвер PM. Насколько я понимаю, это неправильный совет, поскольку закрепление очереди rte_flow выполняется из приложения, а не из pmd. Пожалуйста, обновите вопрос с соответствующим предложением, которым поделились специалисты. Это поможет лучше понять их точку зрения
Спасибо за совет, я обновил вопрос. im not ask for solution, I just want to know how to set up round robin by 'RTE_FLOW' Can you give me a few API
имя или примеры на официальном сайте dpdk
спасибо за обновление вопроса с необходимой информацией. На ваш вопрос: «Просто хочу узнать, как настроить циклический перебор с помощью RTE_FLOW. Можете ли вы дать мне несколько API; I have already mentioned in my comment
. Насколько я понимаю, это неправильный совет, поскольку закрепление очереди rte_flow выполняется из приложения, а не из pmd. следовательно, нет API для DPDK, который делал бы для вас что-то кроме RSS в конкретной очереди (но это не то, что вы хотите, согласно вопросу)`. Если вам нужен официальный ответ, я также могу обновить раздел ответов.
хорошо, спасибо, я вижу, вы можете обновить ответ, и я приму его
Я подробно обновил ответ на вопросы. Если вы найдете это полезным, пожалуйста, примите и проголосуйте, чтобы закрыть то же самое.
Согласно вопросу
RSS did not have a good load balance between CPU cores case the rx packets has been modified by insert tags between mac and ip
Есть пара моментов, которые необходимо уточнить. так что позвольте мне объяснить
RAW Pattern
. Целью этой функции является поддержка специального протокола, который по умолчанию не понимает сетевая карта (VXLAN, GENEVE, RTP и другие протоколы).Следовательно, в зависимости от сетевой карты, поставщика, поддержки RSS для L2 и встроенного ПО возможность вычисления RSS для полей между ними зависит от инициализации порта или конкретной конфигурации RTE_FLOW. Например, RSS ETH поддерживается на
I40E_INSET_DMAC | I40E_INSET_SMAC
NH_FLD_ETH_TYPE and NET_PROT_ETH
RSS_DMAC_INDEX
FLOW_KEY_TYPE_VLAN and FLOW_KEY_TYPE_CH_LEN_90B
Следовательно, для NIC ixgbe and XXV710
нет готовой поддержки custom header
между Ethernet и IP.
Альтернативы:
RAW
, как определено 12.2.6.2. После того, как поставщик добавил поддержку, вы можете создать простой traffic spread tool
, который обеспечит распределение трафика по нужным очередям RX в циклическом режиме.примечание: я не рекомендую использовать статический Round Robin на основе HW, так как это создаст двойную проблему.
Для варианта 4 (Модель программного обеспечения):
rte_distributor
для распределения трафика на основе кастома.rte_eventdev
с атомарной моделью, чтобы распределить рабочую нагрузку на нескольких рабочих.[Пояснение из комментариев]:
[ОТВЕЧАТЬ] Поскольку вы используете настраиваемый заголовок, а не общий VLAN|IP|порт, это предложение неверно. Как вы пояснили в вопросе и комментариях, которые вы хотите распространять как RSS для пользовательского заголовка.
[ОТВЕЧАТЬ], как описано выше, не все сетевые карты поддерживают RSS и RAW. Поскольку ваша текущая сетевая карта ixgbe and i40e
, функция анализа и выполнения RSS для пользовательского заголовка маловероятна. вы можете попробовать вариант 2 (работа с Intel, создание нового ddp) для i40e, чтобы добиться того же или реализовать в ПО, как предложено в варианте 4.
[ОТВЕЧАТЬ] обычно обновляется фрагментами кода или шагами, используемыми для воспроизведения ошибки. Но текущий вопрос больше похож на уточнение. Пожалуйста, обратитесь выше.
не могли бы вы обновить следующую информацию
1) dpdk version, 2) nic PMD, 3) firmware, 4) os version, 5) sample code for rte_flow distribution
.