NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |BACKWARD COMPATIBILITY |SEE ALSO |COLOPHON | |
PCAP_SET_PROTOCOL_LINUX(3PCAP)PCAP_SET_PROTOCOL_LINUX(3PCAP)pcap_set_protocol_linux - set capture protocol for a not-yet- activated capture handle
#include <pcap/pcap.h>int pcap_set_protocol_linux(pcap_t *p, int protocol);
On network interface devices on Linux,pcap_set_protocol_linux() sets the protocol to be used in thesocket(2) call to create a capture socket when the handle is activated. The argument is a link-layer protocol value, such as the values in the<linux/if_ether.h>header file, specified in host byte order. Ifprotocol is non-zero, packets of that protocol will be captured when the handle is activated, otherwise, all packets will be captured. This function is only provided on Linux, and, if it is used on any device other than a network interface, it will have no effect. It should not be used in portable code; instead, a filter should be specified withpcap_setfilter(3PCAP). If a given network interface provides a standard link-layer header, with a standard packet type, but provides some packet types with a different socket-layer protocol type from the one in the link-layer header, that packet type cannot be filtered with a filter specified withpcap_setfilter() but can be filtered by specifying the socket-layer protocol type usingpcap_set_protocol_linux().
pcap_set_protocol_linux() returns0on success orPCAP_ERROR_ACTIVATEDif called on a capture handle that has been activated.
This function became available in libpcap release 1.9.0.
pcap(3PCAP),pcap_create(3PCAP),pcap_activate(3PCAP)
This page is part of thelibpcap (packet capture library) project. Information about the project can be found at ⟨http://www.tcpdump.org/⟩. If you have a bug report for this manual page, see ⟨http://www.tcpdump.org/#patches⟩. This page was obtained from the project's upstream Git repository ⟨https://github.com/the-tcpdump-group/libpcap.git⟩ on 2025-08-11. (At that time, the date of the most recent commit that was found in the repository was 2025-08-10.) If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up-to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.org 22 August 2018PCAP_SET_PROTOCOL_LINUX(3PCAP)HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |