1. PF_RING Kernel Internal API
PF_RING kernel module header file.
This header file should NOT be included in PF_RING-based applications directly.
Defines
-
RING_VERSION
-
RING_VERSION_NUM
-
RING_FLOWSLOT_VERSION
-
RING_MAGIC
-
RING_MAGIC_VALUE
-
RING_USE_SOCKADDR_LL
-
MIN_NUM_SLOTS
-
DEFAULT_NUM_SLOTS
-
DEFAULT_BUCKET_LEN
-
MAX_NUM_DEVICES
-
MAX_NUM_RING_SOCKETS
-
MAX_CLUSTER_QUEUES
-
DEFAULT_MIN_PKT_QUEUED
-
DEFAULT_POLL_WATERMARK_TIMEOUT
-
FILTERING_SAMPLING_RATIO
-
SO_ADD_TO_CLUSTER
-
SO_REMOVE_FROM_CLUSTER
-
SO_SET_STRING
-
SO_ADD_FILTERING_RULE
-
SO_REMOVE_FILTERING_RULE
-
SO_TOGGLE_FILTER_POLICY
-
SO_SET_SAMPLING_RATE
-
SO_ACTIVATE_RING
-
SO_RING_BUCKET_LEN
-
SO_SET_CHANNEL_ID
-
SO_PURGE_IDLE_HASH_RULES
-
SO_SET_APPL_NAME
-
SO_SET_PACKET_DIRECTION
-
SO_SET_MASTER_RING
-
SO_ADD_HW_FILTERING_RULE
-
SO_DEL_HW_FILTERING_RULE
-
SO_DISCARD_INJECTED_PKTS
-
SO_DEACTIVATE_RING
-
SO_SET_POLL_WATERMARK
-
SO_SET_VIRTUAL_FILTERING_DEVICE
-
SO_REHASH_RSS_PACKET
-
SO_SET_FILTERING_SAMPLING_RATE
-
SO_SET_POLL_WATERMARK_TIMEOUT
-
SO_SET_DEV_TIME
-
SO_ADJ_DEV_TIME
-
SO_SHUTDOWN_RING
-
SO_PURGE_IDLE_RULES
-
SO_SET_SOCKET_MODE
-
SO_USE_SHORT_PKT_HEADER
-
SO_CONTROL_DEV_QUEUE
-
SO_ENABLE_RX_PACKET_BOUNCE
-
SO_SET_APPL_STATS
-
SO_SET_STACK_INJECTION_MODE
-
SO_CREATE_CLUSTER_REFEREE
-
SO_PUBLISH_CLUSTER_OBJECT
-
SO_LOCK_CLUSTER_OBJECT
-
SO_UNLOCK_CLUSTER_OBJECT
-
SO_SET_CUSTOM_BOUND_DEV_NAME
-
SO_SET_IFF_PROMISC
-
SO_SET_VLAN_ID
-
SO_GET_RING_VERSION
-
SO_GET_FILTERING_RULE_STATS
-
SO_GET_HASH_FILTERING_RULE_STATS
-
SO_GET_ZC_DEVICE_INFO
-
SO_GET_NUM_RX_CHANNELS
-
SO_GET_RING_ID
-
SO_GET_BPF_EXTENSIONS
-
SO_GET_BOUND_DEVICE_ADDRESS
-
SO_GET_NUM_QUEUED_PKTS
-
SO_GET_PKT_HEADER_LEN
-
SO_GET_LOOPBACK_TEST
-
SO_GET_BUCKET_LEN
-
SO_GET_DEVICE_TYPE
-
SO_GET_EXTRA_DMA_MEMORY
-
SO_GET_BOUND_DEVICE_IFINDEX
-
SO_GET_DEVICE_IFINDEX
-
SO_GET_APPL_STATS_FILE_NAME
-
SO_GET_LINK_STATUS
-
SO_GET_DEV_TX_TIME
-
SO_GET_DEV_STATS
-
SO_SELECT_ZC_DEVICE
-
SO_GET_CLUSTER_OBJECT_INFO
-
PF_RING_ERROR_GENERIC
-
PF_RING_ERROR_INVALID_ARGUMENT
-
PF_RING_ERROR_NO_PKT_AVAILABLE
-
PF_RING_ERROR_NO_TX_SLOT_AVAILABLE
-
PF_RING_ERROR_WRONG_CONFIGURATION
-
PF_RING_ERROR_END_OF_DEMO_MODE
-
PF_RING_ERROR_NOT_SUPPORTED
-
PF_RING_ERROR_INVALID_LIB_VERSION
-
PF_RING_ERROR_UNKNOWN_ADAPTER
-
PF_RING_ERROR_NOT_ENOUGH_MEMORY
-
PF_RING_ERROR_INVALID_STATUS
-
PF_RING_ERROR_RING_NOT_ENABLED
-
PF_RING_ERROR_BAD_IFNAME
-
PF_RING_ERROR_MOD_NOT_LOADED
-
PF_RING_ERROR_UNABLE_TO_MAP
-
PF_RING_ERROR_UNABLE_TO_GET_INFO
-
PF_RING_ERROR_MMAP_FAILURE
-
PF_RING_ERROR_INIT_FAILURE
-
REFLECTOR_NAME_LEN
-
IN6ADDR_ANY_INIT
-
ETH_ALEN
-
REFLECT_PACKET_DEVICE_NONE
-
ipv4_tos
-
ipv6_tos
-
ipv4_src
-
ipv4_dst
-
ipv6_src
-
ipv6_dst
-
host4_low
-
host4_high
-
host6_low
-
host6_high
-
host4_peer_a
-
host4_peer_b
-
host6_peer_a
-
host6_peer_b
-
NEXTHDR_HOP
-
NEXTHDR_IPV6
-
NEXTHDR_ROUTING
-
NEXTHDR_FRAGMENT
-
NEXTHDR_ESP
-
NEXTHDR_AUTH
-
NEXTHDR_NONE
-
NEXTHDR_DEST
-
NEXTHDR_MOBILITY
-
GRE_HEADER_CHECKSUM
-
GRE_HEADER_ROUTING
-
GRE_HEADER_KEY
-
GRE_HEADER_SEQ_NUM
-
GRE_HEADER_VERSION
-
GTP_SIGNALING_PORT
-
GTP_U_DATA_PORT
-
GTP_VERSION_1
-
GTP_VERSION_2
-
GTP_PROTOCOL_TYPE
-
GTP_FLAGS_VERSION
-
GTP_FLAGS_VERSION_SHIFT
-
GTP_FLAGS_PROTOCOL_TYPE
-
GTP_FLAGS_RESERVED
-
GTP_FLAGS_EXTENSION
-
GTP_FLAGS_SEQ_NUM
-
GTP_FLAGS_NPDU_NUM
-
GTP_EXT_HDR_LEN_UNIT_BYTES
-
NO_TUNNEL_ID
-
MOBILE_IP_PORT
-
VXLAN_IP_PORT
-
UNKNOWN_INTERFACE
-
FAKE_PACKET
-
PKT_FLAGS_CHECKSUM_OFFLOAD
-
PKT_FLAGS_CHECKSUM_OK
-
PKT_FLAGS_IP_MORE_FRAG
-
PKT_FLAGS_IP_FRAG_OFFSET
-
PKT_FLAGS_VLAN_HWACCEL
-
PKT_FLAGS_FLOW_HIT
-
PKT_FLAGS_FLOW_MISS
-
PKT_FLAGS_FLOW_UNHANDLED
-
MAX_NUM_LIST_ELEMENTS
-
FILTER_TUNNEL_ID_FLAG
-
FILTERING_RULE_AUTO_RULE_ID
-
MAGIC_HW_FILTERING_RULE_REQUEST
-
PF_RING_FLOW_UPDATE_CAUSE_SW
-
PF_RING_FLOW_UPDATE_CAUSE_TIMEOUT
-
PF_RING_FLOW_UPDATE_CAUSE_TCP_TERM
-
PF_RING_FLOW_UPDATE_CAUSE_PERIODIC
-
PF_RING_FLOW_UPDATE_CAUSE_PROBE
-
PF_RING_FLOW_UPDATE_CAUSE_UNKNOWN
-
DEFAULT_RING_HASH_SIZE
-
RING_MIN_SLOT_SIZE
-
RING_MAX_SLOT_SIZE
-
min_val(a, b)
-
max_val(a, b)
-
PF_RING
-
SOCK_RING
-
SIORINGPOLL
-
IFNAMSIZ
-
RING_ANY_CHANNEL
-
MAX_NUM_RX_CHANNELS
-
UNKNOWN_NUM_RX_CHANNELS
-
RING_ANY_VLAN
-
RING_NO_VLAN
-
MAX_CLUSTER_TYPE_ID
-
CLUSTER_OPTION_RELAXED_DISTRIBUTION
Typedefs
-
typedef int (*five_tuple_rule_handler)(struct pf_ring_socket *pfr, hw_filtering_rule *rule, hw_filtering_rule_command request)
-
typedef int (*perfect_filter_hw_rule_handler)(struct pf_ring_socket *pfr, hw_filtering_rule *rule, hw_filtering_rule_command request)
-
typedef int (*zc_dev_wait_packet)(void *rx_adapter, int mode)
-
typedef int (*zc_dev_notify)(void *rx_adapter, void *tx_adapter, u_int8_t device_in_use)
-
typedef int (*zc_dev_set_time)(void *rx_adapter, u_int64_t time_ns)
-
typedef int (*zc_dev_adjust_time)(void *rx_adapter, int64_t offset_ns)
-
typedef int (*zc_dev_get_tx_time)(void *tx_adapter, u_int64_t *time_ns)
-
typedef int (*zc_dev_control_queue)(void *rx_adapter, u_int8_t enable)
-
typedef int (*zc_dev_get_stats)(void *rx_adapter, u_int64_t *rx_missed)
Enums
-
enum rule_action_behaviour
Values:
-
enumerator forward_packet_and_stop_rule_evaluation
-
enumerator dont_forward_packet_and_stop_rule_evaluation
-
enumerator execute_action_and_continue_rule_evaluation
-
enumerator execute_action_and_stop_rule_evaluation
-
enumerator forward_packet_add_rule_and_stop_rule_evaluation
-
enumerator reflect_packet_and_stop_rule_evaluation
-
enumerator reflect_packet_and_continue_rule_evaluation
-
enumerator bounce_packet_and_stop_rule_evaluation
-
enumerator bounce_packet_and_continue_rule_evaluation
-
enumerator forward_packet_and_stop_rule_evaluation
-
enum packet_direction
Values:
-
enumerator rx_and_tx_direction
-
enumerator rx_only_direction
-
enumerator tx_only_direction
-
enumerator rx_and_tx_direction
-
enum socket_mode
Values:
-
enumerator send_and_recv_mode
-
enumerator send_only_mode
-
enumerator recv_only_mode
-
enumerator management_only_mode
-
enumerator send_and_recv_mode
-
enum silicom_redirector_rule_type
Values:
-
enumerator drop_rule
-
enumerator redirect_rule
-
enumerator mirror_rule
-
enumerator drop_rule
-
enum generic_flow_rule_action_type
Values:
-
enumerator flow_drop_rule
-
enumerator flow_mark_rule
-
enumerator flow_pass_rule
-
enumerator flow_steer_rule
-
enumerator flow_unlearn_rule
-
enumerator flow_drop_rule
-
enum hw_filtering_rule_type
Values:
-
enumerator intel_82599_five_tuple_rule
-
enumerator intel_82599_perfect_filter_rule
-
enumerator silicom_redirector_rule
-
enumerator generic_flow_id_rule
-
enumerator generic_flow_tuple_rule
-
enumerator intel_82599_five_tuple_rule
-
enum zc_dev_model
Values:
-
enumerator intel_e1000e
-
enumerator intel_igb
-
enumerator intel_ixgbe
-
enumerator intel_ixgbe_82598
-
enumerator intel_ixgbe_82599
-
enumerator intel_igb_82580
-
enumerator intel_e1000
-
enumerator intel_ixgbe_82599_ts
-
enumerator intel_i40e
-
enumerator intel_ixgbe_vf
-
enumerator intel_ixgbe_x550
-
enumerator intel_ice
-
enumerator intel_i40e_vf
-
enumerator intel_e1000e
-
enum cluster_type
Values:
-
enumerator cluster_per_flow
-
enumerator cluster_round_robin
-
enumerator cluster_per_flow_2_tuple
-
enumerator cluster_per_flow_4_tuple
-
enumerator cluster_per_flow_5_tuple
-
enumerator cluster_per_flow_tcp_5_tuple
-
enumerator cluster_per_inner_flow
-
enumerator cluster_per_inner_flow_2_tuple
-
enumerator cluster_per_inner_flow_4_tuple
-
enumerator cluster_per_inner_flow_5_tuple
-
enumerator cluster_per_inner_flow_tcp_5_tuple
-
enumerator cluster_per_flow_ip_5_tuple
-
enumerator cluster_per_inner_flow_ip_5_tuple
-
enumerator cluster_per_flow_ip_with_dup_tuple
-
enumerator cluster_per_flow_ip_with_dup_tuple_ext
-
enumerator cluster_per_flow
Functions
- struct pkt_offset __attribute__ ((packed))
- struct gtp_v1_hdr __attribute__ ((__packed__))
Variables
- typedef __attribute__
-
int16_t eth_offset
-
int16_t vlan_offset
-
int16_t l3_offset
-
int16_t l4_offset
-
int16_t payload_offset
-
u_int16_t h_vlan_id
-
u_int16_t h_proto
-
u_int32_t flow_lbl
-
u_int32_t priority
-
u_int32_t version
-
u_int16_t payload_len
-
u_int8_t nexthdr
-
u_int8_t hop_limit
-
struct in6_addr saddr
-
struct in6_addr daddr
-
u_int8_t hdrlen
-
u_int8_t padding[6]
-
u_int16_t flags_and_version
-
u_int16_t proto
-
u_int8_t flags
-
u_int8_t message_type
-
u_int32_t teid
-
u_int16_t seq_num
-
u_int8_t npdu_num
-
u_int8_t next_ext_hdr
-
u_int8_t len
-
u_int8_t next_header
-
u_int16_t reserved
-
u_int16_t gdp
-
u_int8_t vni[3]
-
u_int8_t res
-
u_int8_t dmac[ETH_ALEN]
-
u_int8_t smac[ETH_ALEN]
-
u_int16_t eth_type
-
u_int16_t vlan_id
-
u_int16_t qinq_vlan_id
-
u_int8_t ip_version
-
u_int8_t l3_proto
-
u_int8_t ip_tos
-
u_int16_t l4_src_port
-
u_int16_t l4_dst_port
-
u_int8_t icmp_type
-
u_int8_t icmp_code
-
u_int32_t ack_num
-
struct [anonymous] tcp
-
tunnel_info tunnel
-
int32_t last_matched_rule_id
-
struct pkt_offset offset
-
u_int64_t timestamp_ns
-
u_int8_t rx_direction
-
u_int8_t port_id
-
u_int16_t device_id
-
int32_t if_index
-
u_int32_t pkt_hash
-
int32_t bounce_interface
-
struct [anonymous] tx
-
u_int32_t pid
-
struct [anonymous] process
-
struct pkt_parsing_info parsed_pkt
-
struct timeval ts
-
u_int32_t caplen
-
struct pfring_extended_pkthdr extended_hdr
-
u_int32_t tv_sec
-
u_int32_t tv_nsec
-
struct pf_ring_socket *pfr
-
hash_filtering_rule rule
-
u_int64_t match
-
u_int64_t filtered
-
u_int64_t match_forward
-
struct _sw_filtering_hash_bucket *next
-
u_int16_t sample_rate
-
u_int32_t min_num_slots
-
u_int32_t slot_len
-
u_int32_t data_len
-
u_int64_t tot_mem
-
volatile u_int64_t insert_off
-
u_int64_t kernel_remove_off
-
u_int64_t tot_pkts
-
u_int64_t tot_lost
-
volatile u_int64_t tot_insert
-
u_int64_t kernel_tot_read
-
u_int64_t tot_fwd_ok
-
u_int64_t tot_fwd_notok
-
u_int64_t good_pkt_sent
-
u_int64_t pkt_send_error
-
char k_padding[4096 - 128]
-
volatile u_int64_t tot_read
-
volatile u_int64_t remove_off
-
char u_padding[4096 - 16]
-
u_int16_t cluster_id
-
u_int16_t queue_id
-
u_int32_t options
-
cluster_type the_type
-
u_int32_t recovered
-
u_int32_t object_type
-
u_int32_t object_id
-
u_int32_t lock_mask
-
u_int32_t locked_mask
-
struct pkt_offset
-
union ip_addr
-
struct eth_vlan_hdr
-
struct kcompact_ipv6_hdr
-
struct kcompact_ipv6_opt_hdr
-
struct gre_header
-
struct gtp_v1_hdr
-
struct gtp_v1_opt_hdr
- __attribute__
Public Members
-
u_int32_t tunnel_id
-
u_int8_t tunneled_dmac[ETH_ALEN]
-
u_int8_t tunneled_smac[ETH_ALEN]
-
u_int16_t tunneled_eth_type
-
u_int8_t tunneled_ip_version
-
u_int8_t tunneled_proto
-
u_int16_t tunneled_l4_src_port
-
u_int16_t tunneled_l4_dst_port
-
int32_t if_index
-
u_int8_t smac[ETH_ALEN]
-
u_int8_t dmac[ETH_ALEN]
-
u_int16_t vlan_id
-
u_int16_t eth_type
-
u_int8_t proto
-
u_int16_t sport_low
-
u_int16_t sport_high
-
u_int16_t dport_low
-
u_int16_t dport_high
-
u_int8_t flags
-
struct __attribute__::[anonymous] tcp
-
u_int16_t optional_fields
-
struct __attribute__::[anonymous] tunnel
-
char payload_pattern[32]
-
unsigned long jiffies_last_match
-
struct net_device *reflector_dev
-
u_int16_t rule_id
-
rule_action_behaviour rule_action
-
u_int8_t balance_id
-
u_int8_t balance_pool
-
u_int8_t locked
-
u_int8_t bidirectional
-
filtering_rule_core_fields core_fields
-
filtering_rule_extended_fields extended_fields
-
char reflector_device_name[REFLECTOR_NAME_LEN]
-
filtering_internals internals
-
u_int32_t s_addr
-
u_int32_t d_addr
-
u_int16_t s_port
-
u_int16_t d_port
-
u_int16_t queue_id
-
silicom_redirector_rule_type rule_type
-
u_int8_t rule_port
-
u_int8_t rule_target_port
-
u_int16_t vlan_id_low
-
u_int16_t vlan_id_high
-
u_int8_t l3_proto
-
u_int32_t src_mask
-
u_int32_t dst_mask
-
u_int16_t src_port_low
-
u_int16_t src_port_high
-
u_int16_t dst_port_low
-
u_int16_t dst_port_high
-
u_int64_t flow_id
-
u_int32_t thread
-
u_int16_t src_port
-
u_int16_t dst_port
-
u_int8_t ip_version
-
u_int8_t protocol
-
u_int8_t interface
-
u_int8_t queue_id
-
hw_filtering_rule_type rule_family_type
-
u_int16_t priority
-
intel_82599_five_tuple_filter_hw_rule five_tuple_rule
-
intel_82599_perfect_filter_hw_rule perfect_rule
-
silicom_redirector_hw_rule redirector_rule
-
generic_flow_id_hw_rule flow_id_rule
-
generic_flow_tuple_hw_rule flow_tuple_rule
-
union __attribute__::[anonymous] rule_family
-
u_int8_t cause
-
u_int8_t padding_0
-
u_int16_t padding_1
-
u_int16_t flags_out
-
u_int16_t flags_in
-
u_int32_t packets_out
-
u_int32_t packets_in
-
u_int64_t bytes_out
-
u_int64_t bytes_in
-
struct pfring_timespec last_seen
-
u_int32_t flow_id
-
u_int8_t l4_protocol
-
u_int8_t tos
-
u_int8_t tcp_flags
-
u_int8_t start_of_flow
-
u_int8_t reserved
-
u_int32_t fwd_packets
-
u_int32_t rev_packets
-
u_int64_t fwd_bytes
-
u_int64_t rev_bytes
-
struct pfring_timespec fwd_ts_first
-
struct pfring_timespec fwd_ts_last
-
struct pfring_timespec rev_ts_first
-
struct pfring_timespec rev_ts_last
-
five_tuple_rule_handler five_tuple_handler
-
perfect_filter_hw_rule_handler perfect_filter_handler
-
u_int16_t port_peer_a
-
u_int16_t port_peer_b
-
u_int64_t match
-
u_int64_t filtered
-
u_int64_t match_forward
-
u_int32_t inactivity
-
zc_dev_wait_packet wait_packet
-
zc_dev_notify usage_notification
-
zc_dev_set_time set_time
-
zc_dev_adjust_time adjust_time
-
zc_dev_get_tx_time get_tx_time
-
zc_dev_control_queue control_queue
-
zc_dev_get_stats get_stats
-
u_int32_t packet_memory_num_slots
-
u_int32_t packet_memory_slot_len
-
u_int32_t descr_packet_memory_tot_len
-
u_int16_t registers_index
-
u_int16_t stats_index
-
u_int32_t vector
-
u_int32_t num_queues
-
zc_dev_ring_info rx
-
zc_dev_ring_info tx
-
u_int32_t phys_card_memory_len
-
zc_dev_model device_model
-
zc_memory_info mem_info
-
u_int16_t channel_id
-
void *rx_descr_packet_memory
-
void *tx_descr_packet_memory
-
char *phys_card_memory
-
struct net_device *dev
-
struct device *hwdev
-
u_char device_address[6]
-
void *packet_waitqueue
-
u_int8_t *interrupt_received
-
u_int8_t in_use
-
void *rx_adapter
-
void *tx_adapter
-
zc_dev_callbacks callbacks
-
zc_dev_operation operation
-
char device_name[IFNAMSIZ]
-
int32_t channel_id
-
pfring_device_type device_type
-
struct proc_dir_entry *proc_entry
-
u_int32_t tunnel_id
-
struct mobile_ip_hdr
-
struct vxlan_hdr
-
struct pkt_parsing_info
Public Members
-
u_int8_t dmac[ETH_ALEN]
-
u_int8_t smac[ETH_ALEN]
-
u_int16_t eth_type
-
u_int16_t vlan_id
-
u_int16_t qinq_vlan_id
-
u_int8_t ip_version
-
u_int8_t l3_proto
-
u_int8_t ip_tos
-
u_int16_t l4_src_port
-
u_int16_t l4_dst_port
-
u_int8_t icmp_type
-
u_int8_t icmp_code
-
u_int8_t flags
-
u_int32_t seq_num
-
u_int32_t ack_num
-
struct pkt_parsing_info::[anonymous] tcp
-
tunnel_info tunnel
-
int32_t last_matched_rule_id
-
struct pkt_offset offset
-
u_int8_t dmac[ETH_ALEN]
-
struct pfring_extended_pkthdr
Public Members
-
u_int64_t timestamp_ns
-
u_int32_t flags
-
u_int8_t rx_direction
-
u_int8_t port_id
-
u_int16_t device_id
-
int32_t if_index
-
u_int32_t pkt_hash
-
int32_t bounce_interface
-
struct sk_buff *reserved
-
struct pfring_extended_pkthdr::[anonymous] tx
-
u_int32_t pid
-
struct pfring_extended_pkthdr::[anonymous] process
-
struct pkt_parsing_info parsed_pkt
-
u_int64_t timestamp_ns
-
struct pfring_pkthdr
Public Members
-
struct timeval ts
-
u_int32_t caplen
-
u_int32_t len
-
struct pfring_extended_pkthdr extended_hdr
-
struct timeval ts
-
struct pfring_timespec
-
struct _sw_filtering_hash_bucket
-
struct flowSlotInfo
Public Members
-
u_int16_t version
-
u_int16_t sample_rate
-
u_int32_t min_num_slots
-
u_int32_t slot_len
-
u_int32_t data_len
-
u_int64_t tot_mem
-
volatile u_int64_t insert_off
-
u_int64_t kernel_remove_off
-
u_int64_t tot_pkts
-
u_int64_t tot_lost
-
volatile u_int64_t tot_insert
-
u_int64_t kernel_tot_read
-
u_int64_t tot_fwd_ok
-
u_int64_t tot_fwd_notok
-
u_int64_t good_pkt_sent
-
u_int64_t pkt_send_error
-
char padding[128 - 104]
-
char k_padding[4096 - 128]
-
volatile u_int64_t tot_read
-
volatile u_int64_t remove_off
-
char u_padding[4096 - 16]
-
u_int16_t version
-
struct add_to_cluster
-
struct create_cluster_referee_info
-
struct public_cluster_object_info
-
struct lock_cluster_object_info