PF_RING API
API documentation for PF_RING: high-speed packet capture, filtering and analysis framework.
|
PF_RING kernel module header file. More...
#include <netinet/in.h>
Go to the source code of this file.
Classes | |
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 |
struct | gtp_v1_ext_hdr |
struct | __attribute__ |
struct | mobile_ip_hdr |
struct | pkt_parsing_info |
struct | pfring_extended_pkthdr |
struct | pfring_pkthdr |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | pfring_timespec |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | _sw_filtering_hash_bucket |
struct | flowSlotInfo |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | __attribute__ |
struct | add_to_cluster |
struct | __attribute__ |
struct | create_cluster_referee_info |
struct | public_cluster_object_info |
struct | lock_cluster_object_info |
Macros | |
#define | RING_MAGIC |
#define | RING_MAGIC_VALUE 0x88 |
#define | RING_FLOWSLOT_VERSION 17 |
#define | DEFAULT_BUCKET_LEN 128 |
#define | MAX_NUM_DEVICES 256 |
#define | MAX_NUM_RING_SOCKETS 256 |
#define | DEFAULT_MIN_PKT_QUEUED 128 |
#define | DEFAULT_POLL_WATERMARK_TIMEOUT 0 |
#define | pfring_ptr ax25_ptr |
#define | RING_VERSION "7.1.0" |
#define | RING_VERSION_NUM 0x070100 |
#define | SO_ADD_TO_CLUSTER 99 |
#define | SO_REMOVE_FROM_CLUSTER 100 |
#define | SO_SET_STRING 101 |
#define | SO_ADD_FILTERING_RULE 102 |
#define | SO_REMOVE_FILTERING_RULE 103 |
#define | SO_TOGGLE_FILTER_POLICY 104 |
#define | SO_SET_SAMPLING_RATE 105 |
#define | SO_ACTIVATE_RING 106 |
#define | SO_RING_BUCKET_LEN 107 |
#define | SO_SET_CHANNEL_ID 108 |
#define | SO_PURGE_IDLE_HASH_RULES 109 /* inactivity (sec) */ |
#define | SO_SET_APPL_NAME 110 |
#define | SO_SET_PACKET_DIRECTION 111 |
#define | SO_SET_MASTER_RING 112 |
#define | SO_ADD_HW_FILTERING_RULE 113 |
#define | SO_DEL_HW_FILTERING_RULE 114 |
#define | SO_DEACTIVATE_RING 116 |
#define | SO_SET_POLL_WATERMARK 117 |
#define | SO_SET_VIRTUAL_FILTERING_DEVICE 118 |
#define | SO_REHASH_RSS_PACKET 119 |
#define | SO_SET_POLL_WATERMARK_TIMEOUT 121 |
#define | SO_SHUTDOWN_RING 124 |
#define | SO_PURGE_IDLE_RULES 125 /* inactivity (sec) */ |
#define | SO_SET_SOCKET_MODE 126 |
#define | SO_USE_SHORT_PKT_HEADER 127 |
#define | SO_ENABLE_RX_PACKET_BOUNCE 131 |
#define | SO_SET_APPL_STATS 133 |
#define | SO_SET_STACK_INJECTION_MODE 134 /* stack injection/interception from userspace */ |
#define | SO_CREATE_CLUSTER_REFEREE 135 |
#define | SO_PUBLISH_CLUSTER_OBJECT 136 |
#define | SO_LOCK_CLUSTER_OBJECT 137 |
#define | SO_UNLOCK_CLUSTER_OBJECT 138 |
#define | SO_SET_CUSTOM_BOUND_DEV_NAME 139 |
#define | SO_SET_IFF_PROMISC 140 |
#define | SO_SET_VLAN_ID 141 |
#define | SO_GET_RING_VERSION 170 |
#define | SO_GET_FILTERING_RULE_STATS 171 |
#define | SO_GET_HASH_FILTERING_RULE_STATS 172 |
#define | SO_GET_ZC_DEVICE_INFO 173 |
#define | SO_GET_NUM_RX_CHANNELS 174 |
#define | SO_GET_RING_ID 175 |
#define | SO_GET_BPF_EXTENSIONS 176 |
#define | SO_GET_BOUND_DEVICE_ADDRESS 177 |
#define | SO_GET_NUM_QUEUED_PKTS 178 |
#define | SO_GET_PKT_HEADER_LEN 179 |
#define | SO_GET_LOOPBACK_TEST 180 |
#define | SO_GET_BUCKET_LEN 181 |
#define | SO_GET_DEVICE_TYPE 182 |
#define | SO_GET_EXTRA_DMA_MEMORY 183 |
#define | SO_GET_BOUND_DEVICE_IFINDEX 184 |
#define | SO_GET_DEVICE_IFINDEX 185 |
#define | SO_GET_APPL_STATS_FILE_NAME 186 |
#define | SO_GET_LINK_STATUS 187 |
#define | SO_SELECT_ZC_DEVICE 190 |
#define | PF_RING_ERROR_GENERIC -1 |
#define | PF_RING_ERROR_INVALID_ARGUMENT -2 |
#define | PF_RING_ERROR_NO_PKT_AVAILABLE -3 |
#define | PF_RING_ERROR_NO_TX_SLOT_AVAILABLE -4 |
#define | PF_RING_ERROR_WRONG_CONFIGURATION -5 |
#define | PF_RING_ERROR_END_OF_DEMO_MODE -6 |
#define | PF_RING_ERROR_NOT_SUPPORTED -7 |
#define | PF_RING_ERROR_INVALID_LIB_VERSION -8 |
#define | PF_RING_ERROR_UNKNOWN_ADAPTER -9 |
#define | PF_RING_ERROR_NOT_ENOUGH_MEMORY -10 |
#define | PF_RING_ERROR_INVALID_STATUS -11 |
#define | PF_RING_ERROR_RING_NOT_ENABLED -12 |
#define | REFLECTOR_NAME_LEN 8 |
#define | IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } } |
#define | NETDEV_PRE_UP 0x000D |
#define | ETH_ALEN 6 |
#define | REFLECT_PACKET_DEVICE_NONE 0 |
#define | ipv4_tos ip_tos |
#define | ipv6_tos ip_tos |
#define | ipv4_src ip_src.v4 |
#define | ipv4_dst ip_dst.v4 |
#define | ipv6_src ip_src.v6 |
#define | ipv6_dst ip_dst.v6 |
#define | host4_low host_low.v4 |
#define | host4_high host_high.v4 |
#define | host6_low host_low.v6 |
#define | host6_high host_high.v6 |
#define | host4_peer_a host_peer_a.v4 |
#define | host4_peer_b host_peer_b.v4 |
#define | host6_peer_a host_peer_a.v6 |
#define | host6_peer_b host_peer_b.v6 |
#define | NEXTHDR_HOP 0 |
#define | NEXTHDR_IPV6 41 |
#define | NEXTHDR_ROUTING 43 |
#define | NEXTHDR_FRAGMENT 44 |
#define | NEXTHDR_ESP 50 |
#define | NEXTHDR_AUTH 51 |
#define | NEXTHDR_NONE 59 |
#define | NEXTHDR_DEST 60 |
#define | NEXTHDR_MOBILITY 135 |
#define | GRE_HEADER_CHECKSUM 0x8000 |
#define | GRE_HEADER_ROUTING 0x4000 |
#define | GRE_HEADER_KEY 0x2000 |
#define | GRE_HEADER_SEQ_NUM 0x1000 |
#define | GRE_HEADER_VERSION 0x0007 |
#define | GTP_SIGNALING_PORT 2123 |
#define | GTP_U_DATA_PORT 2152 |
#define | GTP_VERSION_1 0x1 |
#define | GTP_VERSION_2 0x2 |
#define | GTP_PROTOCOL_TYPE 0x1 |
#define | GTP_FLAGS_VERSION 0xE0 |
#define | GTP_FLAGS_VERSION_SHIFT 5 |
#define | GTP_FLAGS_PROTOCOL_TYPE 0x10 |
#define | GTP_FLAGS_RESERVED 0x08 |
#define | GTP_FLAGS_EXTENSION 0x04 |
#define | GTP_FLAGS_SEQ_NUM 0x02 |
#define | GTP_FLAGS_NPDU_NUM 0x01 |
#define | GTP_EXT_HDR_LEN_UNIT_BYTES 4 |
#define | NO_TUNNEL_ID 0xFFFFFFFF |
#define | MOBILE_IP_PORT 434 |
#define | UNKNOWN_INTERFACE -1 |
#define | FAKE_PACKET |
#define | PKT_FLAGS_CHECKSUM_OFFLOAD 1 << 0 /* IP/TCP checksum offload enabled */ |
#define | PKT_FLAGS_CHECKSUM_OK 1 << 1 /* Valid checksum (with IP/TCP checksum offload enabled) */ |
#define | PKT_FLAGS_IP_MORE_FRAG 1 << 2 /* IP More fragments flag set */ |
#define | PKT_FLAGS_IP_FRAG_OFFSET 1 << 3 /* IP fragment offset set (not 0) */ |
#define | PKT_FLAGS_VLAN_HWACCEL 1 << 4 /* VLAN stripped by hw */ |
#define | PKT_FLAGS_FLOW_OFFLOAD_UPDATE 1 << 6 /* Flow update metadata, see generic_flow_update struct (keep flag compatible with ZC) */ |
#define | PKT_FLAGS_FLOW_OFFLOAD_PACKET 1 << 7 /* Flow raw packet, pkt_hash contains the flow_id (keep flag compatible with ZC) */ |
#define | PKT_FLAGS_FLOW_OFFLOAD_MARKER 1 << 8 /* Flow raw packet belongs to a flow that has been marked (keep flag compatible with ZC) */ |
#define | MAX_NUM_LIST_ELEMENTS MAX_NUM_RING_SOCKETS /* sizeof(bits_set) [see below] */ |
#define | FILTER_TUNNEL_ID_FLAG 1 << 0 |
#define | FILTERING_RULE_AUTO_RULE_ID 0xFFFF |
#define | MAGIC_HW_FILTERING_RULE_REQUEST 0x29010020 /* deprecated? */ |
#define | DEFAULT_RING_HASH_SIZE 4096 |
#define | RING_MIN_SLOT_SIZE (60+sizeof(struct pfring_pkthdr)) |
#define | RING_MAX_SLOT_SIZE (1514+sizeof(struct pfring_pkthdr)) |
#define | min_val(a, b) ((a < b) ? a : b) |
#define | max_val(a, b) ((a > b) ? a : b) |
#define | PF_RING 27 /* (0x1b) Packet Ring */ |
#define | SOCK_RING PF_RING |
#define | SIORINGPOLL 0x8888 |
#define | IFNAMSIZ 16 |
#define | RING_ANY_CHANNEL ((u_int64_t)-1) |
#define | MAX_NUM_RX_CHANNELS 64 /* channel_id_mask is a 64 bit mask */ |
#define | UNKNOWN_NUM_RX_CHANNELS 1 |
#define | RING_ANY_VLAN ((u_int16_t)0xFFFF) |
#define | RING_NO_VLAN ((u_int16_t)0) |
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_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 |
ip_addr | ip_src |
ip_addr | ip_dst |
u_int16_t | l4_src_port |
u_int16_t | l4_dst_port |
u_int8_t | icmp_type |
u_int8_t | icmp_code |
struct { | |
u_int8_t flags | |
u_int32_t seq_num | |
u_int32_t ack_num | |
} | tcp |
tunnel_info | tunnel |
int32_t | last_matched_rule_id |
struct pkt_offset | offset |
u_int64_t | timestamp_ns |
u_int8_t | rx_direction |
int32_t | if_index |
u_int32_t | pkt_hash |
struct { | |
int32_t bounce_interface | |
struct sk_buff * reserved | |
} | tx |
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 |
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_int | clusterId |
cluster_type | the_type |
u_int32_t | cluster_id |
u_int32_t | recovered |
u_int32_t | object_type |
u_int32_t | object_id |
u_int32_t | lock_mask |
PF_RING kernel module header file.
This header file should NOT be included in PF_RING-based applications directly.
#define FAKE_PACKET |