21 #include <sys/types.h> 27 typedef void pfring_ft_table;
28 typedef void pfring_ft_list;
29 typedef void pfring_ft_flow;
31 struct ndpi_detection_module_struct;
36 PFRING_FT_ACTION_DEFAULT = 0,
37 PFRING_FT_ACTION_FORWARD,
38 PFRING_FT_ACTION_DISCARD
49 typedef u_int32_t pfring_ft_in4_addr;
53 u_int8_t u6_addr8[16];
54 u_int16_t u6_addr16[8];
55 u_int32_t u6_addr32[4];
61 u_int8_t ihl:4, version:4;
75 u_int32_t ip6_un1_flow;
76 u_int16_t ip6_un1_plen;
78 u_int8_t ip6_un1_hlim;
79 pfring_ft_in6_addr ip6_src;
80 pfring_ft_in6_addr ip6_dst;
89 u_int16_t res1:4, doff:4, fin:1, syn:1, rst:1, psh:1, ack:1, urg:1, ece:1, cwr:1;
119 pfring_ft_direction direction;
123 u_int16_t payload_len;
126 pfring_ft_iphdr *ip4;
127 pfring_ft_ipv6hdr *ip6;
130 pfring_ft_tcphdr *tcp;
131 pfring_ft_udphdr *udp;
133 const u_char *payload;
139 pfring_ft_in4_addr v4;
140 pfring_ft_in6_addr v6;
163 struct timeval first;
166 } direction[NUM_DIRECTIONS];
184 (*pfring_ft_export_list_func) (
185 pfring_ft_list *flows_list,
190 (*pfring_ft_export_flow_func) (
191 pfring_ft_flow *flow,
196 (*pfring_ft_flow_packet_func) (
199 pfring_ft_flow *flow,
203 #define PFRING_FT_TABLE_FLAGS_DPI (1 << 0) 216 u_int32_t flow_timeout
225 pfring_ft_table *table
236 pfring_ft_table *table,
237 pfring_ft_export_flow_func callback,
249 pfring_ft_table *table,
250 pfring_ft_flow_packet_func callback,
263 pfring_ft_table *table,
264 pfring_ft_export_flow_func callback,
279 pfring_ft_table *table,
280 pfring_ft_export_list_func callback,
295 pfring_ft_table *table,
296 const u_char *packet,
310 pfring_ft_table *table,
320 pfring_ft_table *table
360 pfring_ft_flow *flow,
361 pfring_ft_action action
381 pfring_ft_table *table,
393 pfring_ft_table *table,
394 const char *protocol_name,
406 pfring_ft_table *table,
407 const char *protocol_name,
408 pfring_ft_action action
421 pfring_ft_table *table,
436 pfring_ft_table *table,
437 struct ndpi_detection_module_struct *ndpi
448 pfring_ft_table *table,
459 pfring_ft_table *table
481 time_t *license_expiration,
482 time_t *maintenance_expiration
u_int64_t pkts
Definition: pfring_ft.h:161
void * user
Definition: pfring_ft.h:168
Definition: pfring_ft.h:112
u_int16_t app_protocol
Definition: pfring_ft.h:145
Definition: pfring_ft.h:138
void pfring_ft_set_flow_list_export_callback(pfring_ft_table *table, pfring_ft_export_list_func callback, void *user)
u_int64_t max_lookup_depth
Definition: pfring_ft.h:178
u_int64_t bytes
Definition: pfring_ft.h:162
Definition: pfring_ft.h:159
Definition: pfring_ft.h:149
void pfring_ft_flow_set_action(pfring_ft_flow *flow, pfring_ft_action action)
void pfring_ft_set_flow_packet_callback(pfring_ft_table *table, pfring_ft_flow_packet_func callback, void *user)
void pfring_ft_destroy_table(pfring_ft_table *table)
pfring_ft_ndpi_protocol l7_protocol
Definition: pfring_ft.h:167
u_int16_t dport
Definition: pfring_ft.h:155
Definition: pf_ring.h:259
pfring_ft_flow * pfring_ft_list_get_next(pfring_ft_list *list)
u_int32_t caplen
Definition: pfring_ft.h:108
void pfring_ft_set_new_flow_callback(pfring_ft_table *table, pfring_ft_export_flow_func callback, void *user)
int pfring_ft_license(char *system_id, time_t *license_expiration, time_t *maintenance_expiration)
int pfring_ft_load_ndpi_categories(pfring_ft_table *table, const char *path)
u_int64_t flows
Definition: pfring_ft.h:174
char * pfring_ft_l7_protocol_name(pfring_ft_table *table, pfring_ft_ndpi_protocol *protocol, char *buffer, int buffer_len)
pfring_ft_stats * pfring_ft_get_stats(pfring_ft_table *table)
u_int16_t vlan_id
Definition: pfring_ft.h:156
u_int64_t disc_no_ip
Definition: pfring_ft.h:177
void pfring_ft_set_flow_export_callback(pfring_ft_table *table, pfring_ft_export_flow_func callback, void *user)
Definition: pfring_ft.h:173
int pfring_ft_housekeeping(pfring_ft_table *table, u_int32_t epoch)
u_int8_t ip_version
Definition: pfring_ft.h:152
pfring_ft_ip_address saddr
Definition: pfring_ft.h:150
void pfring_ft_debug(void)
u_int8_t protocol
Definition: pfring_ft.h:153
pfring_ft_flow_value * pfring_ft_flow_get_value(pfring_ft_flow *flow)
void pfring_ft_set_filter_protocol_by_name(pfring_ft_table *table, const char *protocol_name, pfring_ft_action action)
Definition: pfring_ft.h:43
pfring_ft_ip_address daddr
Definition: pfring_ft.h:151
pfring_ft_flow_key * pfring_ft_flow_get_key(pfring_ft_flow *flow)
void pfring_ft_flush(pfring_ft_table *table)
int pfring_ft_set_ndpi_handle(pfring_ft_table *table, struct ndpi_detection_module_struct *ndpi)
u_int16_t master_protocol
Definition: pfring_ft.h:144
Definition: pfring_ft.h:143
Definition: pfring_ft.h:42
Definition: pfring_ft.h:106
void pfring_ft_flow_free(pfring_ft_flow *flow)
pfring_ft_direction
Definition: pfring_ft.h:41
u_int64_t err_no_room
Definition: pfring_ft.h:175
pfring_ft_action pfring_ft_process(pfring_ft_table *table, const u_char *packet, const pfring_ft_pcap_pkthdr *header, const pfring_ft_ext_pkthdr *ext_header)
u_int16_t sport
Definition: pfring_ft.h:154
pfring_ft_table * pfring_ft_create_table(u_int32_t flags, u_int32_t max_flows, u_int32_t flow_timeout)
void pfring_ft_version(char *version)
void pfring_ft_load_configuration(pfring_ft_table *table, const char *path)
void pfring_ft_set_shunt_protocol_by_name(pfring_ft_table *table, const char *protocol_name, u_int8_t packets)
u_int64_t err_no_mem
Definition: pfring_ft.h:176
u_int32_t len
Definition: pfring_ft.h:109
u_int32_t hash
Definition: pfring_ft.h:113
u_int8_t tcp_flags
Definition: pfring_ft.h:165