Считайте следующий пакет протокола из файла PCAP
читает следующий пакет протокола из пакетного получения (PCAP) файл, заданный средством чтения файлов входа PCAP, и возвращает декодируемый пакет.protocolPacket
= read(pcap
)
возвращает только декодируемые пакеты, которые совпадают с заданным фильтром, protocolPacket
= read(pcap
,packetFilter
)packetFilter
.
Создайте объект средства чтения файлов PCAP, задав имя файла PCAP.
pcapReaderObj = pcapReader('ethernetSamplePackets.pcap');
Создайте фильтр для типов сообщений eCPRI пакетов.
filterString = ['ecpri.MessageType == IQData || ecpri.MessageType == BitSequence ' ... '|| ecpri.MessageType == RemoteReset'];
В потоковом режиме считайте eCPRI пакеты, которые совпадают с заданным фильтром к рабочей области MATLAB®.
for packetCount = 1:3 ecpriFilteredPackets = read(pcapReaderObj,filterString) end
ecpriFilteredPackets = struct with fields:
SNo: 21
Timestamp: 1.6128e+15
LinkType: 1
Protocol: 'eth'
PacketLength: 64
Packet: [1x1 struct]
RawBytes: [1x0 double]
ecpriFilteredPackets = struct with fields:
SNo: 22
Timestamp: 1.6128e+15
LinkType: 1
Protocol: 'eth'
PacketLength: 64
Packet: [1x1 struct]
RawBytes: [1x0 double]
ecpriFilteredPackets = struct with fields:
SNo: 31
Timestamp: 1.6128e+15
LinkType: 1
Protocol: 'eth'
PacketLength: 64
Packet: [1x1 struct]
RawBytes: [1x0 double]
pcap
— Средство чтения файлов PCAPpcapReader
объектСредство чтения файлов PCAP в виде pcapReader
объект.
packetFilter
— Пакетный фильтрПакетный фильтр в виде вектора символов или строкового скаляра. Игнорируя пробелы, эта объектная функция читает пакеты протокола, которые совпадают с этим значением. Если следующий пакет не совпадает с этим значением, объектная функция продолжает читать следующий пакет, пока одно из этих действий не происходит.
Объектная функция обнаруживает пакет, который совпадает с заданным фильтром.
Объектная функция достигает конца файла PCAP.
Можно задать этот аргумент как комбинацию одного или нескольких фильтров, соединенных логическим AND (&
или &&
) или логический OR (|
или ||
). Этот синтаксис показывает типичный пакетный фильтр.
protocolName.FieldName RELATIONALOPERATOR value
Допустимые значения для protocolName
pcap
, eth
, и ecpri
.
Эта таблица показывает допустимые значения FieldName
и тип данных соответствующего значения, если protocolName
pcap
.
FieldName Значение | value Значение |
---|---|
SNo | Целое число |
TimestampSec | Целое число |
PacketLength | Целое число |
Эта таблица показывает допустимые значения FieldName
и тип данных соответствующего значения, если protocolName
eth
.
FieldName Значение | value Значение |
---|---|
SourceAddress | Вектор символов или строковый скаляр, представляющий шестнадцатеричные байты |
DestinationAddress | Вектор символов или строковый скаляр, представляющий шестнадцатеричные байты |
Type | Целое число |
Эта таблица показывает допустимые значения FieldName
и тип данных соответствующего значения, если protocolName
ecpri
.
FieldName Значение | value Значение |
---|---|
ProtocolRevision | Целое число |
MessageType | Вектор символов или строковый скаляр, представляющий eCPRI тип сообщения |
PC_ID | Целое число |
SEQ_ID | Целое число |
Примечание
Для получения дополнительной информации о FieldName
значения, смотрите protocolPacket
вывод .
Допустимые значения для RELATIONALOPERATOR
<=
, >=
, >
, <
, ==
, ~=
, и ~
.
Пример: ‘pcap.PacketLength == 100’
фильтрует пакеты протокола размера 100 байтов.
Пример: ‘eth.SourceAddress == 44FB5A9710AC & eth.Type == 2048’
фильтрует пакеты Ethernet с заданным исходным адресом и типом протокола верхнего уровня.
Пример: ‘ecpri.MessageType == IQData || ecpri.MessageType == RemoteReset || ecpri.MessageType == EventIndication’
фильтрует eCPRI пакеты с типом сообщения данные IQ, удаленный сброс или индикация события.
Типы данных: char |
string
protocolPacket
— Декодируемый пакет протоколаДекодируемый пакет протокола, возвращенный как структура, содержащая эти поля.
Поле | Описание |
---|---|
SNo | Порядковый номер пакета протокола |
Timestamp | Метка времени пакета в формате задана свойством OutputTimestampFormat. |
TimestampSec | Метка времени пакета в секундах. Чтобы включить это поле, установите свойство OutputTimestampFormat |
Protocol | Имя типа ссылки |
LinkType | Соедините тип, заданный в глобальном заголовке PCAP |
PacketLength | Исходная длина пакета передается в сети в байтах Если это значение больше свойства SnapLength |
Packet | Декодируемая пакетная структура или пакетные байты Если файл PCAP включает пакеты Ethernet или eCPRI пакеты, инкапсулировавшие в Ethernet, это поле содержит декодируемую пакетную структуру. В противном случае это поле содержит пакетные байты. |
RawBytes | Недекодируемые байты из-за дополнения или декодируют ошибку |
Если файл PCAP включает пакеты Ethernet, Packet
поле этого аргумента содержит структуру, eth
, содержа эти поля.
Поле | Описание |
---|---|
SourceAddress | Адрес среднего управления доступом (MAC) источника размещает в десятичных байтах, возвращенных как вектор-столбец. Можно получить доступ к исходному адресу первого пакета Ethernet при помощи команды |
DestinationAddress | Мак адрес конечного хоста в десятичных байтах, возвращенных как вектор-столбец. Можно получить доступ к адресу назначения первого пакета Ethernet при помощи команды |
Type | Поле в заголовке Ethernet, который идентифицирует протокол верхнего уровня. Можно получить доступ к типу протокола верхнего уровня первого пакета Ethernet при помощи команды |
Payload | Пакет протокола верхнего уровня, возвращенный как вектор из октетов, где каждый элемент находится в области значений [0, 255]. Можно получить доступ к полезной нагрузке протокола верхнего уровня первого пакета Ethernet при помощи команды |
RawBytes | Недекодируемые байты, возвращенные декодером Ethernet из-за дополнения или, декодируют ошибку. Если декодер Ethernet не возвращает недекодируемых байтов, это поле не присутствует в Можно получить доступ к необработанным байтам первого пакета Ethernet при помощи команды |
Если файл PCAP включает eCPRI пакеты, инкапсулировавшие в Ethernet, Packet
поле этого аргумента содержит структуру или массив ячеек структур, ecpri
, содержа эти поля.
Поле | Описание |
---|---|
ProtocolRevision | Версия протокола eCPRI в виде неотрицательного целого числа. |
Concatenation | Индикатор Concatenation eCPRI обменивается сообщениями в виде
|
MessageType | Тип сервиса, поддержанного eCPRI, обменивается сообщениями в виде вектора символов или строкового скаляра. |
Выход eCPRI декодера варьируется согласно MessageType
значение. Эта таблица показывает MessageType
значения и соответствующие дополнительные поля поддержаны ecpri
структура.
MessageType Значение | MessageType Описание | Дополнительные поля, поддержанные ecpri Структура |
---|---|---|
IQData | Область времени трансфера или синфазный частотный диапазон и квадратура (IQ) выборки |
|
BitSequence | Передайте пользовательские данные в форме последовательности битов |
|
RealTimeControlData | Передайте поставщика определенные сообщения управления в режиме реального времени |
|
GenericDataTransfer | Передайте пользовательские данные о плоскости или связанное управление |
|
RemoteMemoryAccess | Позвольте читать или записать от или до определенного адреса памяти |
|
OnewayDelayMeasurement | Оцените одностороннюю задержку между двумя eCPRI портами в одном направлении |
|
RemoteReset | Запросите сбросить eCPRI узел |
|
EventIndication | Указывает, что событие имело место |
|
Примечание
Для получения дополнительной информации о типах сообщений и соответствующих дополнительных полях, поддержанных в ecpri
структура, смотрите Раздел 3.2.4 из eCPRI Спецификации V1.2 [1].
Типы данных: struct
[1] “Общий Общедоступный Радио-Интерфейс: Спецификация V1.2 Интерфейса eCPRI” Получила доступ 22 июня 2021.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.