Decapsulates packet data at link, network, and transport layer.
decapsulate(packet:record) -> recordDescription
Section titled “Description”The decapsulate function decodes binary PCAP packet data by extracting link,
network, and transport layer information. The function takes a packet record
as argument as produced by the read_pcap operator, which may
look like this:
{ linktype: 1, timestamp: 2021-11-17T13:32:43.249525, captured_packet_length: 66, original_packet_length: 66, data: "ZJ7zvttmABY88f1tCABFAAA0LzBAAEAGRzjGR/dbgA6GqgBQ4HzXXzhE3N8/r4AQAfyWoQAAAQEICqMYaE9Mw7SY",}This entire record serves as input to decapsulate since the linktype
determines how to intepret the binary data field containing the raw packet
data.
VLAN Tags
Section titled “VLAN Tags”The decapsulate function also extracts
802.1Q VLAN tags into a nested
vlan record, consisting of an outer and inner field for the respective
tags. The value of the VLAN tag corresponds to the 12-bit VLAN identifier (VID).
Special values include 0 (frame does not carry a VLAN ID) and 0xFFF
(reserved value; sometimes wildcard match).
Examples
Section titled “Examples”Decapsulate packets from a PCAP file
Section titled “Decapsulate packets from a PCAP file”from "/path/to/trace.pcap"this = decapsulate(this){ ether: { src: "00-08-02-1C-47-AE", dst: "20-E5-2A-B6-93-F1", type: 2048, }, ip: { src: 10.12.14.101, dst: 92.119.157.10, type: 6, }, tcp: { src_port: 62589, dst_port: 4443, }, community_id: "1:tSl1HyzM7qS0o3OpbOgxQJYCKCc=", udp: null, icmp: null,}If the trace contains 802.1Q traffic, then the output includes a vlan record:
{ ether: { src: "00-17-5A-ED-7A-F0", dst: "FF-FF-FF-FF-FF-FF", type: 2048, }, vlan: { outer: 1, inner: 20, }, ip: { src: 192.168.1.1, dst: 255.255.255.255, type: 1, }, icmp: { type: 8, code: 0, }, community_id: "1:1eiKaTUjqP9UT1/1yu/o0frHlCk=",}