47 #ifndef IP_PREFIX_SEARCH_H
48 #define IP_PREFIX_SEARCH_H
56 #define COLLECTORSLOTS 16
59 #define NETWORKSLOTS 16
64 typedef struct network {
74 typedef struct network_list {
int ipps_destroy(ipps_context_t *prefix_context)
ip_addr_t high_ip
High IP of interval.
ipps_interval_t * v4_prefix_intervals
Pointer to IPv4 intervals array.
ipps_interval_t * v6_prefix_intervals
Pointer to IPv6 intervals array.
uint32_t v6_count
Number of intervals in IPv6 array.
uint32_t data_cnt
Number of currently used data pointers in 'data_array'.
void * data
Pointer to same data.
int ipps_search(ip_addr_t *ip, ipps_context_t *prefix_context, void ***data)
size_t data_len
Number of bytes in 'data'.
ipps_context_t * ipps_init(ipps_network_list_t *networks)
uint32_t v4_count
Number of intervals in IPv4 array.
uint32_t net_count
Number of networks in 'networks' array.
ipps_network_t * networks
Pointer to networks array.
ip_addr_t low_ip
Low IP of interval.
size_t array_len
Allocated size of 'data_array' => total available slots.
uint32_t mask
Network mask, CIDR notation, use for indexing.
void ** data_array
Array of pointers to data.
ip_addr_t addr
Network IP address.
Structure to store both IPv4 and IPv6 addresses and associated functions.