Deaggregate A-MPDU и извлечение MPDUs
[mpduList,delimiterCRCFail,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY)[mpduList,delimiterCRCFail,status] = wlanAMPDUDeaggregate(___,'DataFormat',format)[ возвращает список модулей данных о протоколе среднего управления доступом (MAC) (MPDUs), mpduList,delimiterCRCFail,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY)mpduList, deaggregating вход агрегированный MPDU (A-MPDU), ampdu, для данного физического уровня (PHY) настройка формата cfgPHY. Функция также возвращает delimiterCRCFail, который указывает на любые отказы контроля циклическим избыточным кодом (CRC) разделителя для подкадров, найденных в ampdu и status, который указывает на состояние A-MPDU deaggregation.
[ задает формат данных входа A-MPDU, чтобы быть deaggregated.mpduList,delimiterCRCFail,status] = wlanAMPDUDeaggregate(___,'DataFormat',format)
Deaggregate очень высокий формат пропускной способности (VHT-формат) A-MPDU задан в битной форме.
Создайте объект настройки кадра ВЛАНА МАКА, задав тип кадра и формат.
cfgMAC = wlanMACFrameConfig('FrameType','QoS Data','FrameFormat','VHT');
Создайте объект настройки VHT-формата с настройками по умолчанию.
cfgPHY = wlanVHTConfig;
Создайте случайную полезную нагрузку восьми MSDUs и используйте ее, чтобы сгенерировать A-MPDU в форме октета.
payload = repmat({randi([0 255],1,40)},1,8);
ampduOctets = wlanMACFrame(payload,cfgMAC,cfgPHY);Преобразуйте A-MPDU в битную форму.
ampdu = reshape(de2bi(hex2dec(ampduOctets),8)',[],1);
Возвратите список MPDUs deaggregating A-MPDU.
[mpduList,delimiterCRCFail,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY);
Deaggregate высокий формат пропускной способности (HT-формат) A-MPDU, заданный в форме октета.
Создайте объект настройки кадра ВЛАНА МАКА, задав тип кадра, структурируйте формат и агрегацию MPDU.
cfgMAC = wlanMACFrameConfig('FrameType','QoS Data','FrameFormat','HT-Mixed','MPDUAggregation',1);
Создайте объект настройки HT-формата, задав агрегацию MPDU.
cfgPHY = wlanHTConfig('AggregatedMPDU',1);Создайте случайную полезную нагрузку восьми MSDUs и используйте ее, генерируют A-MPDU в форме октета.
payload = repmat({randi([0 255],1,40)},1,8);
ampdu = wlanMACFrame(payload,cfgMAC,cfgPHY);Возвратите список MPDUs deaggregating A-MPDU.
[mpduList,delimiterCRCFail,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY,'DataFormat','octets');
Deaggregate VHT-формат A-MPDU и декодируют извлеченный MPDUs.
Создайте объект настройки кадра ВЛАНА МАКА для VHT-формата A-MPDU.
txCfgMAC = wlanMACFrameConfig('FrameType','QoS Data','FrameFormat','VHT');
Создайте объект настройки VHT-формата с настройками по умолчанию.
cfgPHY = wlanVHTConfig;
Сгенерируйте случайную полезную нагрузку восьми MSDUs.
txPayload = repmat({randi([0 255],1,40)},1,8);Сгенерируйте A-MPDU, содержащий восемь MPDUs для заданного MAC и настроек PHY.
ampdu = wlanMACFrame(txPayload,txCfgMAC,cfgPHY);
Возвратите список MPDUs deaggregating A-MPDU. Отобразите состояние deaggregation и CRC разделителя.
[mpduList, delimiterCRCFail, status] = ... wlanAMPDUDeaggregate(ampdu,cfgPHY,'DataFormat','octets'); disp(status)
Success
disp(delimiterCRCFail)
0 0 0 0 0 0 0 0
Декодируйте весь MPDUs в извлеченном списке.
if strcmp(status,'Success') for i = 1:numel(mpduList) if ~delimiterCRCFail(i) [cfgMAC, payload, decodeStatus] = ... wlanMPDUDecode(mpduList{i},cfgPHY,'DataFormat','octets'); end end end
ampdu — A-MPDU, чтобы быть deaggregatedA-MPDU, чтобы быть deaggregated, заданным как одно из этих значений:
бинарный вектор, представляющий A-MPDU в битном формате;
числовые октеты представления вектора в десятичном формате, где каждый элемент является целым числом в интервале [0, 255];
скаляр строки представление A-MPDU как октеты в шестнадцатеричном формате;
вектор символов, представляющий A-MPDU как октеты в шестнадцатеричном формате;
символьный массив, где каждая строка представляет октет в шестнадцатеричном формате.
Типы данных: double | char | string
cfgPHY — Настройка формата PHYwlanHESUConfig | объект wlanVHTConfig | объект wlanHTConfigНастройка формата PHY, заданная как объект типа wlanHESUConfig, wlanVHTConfig или wlanHTConfig. Этот объект задает настройку формата PHY и ее применимые свойства.
формат Формат входа A-MPDU'bits' (значение по умолчанию) | 'octets'Формат входа A-MPDU, заданного как 'bits' или 'octets'.
Типы данных: string
mpduList — Список MPDUsСписок MPDUs, возвращенного как массив ячеек символьных массивов, где каждый символьный массив соответствует одному MPDU. В этих символьных массивах каждая строка является шестнадцатеричным представлением октета.
Если никакой разделитель MPDU не найден во входе A-MPDU, функция возвращает mpduList как массив пустой ячейки.
Типы данных: cell
delimiterCRCFail — Индикатор отказа CRC разделителяИндикатор отказа CRC разделителя, возвращенный как вектор - строка из логических значений. Каждый элемент delimiterCRCFail указывает на состояние отказа CRC разделителя для подкадра A-MPDU.
Значение 1 для k th элемент delimiterCRCFail указывает, что CRC разделителя перестал работать для k th A-MPDU подкадр. В этом случае k th элемент mpduList содержит MPDU, который может быть недопустимым.
Значение 0 для k th элемент delimiterCRCFail указывает, что CRC разделителя передал для k th подкадр. В этом случае k th элемент mpduList содержит допустимый MPDU.
Типы данных: логический
состояние Состояние A-MPDU deaggregationСостояние A-MPDU deaggregation, возвращенного как неположительное целое число в интервале [–20, 0]. Каждая перечислимая величина status соответствует члену класса перечисления wlanMACDecodeStatus, который указывает на состояние парсинга кадра MAC согласно этой таблице.
| Перечислимая величина | Член класса перечисления | Декодирование состояния |
| 0 | Success | Кадр MAC успешно декодируется |
| –1 | FCSFailed | Последовательность проверки кадра (FCS) перестала работать |
| –2 | InvalidProtocolVersion | Недопустимая версия протокола |
| –3 | UnsupportedFrameType | Неподдерживаемый тип кадра |
| –4 | UnsupportedFrameSubtype | Неподдерживаемый подтип кадра |
| –5 | NotEnoughData | Недостаточные данные, чтобы декодировать кадр |
| –6 | UnsupportedBAVariant | Неподдерживаемый вариант Блока кадр Ack |
| –7 | UnknownBitmapSize | Неизвестный растровый размер |
| –8 | UnknownAddressExtMode | Неизвестный режим расширения адреса |
| –9 | MalformedAMSDULength | Уродливый агрегированный модуль эксплуатационных данных MAC (A-MSDU) с недопустимой длиной |
| –10 | MalformedSSID | Уродливый сервис установил идентификатор (SSID) информационный элемент (IE) |
| –11 | MalformedSupportedRatesIE | Уродливый поддерживаемый IE уровней |
| –12 | MalformedIELength | Уродливое поле длины IE |
| –13 | MissingMandatoryIEs | Обязательные пропавшие без вести IES |
| –14 | NoMPDUFound | Никакой MPDU не найден в A-MPDU |
| –15 | CorruptedAMPDU | Все разделители в данном А-МПДУ привели контроль циклическим избыточным кодом (CRC) к сбою |
| –16 | InvalidDelimiterLength | Недопустимое поле длины в разделителе MPDU |
| –17 | MaxAMSDULenthExceeded | A-MSDU превысил максимальный предел длины |
| –18 | MaxMPDULengthExceeded | MPDU превысил максимальный предел длины |
| –19 | MaxMMPDULengthExceeded | Кадр управления MAC превысил максимальный предел длины |
| –20 | MaxMSDULengthExceeded | MSDU превысил максимальный предел длины |
Перечислимая величина кроме 0 означает, что A-MPDU deaggregation остановился, потому что вход A-MPDU поврежден или уродлив.
Типы данных: int16
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.