Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netpfil/ipfw/ip_fw_table_algo.c
Show First 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | |||||
#include <sys/lock.h> | #include <sys/lock.h> | ||||
#include <sys/rwlock.h> | #include <sys/rwlock.h> | ||||
#include <sys/rmlock.h> | #include <sys/rmlock.h> | ||||
#include <sys/socket.h> | #include <sys/socket.h> | ||||
#include <sys/queue.h> | #include <sys/queue.h> | ||||
#include <net/if.h> /* ip_fw.h requires IFNAMSIZ */ | #include <net/if.h> /* ip_fw.h requires IFNAMSIZ */ | ||||
#include <net/radix.h> | #include <net/radix.h> | ||||
#include <net/route.h> | #include <net/route.h> | ||||
#include <net/route/nhop.h> | |||||
#include <net/route/route_var.h> | #include <net/route/route_var.h> | ||||
#include <netinet/in.h> | #include <netinet/in.h> | ||||
#include <netinet/in_fib.h> | #include <netinet/in_fib.h> | ||||
#include <netinet/ip_var.h> /* struct ipfw_rule_ref */ | #include <netinet/ip_var.h> /* struct ipfw_rule_ref */ | ||||
#include <netinet/ip_fw.h> | #include <netinet/ip_fw.h> | ||||
#include <netinet6/in6_fib.h> | #include <netinet6/in6_fib.h> | ||||
▲ Show 20 Lines • Show All 3,744 Lines • ▼ Show 20 Lines | static void ta_foreach_kfib(void *ta_state, struct table_info *ti, | ||||
ta_foreach_f *f, void *arg); | ta_foreach_f *f, void *arg); | ||||
static int | static int | ||||
ta_lookup_kfib(struct table_info *ti, void *key, uint32_t keylen, | ta_lookup_kfib(struct table_info *ti, void *key, uint32_t keylen, | ||||
uint32_t *val) | uint32_t *val) | ||||
{ | { | ||||
#ifdef INET | #ifdef INET | ||||
struct nhop4_basic nh4; | |||||
struct in_addr in; | struct in_addr in; | ||||
#endif | #endif | ||||
#ifdef INET6 | |||||
struct nhop6_basic nh6; | |||||
#endif | |||||
int error; | int error; | ||||
error = ENOENT; | error = ENOENT; | ||||
#ifdef INET | #ifdef INET | ||||
if (keylen == 4) { | if (keylen == 4) { | ||||
in.s_addr = *(in_addr_t *)key; | in.s_addr = *(in_addr_t *)key; | ||||
error = fib4_lookup_nh_basic(ti->data, | NET_EPOCH_ASSERT(); | ||||
in, 0, 0, &nh4); | error = fib4_lookup(ti->data, in, 0, NHR_NONE, 0) != NULL; | ||||
} | } | ||||
#endif | #endif | ||||
#ifdef INET6 | #ifdef INET6 | ||||
if (keylen == 6) | if (keylen == 6) | ||||
error = fib6_lookup_nh_basic(ti->data, | error = fib6_lookup(ti->data, (struct in6_addr *)key, | ||||
(struct in6_addr *)key, 0, 0, 0, &nh6); | 0, NHR_NONE, 0) != NULL; | ||||
#endif | #endif | ||||
if (error != 0) | if (error != 0) | ||||
return (0); | return (0); | ||||
*val = 0; | *val = 0; | ||||
return (1); | return (1); | ||||
▲ Show 20 Lines • Show All 272 Lines • Show Last 20 Lines |