Libpcap API =========== PF_RING includes a patched libpcap which provides PF_RING acceleration through the legagy pcap API. Obviously a pcap-based application should be linked against the PF_RING-aware libpcap in order to use it. Please expect a performance degradation with respect to the PF_RING API as the pcap API introduces some more overhead. API Extensions -------------- This section lists the extensions added to the legacy pcap API. Please note that they are not mandatory to operate, a legacy pcap-based application can work on top of this library with no changes (linking only is required). * pcap_get_pfring_handle - returns the pfring handle. * pcap_get_pfring_id - wrapper for the pfring_get_ring_id API. * pcap_set_master_id - wrapper for the pfring_set_master_id API. * pcap_set_master - wrapper for the pfring_set_master API. * pcap_set_application_name - wrapper for the pfring_set_application_name API. * pcap_set_cluster - wrapper for the pfring_set_cluster API. * pcap_set_watermark - wrapper for the pfring_set_poll_watermark API. * pcap_set_poll_watermark_timeout - wrapper for the pfring_set_poll_watermark_timeout API. Environment Variables ~~~~~~~~~~~~~~~~~~~~~ This section lists environment variables supported by the extended pcap library in order to control the working mode without changing the pcap-based application. * PCAP_PF_RING_ACTIVE_POLL - set active polling (CPU spinning) * PCAP_PF_RING_RSS_REHASH - set in-kernel RSS rehash with standard drivers * PCAP_PF_RING_ALWAYS_SYNC_FD - always sync the file descriptor after receive * PCAP_PF_RING_ZC_RSS - set symmetric RSS on ZC drivers * PCAP_PF_RING_STRIP_HW_TIMESTAMP - set hardware timestamping stripping from packets * PCAP_PF_RING_HW_TIMESTAMP - enable hardware timestamping * PCAP_PF_RING_USERSPACE_BPF - force userspace BPF in place of in-kernel BPF evaluation * PCAP_PF_RING_RECV_ONLY - set receive only mode to the socket * PCAP_PF_RING_APPNAME - set the application name * PCAP_PF_RING_CLUSTER_ID - set the kernel cluster ID Environment variables to control the in-kernel cluster distribution function: * PCAP_PF_RING_USE_CLUSTER_PER_FLOW * PCAP_PF_RING_USE_CLUSTER_PER_FLOW_2_TUPLE * PCAP_PF_RING_USE_CLUSTER_PER_FLOW_4_TUPLE * PCAP_PF_RING_USE_CLUSTER_PER_FLOW_5_TUPLE (Default) * PCAP_PF_RING_USE_CLUSTER_PER_FLOW_TCP_5_TUPLE * PCAP_PF_RING_USE_CLUSTER_ROUNDROBIN * PCAP_PF_RING_USE_CLUSTER_PER_INNER_FLOW * PCAP_PF_RING_USE_CLUSTER_PER_INNER_FLOW_2_TUPLE * PCAP_PF_RING_USE_CLUSTER_PER_INNER_FLOW_4_TUPLE * PCAP_PF_RING_USE_CLUSTER_PER_INNER_FLOW_5_TUPLE * PCAP_PF_RING_USE_CLUSTER_PER_INNER_FLOW_TCP_5_TUPLE * PCAP_PF_RING_USE_CLUSTER_PER_FLOW_IP_5_TUPLE * PCAP_PF_RING_USE_CLUSTER_PER_INNER_FLOW_IP_5_TUPLE * PCAP_PF_RING_USE_CLUSTER_PER_FLOW_IP_WITH_DUP_TUPLE