Путь WDI TX

Компоненты пути TX

На следующей схеме показаны компоненты пути TX.

wdi tx path.

Дескрипторы TX

TAL использует целевой дескриптор TX (TTD) для информирования целевого объекта о размере и расположении кадра.

Разные целевые устройства WLAN могут иметь разные определения TTD. Поэтому программирование TTD выполняется в TAL на основе информации, предоставляемой WDI. Чтобы запрограммировать TTD, WDI указывает NET_BUFFER_LIST (NBL), с помощью которого доступны метаданные кадра, такие как идентификатор кадра, расширенный TID, применимые разгрузки задач и действие исключения шифрования.

TAL передает TTD и кадр TX в целевой объект. На основе метаданных в TTD и полях в заголовке кадра целевой объект может определить получателя кадра передачи и способ его передачи.

В конечном итоге целевой объект передает кадр и уведомляет узел о завершении передачи (и, возможно, передачи). Целевой объект использует сообщение о завершении TX, указывающее, была ли передача успешной, и идентификаторы кадров, передача которых была завершена.

Базовые функции

Передача кадра данных включает следующие шаги в программном обеспечении TX узла WLAN.

  1. WDI получает NBL от NDIS и выполняет классификацию TX (если WDI работает в режиме очередей PeerTID).
  2. NBL связан с TTD, полученным путем запроса к TAL. Для повышения эффективности TAL может предварительно выделить TTD из списка lookaside.
  3. TxMgr помещает кадр передачи в очередь на основе PeerTID или порта в зависимости от режима TargetPriorityQueueing .
  4. TxMgr предоставляет NBL и присоединенный TTD к TxEngine, который, в свою очередь, передает его в TIL для передачи в целевой объект. TxEngine/TIL не помещать кадры в очередь (например, перед тем, как сделать их доступными для DMA).
  5. TxEngine указывает обновленное состояние TX кадров, принадлежащих TxEngine или целевому объекту, с помощью завершения передачи (и указание завершения передачи, если применимо).
  6. Если для кадра задано значение Transfer Complete (и, если требуется, TX Complete), TxMgr ищет NBL с помощью идентификатора кадра, возвращает TTD в пул TxEngine и отправляет кадр в NDIS.

Узел — целевой элемент управления потоком TX

Управление потоком TX необходимо, чтобы избежать перегрузки ресурсов TIL и целевых ресурсов.

Схема целевого кредита и механизм приостановки и возобновления

TxMgr помещает в очередь и передает кадры TX в целевой объект в соответствии со схемой на основе кредитов. Целевой объект предоставляет обработчику TX указания на обновление кредитов, которые указывают ресурсы, доступные для дополнительных кадров в целевом объекте. Количество кредитов, используемых каждым кадром на целевом объекте, определяется во время программирования TTD. Количество кадров, передаваемых в TxEngine в рамках операции отправки из заданной очереди, ограничено доступными кредитами и стоимостью кадров в начале строки в порядке FIFO.

Для TxMgr кредиты имеют абстрактную единицу. Target/TxEngine должен использовать любое определение кредита, наиболее полезное для конкретной реализации.

TAL использует указания приостановки и возобновления для остановки или возобновления потока трафика TX из заданного порта или предназначенного для определенного получателя с заданным TID. Если TxEngine получает запрос на отправку, в то время как доступный кредит меньше максимальной стоимости кадра, TxEngine приостанавливает трафик из TxMgr (через все порты) до следующего обновления кредита из целевого объекта.

Если WDI находится в режиме очереди портов (TargetPriorityQueueing равно TRUE), индикаторы приостановки и возобновления разрешены или определены только на уровне порта или адаптера из-за отсутствия одноранговой классификации, tiD и очередей.

Ограничение максимального числа кадров для операций отправки

Чтобы избежать необходимости во временных очередях в TIL (например, очередь сопоставления скорости DMA), количество кадров, которые TxMgr передает в TxEngine в операции отправки, ограничивается максимальным числом кадров, заданным параметром TxEngine. Это ограничение может быть связано с очередью, из который TxMgr пытается отправить, и изменяется с течением времени, так как в TIL доступно больше места.

Узел — целевое планирование передачи TX

TxMgr использует один поток TX для отправки кадров в TxEngine. Существует поток TX, который активно отправляет кадры в TxEngine, если есть очереди с невыполненной работой.

TxMgr планирует очереди следующим образом в зависимости от режима очередей.

Для очередей портов WDI (TargetPriorityQueueing равно TRUE) службы TxMgr выполняют очереди с использованием циклического перебора дефицита (DRR) во всех очередях портов с невыполненной работой.

Для очередей peerTID WDI (TargetPriorityQueueing равно FALSE) службы TxMgr помещаются в очередь в соответствии с приоритетом переменного тока без нехватки очередей и гарантирует, что все узкие ресурсы в TIL и целевом объекте распределяются между потоками RA-TID. Это предотвращает использование медленными потоками непропорционально большой доли таких ресурсов.

Как правило, планировщик использует DRR для выбора очереди Однорангового tiD для передачи данных в любой момент времени. Для каждой очереди DRR связывает квантовый параметр, который ограничивает количество октетов, отправляемых из очереди в каждом раунде. TxEngine обновляет этот параметр в каждой операции отправки, включающей очередь, в соответствии с ожидаемым размером одной или двух возможностей передачи.

Как правило, планировщик DRR обслуживает только очереди RA-TID, связанные с невыполненной работой ac с наивысшим приоритетом. Чтобы предотвратить нехватку ресурсов, планировщик периодически выполняет аварийное восстановление во всех очередях с невыполненной работой.

Сопоставление приоритетов для зарезервированных расширенных tiD IHV

Кадры, внедренные IHV с расширенным TID в зарезервированном диапазоне IHV, сопоставляются со следующими расширенными ACS для целей планирования приоритета. Таблица находится в порядке увеличения приоритета.

Расширенный TID Расширенный ac
17 AC_BK
18 AC_BE
19 AC_VI
20 AC_VO
21 AC_PR0
22 AC_PR1
23 AC_PR2
24 AC_PR3

Для очереди портов WDI все внедренные кадры обрабатываются одинаково, независимо от расширенного TID.

интерфейс TxMgr-TxEngine

Запросы к TxEngine

Указания из TxEngine

Запросы элементов управления, относящиеся к TX

Указания элемента управления, относящиеся к TX

Функции пути WDI TX

NET_BUFFER_LIST

WDI_TXRX_CAPABILITIES