read

Считайте следующий пакет протокола из файла PCAP

    Описание

    пример

    protocolPacket = read(pcap) читает следующий пакет протокола из пакетного получения (PCAP) файл, заданный средством чтения файлов входа 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 в виде pcapReader объект.

    Пакетный фильтр в виде вектора символов или строкового скаляра. Игнорируя пробелы, эта объектная функция читает пакеты протокола, которые совпадают с этим значением. Если следующий пакет не совпадает с этим значением, объектная функция продолжает читать следующий пакет, пока одно из этих действий не происходит.

    • Объектная функция обнаруживает пакет, который совпадает с заданным фильтром.

    • Объектная функция достигает конца файла 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

    Выходные аргументы

    свернуть все

    Декодируемый пакет протокола, возвращенный как структура, содержащая эти поля.

    Поле Описание
    SNo

    Порядковый номер пакета протокола

    Timestamp

    Метка времени пакета в формате задана свойством OutputTimestampFormat.

    TimestampSec

    Метка времени пакета в секундах.

    Чтобы включить это поле, установите свойство OutputTimestampFormat pcap введите к 'datetime'.

    Protocol

    Имя типа ссылки

    LinkType

    Соедините тип, заданный в глобальном заголовке PCAP

    PacketLength

    Исходная длина пакета передается в сети в байтах

    Если это значение больше свойства SnapLength pcapReader объект, длина декодируемого пакета протокола является усеченной, чтобы содержать байты SnapLength.

    Packet

    Декодируемая пакетная структура или пакетные байты

    Если файл PCAP включает пакеты Ethernet или eCPRI пакеты, инкапсулировавшие в Ethernet, это поле содержит декодируемую пакетную структуру. В противном случае это поле содержит пакетные байты.

    RawBytes

    Недекодируемые байты из-за дополнения или декодируют ошибку

    Если файл PCAP включает пакеты Ethernet, Packet поле этого аргумента содержит структуру, eth, содержа эти поля.

    Поле Описание
    SourceAddress

    Адрес среднего управления доступом (MAC) источника размещает в десятичных байтах, возвращенных как вектор-столбец.

    Можно получить доступ к исходному адресу первого пакета Ethernet при помощи команды protocolPacket(1).Packet.eth.SourceAddress.

    DestinationAddress

    Мак адрес конечного хоста в десятичных байтах, возвращенных как вектор-столбец.

    Можно получить доступ к адресу назначения первого пакета Ethernet при помощи команды protocolPacket(1).Packet.eth.DestinationAddress.

    Type

    Поле в заголовке Ethernet, который идентифицирует протокол верхнего уровня.

    Можно получить доступ к типу протокола верхнего уровня первого пакета Ethernet при помощи команды protocolPacket(1).Packet.eth.Type.

    Payload

    Пакет протокола верхнего уровня, возвращенный как вектор из октетов, где каждый элемент находится в области значений [0, 255].

    Можно получить доступ к полезной нагрузке протокола верхнего уровня первого пакета Ethernet при помощи команды protocolPacket(1).Packet.eth.Payload.

    RawBytes

    Недекодируемые байты, возвращенные декодером Ethernet из-за дополнения или, декодируют ошибку.

    Если декодер Ethernet не возвращает недекодируемых байтов, это поле не присутствует в eth структура.

    Можно получить доступ к необработанным байтам первого пакета Ethernet при помощи команды protocolPacket(1).Packet.eth.RawBytes.

    Если файл PCAP включает eCPRI пакеты, инкапсулировавшие в Ethernet, Packet поле этого аргумента содержит структуру или массив ячеек структур, ecpri, содержа эти поля.

    Поле Описание
    ProtocolRevision

    Версия протокола eCPRI в виде неотрицательного целого числа.

    Concatenation

    Индикатор Concatenation eCPRI обменивается сообщениями в виде 0 или 1.

    • Значение 0 указывает, что соответствующее сообщение eCPRI является последним в eCPRI модуле данных о протоколе (PDU).

    • Значение 1 указывает, что другое сообщение eCPRI следует за этим в eCPRI PDU.

    MessageType

    Тип сервиса, поддержанного eCPRI, обменивается сообщениями в виде вектора символов или строкового скаляра.

    Выход eCPRI декодера варьируется согласно MessageType значение. Эта таблица показывает MessageType значения и соответствующие дополнительные поля поддержаны ecpri структура.

    MessageType Значение MessageType Описание Дополнительные поля, поддержанные ecpri Структура
    IQData

    Область времени трансфера или синфазный частотный диапазон и квадратура (IQ) выборки

    PC_ID, SEQ_IDUserData , и Payload

    BitSequence

    Передайте пользовательские данные в форме последовательности битов

    PC_ID, SEQ_IDUserData , и Payload

    RealTimeControlData

    Передайте поставщика определенные сообщения управления в режиме реального времени

    PC_ID, SEQ_IDUserData , и Payload

    GenericDataTransfer

    Передайте пользовательские данные о плоскости или связанное управление

    PC_ID, SEQ_IDUserData , и Payload

    RemoteMemoryAccess

    Позвольте читать или записать от или до определенного адреса памяти

    RemoteMemoryAccessIDЧтение-запись, RequestResponse, ElementID, Address, DataLengthUserData , и Payload

    OnewayDelayMeasurement

    Оцените одностороннюю задержку между двумя eCPRI портами в одном направлении

    MeasurementID, ActionType, TimestampSec, TimestampNanoSec, CompensationValueUserData , и Payload

    RemoteReset

    Запросите сбросить eCPRI узел

    ResetID, ResetCodeOpUserData , и Payload

    EventIndication

    Указывает, что событие имело место

    EventID, EventType, SequenceNumber, NumberOfFaultsOrNotifications, и Elements

    Примечание

    Для получения дополнительной информации о типах сообщений и соответствующих дополнительных полях, поддержанных в ecpri структура, смотрите Раздел 3.2.4 из eCPRI Спецификации V1.2 [1].

    Типы данных: struct

    Ссылки

    [1] “Общий Общедоступный Радио-Интерфейс: Спецификация V1.2 Интерфейса eCPRI” Получила доступ 22 июня 2021.

    Смотрите также

    Объекты

    Функции

    Введенный в R2021b