Deaggregate A-MPDU и извлечение MPDUs
[
возвращает список модулей данных о протоколе среднего управления доступом (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 и ее применимые свойства.
format
— Формат входа 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.
Типы данных: логический
status
— Состояние 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 | Вариант Unsupported Блока система координат 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.