Настройка DPDK интерфейсов [Документация VAS Experts]

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
dpi:dpi_components:platform:dpi_config [2026/05/27 15:34] – [dpdk_engine=6: RSS диспетчеров на мост] elena.krasnobryzhdpi:dpi_components:platform:dpi_config [2026/06/03 11:10] (текущий) – [dpdk_engine=7: Явное указание диспетчеров] elena.krasnobryzh
Строка 390: Строка 390:
 <note important>Данный ''dpdk_engine'' доступен с версии 14.2!</note> <note important>Данный ''dpdk_engine'' доступен с версии 14.2!</note>
  
-Данный движок поддерживает гетерогенные конфигурации, когда в одном кластере находятся порты разного типа — например, in-dev 100G порт, out-dev — несколько 10G портов.+Данный движок позволяет явно задавать, какие порты обслуживает каждый диспетчер. Он предназначен для сложных и гетерогенных конфигураций, когда стандартные схемы распределения диспетчеров не подходят. Например, когда в одном кластере используются порты различной производительности (100G, 40G, 10G) или требуется индивидуальная настройка параметров обработки для отдельных групп портов.
  
-Диспетчеры задаются в опциях ''dpdk_dispatch''+Количество диспетчеров определяется числом параметров ''dpdk_dispatch''. Если для диспетчера задан параметр ''rss=N'', создается N диспетчеров — по одному на каждую RXчередь.
-<code>dpdk_dispatch=<список-портов>[;params]*</code>+
  
-Значения+Для каждого диспетчера обязательно указывается используемый ''mempool''. Размер и количество ''mempool'' задаются независимо и могут различаться для разных диспетчеров.
-  * ''<Список-портов>'' задает, какие порты обслуживает данный диспетчер +
-  * ''params'' — дополнительные опции данного диспетчера. Доступные опции: +
-    * ''rss=N'' — включение RSS на всех портах данного диспетчера; будет создано N диспетчеров — по одному на каждую rx-очередь. +
-    * ''mempool_size=N'' — размер ''mbuf_pool'' для данного диспетчера. Каждый ''dpdk_dispatch'' имеет свой mempool, размер пулов может быть разным для разных ''dpdk_dispatch''.+
  
 +Движок является универсальным и позволяет реализовать все схемы распределения диспетчеров, поддерживаемые другими значениями ''dpdk_engine''.
  
-Опций ''dpdk_dispatch'' может быть много, каждая описывает отдельный диспетчер (или группу диспетчеров, если задано rss). Каждый порт кластера должен входить ровно в один параметр ''dpdk_dispatch''. Для on-stick в ''dpdk_dispatch'' описывается **базовый** физический порт, а не on-stick порты, основанные на нем.+Диспетчеры задаются параметрами ''dpdk_dispatch''.
  
 Фатальными ошибками конфигурации считаются следующие случаи: Фатальными ошибками конфигурации считаются следующие случаи:
   * порт кластера не входит ни в какой ''<список-портов>'' параметра ''dpdk_dispatch''   * порт кластера не входит ни в какой ''<список-портов>'' параметра ''dpdk_dispatch''
   * порт кластера входит в ''<список-портов>'' нескольких различных параметров ''dpdk_dispatch''   * порт кластера входит в ''<список-портов>'' нескольких различных параметров ''dpdk_dispatch''
-  * в ''<списке-портов>'' параметра ''dpdk_dispatch'' перечислены порты из разных кластеров— каждый диспетчер должен обслуживать порты только одного кластера+  * в ''<списке-портов>'' параметра ''dpdk_dispatch'' перечислены порты из разных кластеров — каждый диспетчер должен обслуживать порты только одного кластера
  
-Данный движок является универсальным в том смысле, что через него могут быть выражены все остальные движки, например:+Данный движок является универсальным — через него могут быть выражены все остальные движки, например:
 <code> <code>
       dpdk_engine=0: один диспетчер на все порты       dpdk_engine=0: один диспетчер на все порты
Строка 421: Строка 417:
               dpdk_dispatch=port1,port2               dpdk_dispatch=port1,port2
               dpdk_dispatch=port3,port4               dpdk_dispatch=port3,port4
-      dpdk_dispatch=2: диспетчер на направление c поддержкой RSS+ 
 +      dpdk_engine=2: диспетчер на направление c поддержкой RSS
               dpdk_rss=4               dpdk_rss=4
                in_dev=port1:port2                in_dev=port1:port2
Строка 447: Строка 444:
               out_dev=port3:port4               out_dev=port3:port4
               dpdk_dispatch=port1,port3;rss=4               dpdk_dispatch=port1,port3;rss=4
-              dpdk_dispatch=port2,port4;rss=4</code>  +              dpdk_dispatch=port2,port4;rss=4 
-              +</code> 
 Для диспетчера необходимо указывать используемый ''mempool''. Для диспетчера необходимо указывать используемый ''mempool''.
  
   * **Описатель ''mempool''** — только для ''dpdk_engine=7''\\ Формат: <code>dpdk_mempool=name=<name>;size=N</code>   * **Описатель ''mempool''** — только для ''dpdk_engine=7''\\ Формат: <code>dpdk_mempool=name=<name>;size=N</code>
-    * ''name'' задает имя ''mempool'' (max 15 символов) +    * ''name'' задает имя ''mempool'' (максимум 15 символов) 
-    * ''size'' задает размер (число элементов) ''mempool''\\ Оба параметра являются обязательными\\ \\ Опций ''dpdk_mempool'' может быть много, каждая описывает отдельный ''mempool'' <code>dpdk_mempool=...</code> +    * ''size'' задает размер (число элементов) ''mempool'' 
-  * **Описатель диспетчера** — только для ''dpdk_engine=7''\\ Формат:<code>dpdk_dispatch=<список-портов>;mempool=<имя>[;params]*</code> +    * оба параметра являются обязательными\\ \\ Опций ''dpdk_mempool'' может быть несколько, каждая описывает отдельный ''mempool''<code>dpdk_mempool=...</code> 
-    * ''<Список-портов>'' задает, какие порты обслуживает данный диспетчер +  * **''dpdk_max_memzone''** [cold] — устанавливает максимальное количество ''memzone'' в DPDK. По умолчанию DPDK использует ограничение на количество ''memzone'' (обычно 5120, зависит от версии DPDK). Увеличение значения может потребоваться для крупных конфигураций с большим количеством сетевых карт и ''mempool''
-    * ''params'' — дополнительные опции данного диспетчера. Доступные опции: +    * ''0'' — использовать значение по умолчанию, заданное в DPDK\\ Если при запуске fastDPI возникает ошибка: ''Number of requested memzone segments exceeds maximum 5120'' следует увеличить значение параметра ''dpdk_max_memzone'' 
-    * ''mempool=<имя>'' — задает имя ''mempool'' для данного диспетчера (обязательный параметр) +  * **Описатель диспетчера** — только для ''dpdk_engine=7''\\ Формат: <code>dpdk_dispatch=<список-портов>;mempool=<имя>[;params]*</code> 
-    * ''rss=N'' — включение RSS на всех портах данного диспетчера; будет создано N диспетчеровпо одному на каждую rx-очередь.\\ \\ Опций ''dpdk_dispatch'' может быть много, каждая описывает отдельный диспетчер (или группу диспетчеров, если задано ''rss'')<code>dpdk_dispatch=...</code>+    * ''<список-портов>'' задает, какие порты обслуживает данный диспетчер 
 +    * ''mempool=<имя>'' задает имя ''mempool'' для данного диспетчера (обязательный параметр) 
 +    * ''rss=N'' включает RSS на всех портах данного диспетчера; будет создано N диспетчеров — по одному на каждую RX-очередь\\ \\ Опций ''dpdk_dispatch'' может быть несколько, каждая описывает отдельный диспетчер (или группу диспетчеров, если задан ''rss'')<code>dpdk_dispatch=...</code>