pcapWriter
PCAP file writer of protocol packets
Description
The pcapWriter object writes generated and recovered protocol
packets to a packet capture (PCAP) file (.pcap).
Creation
Description
creates a default PCAP file writer object.pcapObj = pcapWriter
sets properties using
one or more name-value arguments. Enclose each property name in quotes. For example,
pcapObj = pcapWriter(PropertyName=Value)ByteOrder="big-endian" specifies the byte order as big-endian.
Properties
Note
The pcapWriter object does not overwrite the existing PCAP or PCAPNG
file. Each time when you create this object, specify a unique PCAP or PCAPNG file
name.
This property is read-only after object creation.
Name of the PCAP file, specified as a character row vector or a string scalar.
Data Types: char | string
This property is read-only after object creation.
Byte order, specified as 'little-endian' or
'big-endian'.
Data Types: char | string
Since R2026a
This property is read-only after object creation.
Name of the first-in first-out (FIFO) pipe file (also known as a named pipe), specified as a character row vector or string scalar. This value is an absolute or relative path to a pipe that you create outside MATLAB.
Dependencies
To enable this property, do not specify FileName.
Data Types: char | string
Object Functions
write | Write protocol packet data to PCAP or PCAPNG file |
writeGlobalHeader | Write global header to PCAP file |
Examples
Create a PCAP file writer object, specifying the name of the PCAP file. 5G NR packets do not have a valid link type. As per Tcpdump, if a valid link type is not present, specify the link type of SLL packet.
pcapObj = pcapWriter('FileName','sample'); linkType = 113; % Link type of SLL packet timestamp = 300; % Timestamp
Write a global header to the PCAP file.
writeGlobalHeader(pcapObj,linkType);
The 5G New Radio (NR) packets are not directly supported by Wireshark. To enable Wireshark to parse 5G NR packets, add encapsulation and metadata to the 5G NR packet.
payload = [59; 205]; % MAC subPDU (contains truncated buffer status report (BSR) control element) radioType = 1; % Frequency division duplexing linkDir = 0; % Uplink packet rntiType = 3; % Cell-RNTI startString = [109; 97; 99; 45; 110; 114]; % Tag to indicate the start of NR MAC signature payloadTag = 1; % Payload tag for NR packets signature = [startString; radioType; linkDir; rntiType]; macNRInfoPacket = [signature; payloadTag; payload];
Construct a user datagram protocol (UDP) header.
udpPacketLength = 8 + length(macNRInfoPacket); % Length of header (8 bytes) and payload udpHeader = [163; 76; % Source port number 39; 15; % Destination port number fix(udpPacketLength/256); mod(udpPacketLength,256); % Total length of UDP packet 0; 0]; % Checksum
Construct an IPv4 header.
ipPacketLength = 20 + udpPacketLength; % Length of header (20 bytes) and payload ipHeader = [69; % Version of IP protocol and priority or traffic Class 0; % Type of service fix(ipPacketLength/256); mod(ipPacketLength,256); % Total length of the IPv4 packet 0; 1; % Identification 0; 0; % Flags and fragmentation offset 64; % Time to live in seconds 17; % UDP protocol number 0; 0; % Header checksum 127; 0; 0; 1; % Source IP address 127; 0; 0; 1]; % Destination IP address
Construct an SLL header.
sllHeader = [0; 0; % Packet type 3; 4; % Address resolution protocol hardware (ARPHRD) type 0; 0; % Link layer address length 0; 0; 0; 0; 0; 0; 0; 0; % Link layer address 8; 0]; % Protocol type
Construct 5G NR packet by adding encapsulation and metadata.
packet = [sllHeader; ipHeader; udpHeader; macNRInfoPacket];
Write the 5G NR packet to the PCAP file.
write(pcapObj,packet,timestamp);
Create a PCAP file writer object, specifying the name of the PCAP file. Specify the link type for WLAN packet.
pcapObj = pcapWriter('FileName','writeWLANpacketdata2'); wlanLinkType = 105;
Write a global header to the PCAP file.
writeGlobalHeader(pcapObj,wlanLinkType);
Specify a WLAN packet.
mpdu = 'B4000000FFFFFFFFFFFF00123456789BA79A5B28';Write the WLAN packet to the PCAP file.
timestamp = 124800; % Number of microseconds
write(pcapObj,mpdu,timestamp);Create a PCAP file writer object, specifying the name of the PCAP file. Specify the Bluetooth LE link type.
pcapObj = pcapWriter('FileName','writeBluetoothLE'); bleLinkType = 251;
Write a global header to the PCAP file.
writeGlobalHeader(pcapObj,bleLinkType);
Specify a Bluetooth LE LL packet.
llpacket = '42BC13E206120E00050014010A001F0040001700170000007D47C0';Write the Bluetooth LE LL packet to the PCAP file.
timestamp = 129100; % Packet arrival time in POSIX® microseconds elapsed since 1/1/1970
write(pcapObj,llpacket,timestamp);References
[1] Group, The Tcpdump. “Tcpdump/Libpcap Public Repository.” Accessed May 20, 2020. https://www.tcpdump.org.
[2] “Development/LibpcapFileFormat - The Wireshark Wiki.” Accessed May 20, 2020. https://www.wireshark.org.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Version History
Introduced in R2020b In R2026a, the pcapWriter object and associated object functions
move to the Wireless Network
Toolbox™ product from the WLAN Toolbox™ and Bluetooth® Toolbox products. Starting in R2026a, writing WLAN or Bluetooth packets to a PCAP file
requires Wireless Network Toolbox. In releases R2025b and before, these functionalities
require the WLAN Toolbox or Bluetooth Toolbox products, respectively.
The pcapWriter object now enables you to specify a FIFO pipe file
through the PipeName property.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)