10 #ifndef _IOTFIREWALL_NFQUEUE_
11 #define _IOTFIREWALL_NFQUEUE_
18 #include <netinet/in.h>
19 #include <linux/types.h>
20 #include <linux/netfilter.h>
23 #include <libnetfilter_queue/libnetfilter_queue.h>
27 #define DEFAULT_TIMEOUT 3600
36 pthread_mutex_t mutex;
37 uint8_t current_state;
51 uint8_t packet_counter_id;
52 uint8_t duration_counter_id;
67 typedef uint32_t
basic_callback(
int pkt_id, uint8_t *hash,
struct timeval timestamp,
int pkt_len, uint8_t *payload,
void *arg);
69 typedef uint32_t
basic_callback(
int pkt_id,
int pkt_len, uint8_t *payload,
void *arg);
131 bool is_timedout(
double threshold, time_t last_request);
void * nfqueue_thread(void *arg)
pthread wrapper for bind_queue.
Definition: nfqueue.c:209
bool is_timedout(double threshold, time_t last_request)
Check if the last request is too old to be accepted.
Definition: nfqueue.c:223
void bind_queue(uint16_t queue_num, basic_callback *callback, void *arg)
Definition: nfqueue.c:86
uint32_t basic_callback(int pkt_id, int pkt_len, uint8_t *payload, void *arg)
Alias for a basic callback function.
Definition: nfqueue.h:69
int get_pkt_id(struct nfq_data *nfad)
Definition: nfqueue.c:20
struct callback_struct callback_struct_t
Utilitaries for payload manipulation and display.
Interface to nftables counters.
Packet and duration counters ids.
Definition: nfqueue.h:50
Definition: rule_utils.h:44
Structure which stores the data relative to one policy interaction.
Definition: nfqueue.h:32
IP (v4 or v6) address.
Definition: packet_utils.h:37
Contains the necessary arguments for an nfqueue thread. The arguments are:
Definition: nfqueue.h:88