API Documentation
- 1. PF_RING Kernel Internal API
five_tuple_rule_handlerperfect_filter_hw_rule_handlerzc_dev_wait_packetzc_dev_notifyzc_dev_set_timezc_dev_adjust_timezc_dev_get_tx_timezc_dev_control_queuezc_dev_get_statspkt_header_lenrule_action_behaviourpkt_detail_modepacket_directionsocket_modesilicom_redirector_rule_typegeneric_default_action_typegeneric_flow_rule_action_typehw_filtering_rule_typehw_filtering_rule_commandzc_dev_operationzc_dev_modelcluster_typepfring_device_typecluster_client_typeeth_offsetvlan_offsetl3_offsetl4_offsetpayload_offseth_vlan_idh_protopriorityversionflow_lblpayload_lennexthdrhop_limitsaddrdaddrhdrlenpaddingflags_and_versionprotoflagsmessage_typeteidseq_numnpdu_numnext_ext_hdrlennext_headerreservedgdpvniresdmacsmaceth_typevlan_idqinq_vlan_idip_versionl3_protoip_tosip_srcip_dstl4_src_portl4_dst_porticmp_typeicmp_codeack_numtunnellast_matched_rule_idoffsettimestamp_nsrx_directionport_iddevice_idif_indexpkt_hashbounce_interfacepidparsed_pkttscaplenextended_hdrtv_sectv_nsecpfrrulematchfilteredmatch_forwardnextsample_ratemin_num_slotsslot_lendata_lentot_meminsert_offkernel_remove_offtot_pktstot_losttot_insertkernel_tot_readtot_fwd_oktot_fwd_notokgood_pkt_sentpkt_send_errork_paddingtot_readremove_offu_paddingcluster_idqueue_idoptionsthe_typerecoveredobject_typeobject_idlock_masklocked_maskpkt_offsetip_addreth_vlan_hdrkcompact_ipv6_hdrkcompact_ipv6_opt_hdrgre_headergtp_v1_hdrgtp_v1_opt_hdrgtp_v1_ext_hdrPhonyNameDueToError::tunnel_idPhonyNameDueToError::tunneled_dmacPhonyNameDueToError::tunneled_smacPhonyNameDueToError::tunneled_eth_typePhonyNameDueToError::tunneled_ip_versionPhonyNameDueToError::tunneled_protoPhonyNameDueToError::tunneled_ip_srcPhonyNameDueToError::tunneled_ip_dstPhonyNameDueToError::tunneled_l4_src_portPhonyNameDueToError::tunneled_l4_dst_portPhonyNameDueToError::if_indexPhonyNameDueToError::smacPhonyNameDueToError::dmacPhonyNameDueToError::vlan_idPhonyNameDueToError::eth_typePhonyNameDueToError::protoPhonyNameDueToError::shostPhonyNameDueToError::dhostPhonyNameDueToError::shost_maskPhonyNameDueToError::dhost_maskPhonyNameDueToError::sport_lowPhonyNameDueToError::sport_highPhonyNameDueToError::dport_lowPhonyNameDueToError::dport_highPhonyNameDueToError::flagsPhonyNameDueToError::tcpPhonyNameDueToError::optional_fieldsPhonyNameDueToError::tunnelPhonyNameDueToError::payload_patternPhonyNameDueToError::jiffies_last_matchPhonyNameDueToError::reflector_devPhonyNameDueToError::rule_idPhonyNameDueToError::rule_actionPhonyNameDueToError::balance_idPhonyNameDueToError::balance_poolPhonyNameDueToError::lockedPhonyNameDueToError::bidirectionalPhonyNameDueToError::core_fieldsPhonyNameDueToError::extended_fieldsPhonyNameDueToError::reflector_device_namePhonyNameDueToError::internalsPhonyNameDueToError::s_addrPhonyNameDueToError::d_addrPhonyNameDueToError::s_portPhonyNameDueToError::d_portPhonyNameDueToError::queue_idPhonyNameDueToError::rule_typePhonyNameDueToError::rule_portPhonyNameDueToError::rule_target_portPhonyNameDueToError::vlan_id_lowPhonyNameDueToError::vlan_id_highPhonyNameDueToError::l3_protoPhonyNameDueToError::src_addrPhonyNameDueToError::dst_addrPhonyNameDueToError::src_maskPhonyNameDueToError::dst_maskPhonyNameDueToError::src_port_lowPhonyNameDueToError::src_port_highPhonyNameDueToError::dst_port_lowPhonyNameDueToError::dst_port_highPhonyNameDueToError::actionPhonyNameDueToError::flow_idPhonyNameDueToError::threadPhonyNameDueToError::src_ipPhonyNameDueToError::dst_ipPhonyNameDueToError::src_ip_maskPhonyNameDueToError::dst_ip_maskPhonyNameDueToError::src_portPhonyNameDueToError::dst_portPhonyNameDueToError::ip_versionPhonyNameDueToError::protocolPhonyNameDueToError::interfacePhonyNameDueToError::rule_family_typePhonyNameDueToError::priorityPhonyNameDueToError::five_tuple_rulePhonyNameDueToError::perfect_rulePhonyNameDueToError::redirector_rulePhonyNameDueToError::flow_id_rulePhonyNameDueToError::flow_tuple_rulePhonyNameDueToError::rule_familyPhonyNameDueToError::causePhonyNameDueToError::padding_0PhonyNameDueToError::padding_1PhonyNameDueToError::flags_outPhonyNameDueToError::flags_inPhonyNameDueToError::packets_outPhonyNameDueToError::packets_inPhonyNameDueToError::bytes_outPhonyNameDueToError::bytes_inPhonyNameDueToError::last_seenPhonyNameDueToError::l4_protocolPhonyNameDueToError::tosPhonyNameDueToError::tcp_flagsPhonyNameDueToError::start_of_flowPhonyNameDueToError::reservedPhonyNameDueToError::fwd_packetsPhonyNameDueToError::rev_packetsPhonyNameDueToError::fwd_bytesPhonyNameDueToError::rev_bytesPhonyNameDueToError::fwd_ts_firstPhonyNameDueToError::fwd_ts_lastPhonyNameDueToError::rev_ts_firstPhonyNameDueToError::rev_ts_lastPhonyNameDueToError::five_tuple_handlerPhonyNameDueToError::perfect_filter_handlerPhonyNameDueToError::host_peer_aPhonyNameDueToError::host_peer_bPhonyNameDueToError::port_peer_aPhonyNameDueToError::port_peer_bPhonyNameDueToError::matchPhonyNameDueToError::filteredPhonyNameDueToError::match_forwardPhonyNameDueToError::inactivityPhonyNameDueToError::wait_packetPhonyNameDueToError::usage_notificationPhonyNameDueToError::set_timePhonyNameDueToError::adjust_timePhonyNameDueToError::get_tx_timePhonyNameDueToError::control_queuePhonyNameDueToError::get_statsPhonyNameDueToError::packet_memory_num_slotsPhonyNameDueToError::packet_memory_slot_lenPhonyNameDueToError::descr_packet_memory_tot_lenPhonyNameDueToError::registers_indexPhonyNameDueToError::stats_indexPhonyNameDueToError::vectorPhonyNameDueToError::num_queuesPhonyNameDueToError::rxPhonyNameDueToError::txPhonyNameDueToError::phys_card_memory_lenPhonyNameDueToError::device_modelPhonyNameDueToError::mem_infoPhonyNameDueToError::channel_idPhonyNameDueToError::rx_descr_packet_memoryPhonyNameDueToError::tx_descr_packet_memoryPhonyNameDueToError::phys_card_memoryPhonyNameDueToError::devPhonyNameDueToError::hwdevPhonyNameDueToError::device_addressPhonyNameDueToError::packet_waitqueuePhonyNameDueToError::interrupt_receivedPhonyNameDueToError::in_usePhonyNameDueToError::rx_adapterPhonyNameDueToError::tx_adapterPhonyNameDueToError::callbacksPhonyNameDueToError::operationPhonyNameDueToError::device_namePhonyNameDueToError::device_typePhonyNameDueToError::proc_entrymobile_ip_hdrvxlan_hdrpkt_parsing_infopfring_extended_pkthdrpfring_pkthdrpfring_timespec_sw_filtering_hash_bucketflowSlotInfoadd_to_clustercreate_cluster_referee_infopublic_cluster_object_infolock_cluster_object_info
- 2. PF_RING API
pfringProcesssPacketpfringpfring_if_tfiltering_modepacket_slicing_levelpfring_chunk_typepfring_open()pfring_open_multichannel()pfring_shutdown()pfring_config()pfring_loop()pfring_breakloop()pfring_close()pfring_stats()pfring_recv()pfring_recv_burst()pfring_recv_parsed()pfring_recv_flow()pfring_get_metadata()pfring_set_poll_watermark()pfring_set_poll_watermark_timeout()pfring_set_poll_duration()pfring_set_tx_watermark()pfring_set_default_hw_action()pfring_add_hw_rule()pfring_remove_hw_rule()pfring_set_channel_id()pfring_set_channel_mask()pfring_set_application_name()pfring_set_application_stats()pfring_get_appl_stats_file_name()pfring_set_vlan_id()pfring_bind()pfring_send()pfring_send_get_time()pfring_get_num_rx_channels()pfring_set_sampling_rate()pfring_set_filtering_sampling_rate()pfring_set_packet_slicing()pfring_get_selectable_fd()pfring_set_direction()pfring_set_socket_mode()pfring_set_cluster_consumer()pfring_set_cluster()pfring_remove_from_cluster()pfring_set_master_id()pfring_set_master()pfring_get_ring_id()pfring_get_num_queued_pkts()pfring_handle_hash_filtering_rule()pfring_add_filtering_rule()pfring_remove_filtering_rule()pfring_purge_idle_hash_rules()pfring_purge_idle_rules()pfring_get_hash_filtering_rule_stats()pfring_get_filtering_rule_stats()pfring_toggle_filtering_policy()pfring_enable_rss_rehash()pfring_poll()pfring_is_pkt_available()pfring_next_pkt_time()pfring_next_pkt_raw_timestamp()pfring_version_noring()pfring_version()pfring_set_reflector_device()pfring_get_bound_device_address()pfring_get_slot_header_len()pfring_get_bound_device_ifindex()pfring_get_device_ifindex()pfring_set_virtual_device()pfring_loopback_test()pfring_enable_ring()pfring_disable_ring()pfring_set_bpf_filter()pfring_remove_bpf_filter()pfring_set_filtering_mode()pfring_get_device_clock()pfring_set_device_clock()pfring_adjust_device_clock()pfring_sync_indexes_with_kernel()pfring_send_last_rx_packet()pfring_get_link_status()pfring_get_link_type()pfring_get_caplen()pfring_flush_tx_packets()pfring_search_payload()pfring_parse_pkt()pfring_set_if_promisc()pfring_set_promisc()pfring_format_numbers()pfring_enable_hw_timestamp()pfring_get_mtu_size()pfring_get_card_settings()pfring_print_parsed_pkt()pfring_print_pkt()pfring_recv_chunk()pfring_set_bound_dev_name()pfring_enable_hw_timestamp_debug()pfring_read_ixia_hw_timestamp()pfring_handle_ixia_hw_timestamp()pfring_read_metawatch_hw_timestamp()pfring_read_metawatch_device_info()pfring_handle_metawatch_hw_timestamp()pfring_read_arista_7150_keyframe()pfring_read_arista_7150_hw_timestamp()pfring_handle_arista_hw_timestamp()pfring_get_interface_speed()pfring_get_ethtool_link_speed()pfring_findalldevs()pfring_freealldevs()pfring_parse_bpf_filter()pfring_free_bpf_filter()pfring_bpf_filter()gmt_to_local()pfring_thirdparty_lib_init()pfring_card_settingspfring_statpfring_chunk_infopfring_packet_infopfring_bpf_programpfring_if__pfringpfring_module_infothirdparty_func
- 3. PF_RING ZC API
pfring_zc_clusterpfring_zc_queuepfring_zc_buffer_poolpfring_zc_workerpfring_zc_multi_queuepfring_zc_filtering_funcpfring_zc_distribution_funcpfring_zc_distribution_func_v3pfring_zc_idle_callbackpfring_zc_queue_modepfring_zc_recv_policypfring_zc_pkt_buff_data()pfring_zc_pkt_buff_data_from_cluster()pfring_zc_pkt_data_buff()pfring_zc_pkt_buff_pull()pfring_zc_pkt_buff_push()pfring_zc_pkt_buff_pull_only()pfring_zc_create_cluster()pfring_zc_precompute_cluster_settings()pfring_zc_get_memory_info()pfring_zc_get_cluster_id()pfring_zc_destroy_cluster()pfring_zc_open_device()pfring_zc_create_queue()pfring_zc_create_queue_pool_pair()pfring_zc_close_device()pfring_zc_recv_pkt()pfring_zc_recv_pkt_burst()pfring_zc_queue_is_empty()pfring_zc_queue_breakloop()pfring_zc_send_pkt()pfring_zc_send_pkt_get_time()pfring_zc_send_pkt_burst()pfring_zc_queue_is_full()pfring_zc_sync_queue()pfring_zc_get_device_clock()pfring_zc_set_device_clock()pfring_zc_adjust_device_clock()pfring_zc_set_bpf_filter()pfring_zc_remove_bpf_filter()pfring_zc_add_hw_rule()pfring_zc_remove_hw_rule()pfring_zc_set_rxfh_indir()pfring_zc_get_queue_id()pfring_zc_get_queue_settings()pfring_zc_get_queue_speed()pfring_zc_get_num_rx_channels()pfring_zc_stats()pfring_zc_get_packet_handle()pfring_zc_release_packet_handle()pfring_zc_create_multi_queue()pfring_zc_send_pkt_multi()pfring_zc_send_pkt_multi_v3()pfring_zc_run_balancer_v2()pfring_zc_run_balancer()pfring_zc_run_fanout_v3()pfring_zc_run_fanout_v2()pfring_zc_run_fanout()pfring_zc_run_fifo()pfring_zc_kill_worker()pfring_zc_create_buffer_pool()pfring_zc_get_pool_id()pfring_zc_get_packet_handle_from_pool()pfring_zc_release_packet_handle_to_pool()pfring_zc_ipc_init()pfring_zc_ipc_attach_buffer_pool()pfring_zc_ipc_detach_buffer_pool()pfring_zc_ipc_attach_queue()pfring_zc_ipc_detach_queue()pfring_zc_ipc_queue_in_use()pfring_zc_ipc_queue_in_use_from_cluster()pfring_zc_ipc_queue_in_use_from_queue()pfring_zc_vm_register()pfring_zc_vm_backend_enable()pfring_zc_vm_guest_init()pfring_zc_builtin_ip_hash()pfring_zc_builtin_5tuple_hash()pfring_zc_builtin_gtp_hash()pfring_zc_builtin_gre_hash()pfring_zc_set_proc_stats()pfring_zc_set_app_name()pfring_zc_set_device_proc_stats()pfring_zc_set_device_app_name()pfring_zc_version()pfring_zc_check_license()pfring_zc_check_device_license()pfring_zc_check_device_license_by_name()pfring_zc_numa_get_cpu_node()pfring_zc_numa_set_numa_affinity()pfring_zc_debug()pfring_zc_statpfring_zc_timespecpfring_zc_pkt_buffpfring_zc_queue_infopfring_zc_cluster_infopfring_zc_cluster_mem_info
- 4. PF_RING FT API
pfring_ft_tablepfring_ft_listpfring_ft_flowpfring_ft_actionpfring_ft_in4_addrpfring_ft_export_list_funcpfring_ft_export_flow_funcpfring_ft_flow_packet_funcpfring_ft_directionpfring_ft_flow_statuspfring_ft_create_table()pfring_ft_destroy_table()pfring_ft_flow_set_flow_slicing()pfring_ft_set_new_flow_callback()pfring_ft_set_flow_packet_callback()pfring_ft_set_l7_detected_callback()pfring_ft_set_flow_export_callback()pfring_ft_set_flow_list_export_callback()pfring_ft_process()pfring_ft_housekeeping()pfring_ft_flush()pfring_ft_list_get_next()pfring_ft_flow_get_id()pfring_ft_flow_get_key()pfring_ft_flow_get_value()pfring_ft_flow_get_ndpi_handle()pfring_ft_flow_set_action()pfring_ft_flow_get_action()pfring_ft_flow_get_users()pfring_ft_flow_free()pfring_ft_zmq_export_configure()pfring_ft_zmq_export_flow()pfring_ft_zmq_export_stats()pfring_ft_zmq_get_stats()pfring_ft_set_default_action()pfring_ft_load_configuration()pfring_ft_load_configuration_ext()pfring_ft_set_shunt_protocol_by_name()pfring_ft_set_filter_all_protocols()pfring_ft_set_filter_protocol_by_name()pfring_ft_l7_protocol_name()pfring_ft_l7_protocol_id()pfring_ft_set_ndpi_handle()pfring_ft_get_ndpi_handle()pfring_ft_load_ndpi_protocols()pfring_ft_load_ndpi_categories()pfring_ft_is_ndpi_available()pfring_ft_get_stats()pfring_ft_version()pfring_ft_api_version()pfring_ft_license()pfring_ft_set_license()pfring_ft_debug()pfring_ft_flow_filterpfring_ft_pcap_pkthdrpfring_ft_ext_pkthdrpfring_ft_packet_metadatapfring_ft_ip_addresspfring_ft_ndpi_protocolpfring_ft_flow_keypfring_ft_flow_dir_valuepfring_ft_flow_valuepfring_ft_statspfring_ft_export_stats
- 5. Libpcap API