pcap_datalink(3)

pcap_datalink3

Get the link-layer header type

Usage

#include <pcap/pcap.h>

int pcap_datalink(pcap_t *p);

Overview

pcap_datalink() returns the link-layer header type for the live capture or ``savefile'' specified by p.

It must not be called on a pcap descriptor created by pcap_create(3) that has not yet been activated by pcap_activate(3).

https://www.tcpdump.org/linktypes.html lists the values pcap_datalink() can return and describes the packet formats that correspond to those values.

Do NOT assume that the packets for a given capture or ``savefile`` will have any given link-layer header type, such as DLT_EN10MB for Ethernet. For example, the "any" device on Linux will have a link-layer header type of DLT_LINUX_SLL or DLT_LINUX_SLL2 even if all devices on the system at the time the "any" device is opened have some other data link type, such as DLT_EN10MB for Ethernet.

Return value

pcap_datalink() returns the link-layer header type on success and PCAP_ERROR_NOT_ACTIVATED if called on a capture handle that has been created but not activated.

Releases

39 releases since FreeBSD 8.0-RELEASE; the text changed 7 times.

  1. 8.0–9.0
  2. 9.1–10.4
  3. 11.0–11.2
  4. 11.3
  5. 11.4
  6. 12.0–12.1
  7. 12.2–13.4
  8. 13.5–16.0

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's man source.