table_info
typedef int (table_lookup_t)(struct table_info *ti, void *key, uint32_t keylen,
#define KIDX_TO_TI(ch, k) (&(((struct table_info *)(ch)->tablestate)[k]))
struct table_info ti, *tablestate;
tablestate = (struct table_info *)ch->tablestate;
struct table_info *ti;
tablestate = malloc(ntables * sizeof(struct table_info),
memcpy(tablestate, ch->tablestate, sizeof(struct table_info) * tbl);
ti = (struct table_info *)ch->tablestate;
struct table_info *ti;
struct table_info *ti;
struct table_info *ti;
struct table_info *ti;
struct table_info *ti;
struct table_info *ti;
memset(ti, 0, sizeof(struct table_info));
struct table_info *tinfo, struct tentry_info *tei, caddr_t ta_buf_m,
ch->tablestate = malloc(V_fw_tables_max * sizeof(struct table_info),
struct table_info *ti, uint32_t count)
struct table_info *kti;
struct table_info *ti, uint32_t count);
struct table_info ti_old, ti_new, *tablestate;
memset(&ti_new, 0, sizeof(struct table_info));
tablestate = (struct table_info *)ch->tablestate;
typedef void (ta_destroy)(void *ta_state, struct table_info *ti);
typedef int (ta_add)(void *ta_state, struct table_info *ti,
typedef int (ta_del)(void *ta_state, struct table_info *ti,
typedef int (ta_need_modify)(void *ta_state, struct table_info *ti,
typedef int (ta_fill_mod)(void *ta_state, struct table_info *ti,
typedef void (ta_modify)(void *ta_state, struct table_info *ti,
typedef void (ta_change_ti)(void *ta_state, struct table_info *ti);
typedef void (ta_print_config)(void *ta_state, struct table_info *ti, char *buf,
typedef void ta_foreach(void *ta_state, struct table_info *ti, ta_foreach_f *f,
typedef int ta_dump_tentry(void *ta_state, struct table_info *ti, void *e,
typedef int ta_find_tentry(void *ta_state, struct table_info *ti,
typedef void ta_dump_tinfo(void *ta_state, struct table_info *ti,
typedef uint32_t ta_get_count(void *ta_state, struct table_info *ti);
struct table_algo *ta, void *astate, struct table_info *ti);
struct table_info *ti, char *data, uint8_t tflags);
static void ta_modify_chash(void *ta_state, struct table_info *ti, void *ta_buf,
ta_lookup_chash_slow(struct table_info *ti, void *key, uint32_t keylen,
ta_lookup_chash_aligned(struct table_info *ti, void *key, uint32_t keylen,
ta_lookup_chash_64(struct table_info *ti, void *key, uint32_t keylen,
ta_print_chash_config(void *ta_state, struct table_info *ti, char *buf,
ta_init_chash(struct ip_fw_chain *ch, void **ta_state, struct table_info *ti,
ta_destroy_chash(void *ta_state, struct table_info *ti)
ta_dump_chash_tinfo(void *ta_state, struct table_info *ti, ipfw_ta_tinfo *tinfo)
ta_dump_chash_tentry(void *ta_state, struct table_info *ti, void *e,
ta_find_chash_tentry(void *ta_state, struct table_info *ti,
ta_foreach_chash(void *ta_state, struct table_info *ti, ta_foreach_f *f,
ta_add_chash(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_del_chash(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_need_modify_chash(void *ta_state, struct table_info *ti, uint32_t count,
ta_fill_mod_chash(void *ta_state, struct table_info *ti, void *ta_buf,
ta_modify_chash(void *ta_state, struct table_info *ti, void *ta_buf,
struct table_info *ti;
static struct ifidx * ifidx_find(struct table_info *ti, void *key);
static int ta_lookup_ifidx(struct table_info *ti, void *key, uint32_t keylen,
struct table_info *ti, char *data, uint8_t tflags);
static void ta_change_ti_ifidx(void *ta_state, struct table_info *ti);
static void ta_destroy_ifidx(void *ta_state, struct table_info *ti);
static void ta_dump_ifidx_tinfo(void *ta_state, struct table_info *ti,
static int ta_add_ifidx(void *ta_state, struct table_info *ti,
static int ta_del_ifidx(void *ta_state, struct table_info *ti,
static int ta_need_modify_ifidx(void *ta_state, struct table_info *ti,
static int ta_fill_mod_ifidx(void *ta_state, struct table_info *ti,
static void ta_modify_ifidx(void *ta_state, struct table_info *ti, void *ta_buf,
static int ta_dump_ifidx_tentry(void *ta_state, struct table_info *ti, void *e,
static int ta_find_ifidx_tentry(void *ta_state, struct table_info *ti,
static void ta_foreach_ifidx(void *ta_state, struct table_info *ti,
ifidx_find(struct table_info *ti, void *key)
ta_lookup_ifidx(struct table_info *ti, void *key, uint32_t keylen,
ta_init_ifidx(struct ip_fw_chain *ch, void **ta_state, struct table_info *ti,
ta_change_ti_ifidx(void *ta_state, struct table_info *ti)
ta_destroy_ifidx(void *ta_state, struct table_info *ti)
ta_dump_ifidx_tinfo(void *ta_state, struct table_info *ti, ipfw_ta_tinfo *tinfo)
ta_add_ifidx(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_del_ifidx(void *ta_state, struct table_info *ti, struct tentry_info *tei,
struct table_info *ti;
ta_need_modify_ifidx(void *ta_state, struct table_info *ti, uint32_t count,
ta_fill_mod_ifidx(void *ta_state, struct table_info *ti, void *ta_buf,
ta_modify_ifidx(void *ta_state, struct table_info *ti, void *ta_buf,
ta_dump_ifidx_tentry(void *ta_state, struct table_info *ti, void *e,
ta_find_ifidx_tentry(void *ta_state, struct table_info *ti,
ta_foreach_ifidx(void *ta_state, struct table_info *ti, ta_foreach_f *f,
static struct numarray *numarray_find(struct table_info *ti, void *key);
static int ta_lookup_numarray(struct table_info *ti, void *key,
struct table_info *ti, char *data, uint8_t tflags);
static void ta_destroy_numarray(void *ta_state, struct table_info *ti);
static void ta_dump_numarray_tinfo(void *ta_state, struct table_info *ti,
static int ta_add_numarray(void *ta_state, struct table_info *ti,
static int ta_del_numarray(void *ta_state, struct table_info *ti,
static int ta_need_modify_numarray(void *ta_state, struct table_info *ti,
static int ta_fill_mod_numarray(void *ta_state, struct table_info *ti,
static void ta_modify_numarray(void *ta_state, struct table_info *ti,
static int ta_dump_numarray_tentry(void *ta_state, struct table_info *ti,
static int ta_find_numarray_tentry(void *ta_state, struct table_info *ti,
static void ta_foreach_numarray(void *ta_state, struct table_info *ti,
numarray_find(struct table_info *ti, void *key)
ta_lookup_numarray(struct table_info *ti, void *key, uint32_t keylen,
ta_init_numarray(struct ip_fw_chain *ch, void **ta_state, struct table_info *ti,
ta_destroy_numarray(void *ta_state, struct table_info *ti)
ta_dump_numarray_tinfo(void *ta_state, struct table_info *ti, ipfw_ta_tinfo *tinfo)
ta_add_numarray(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_del_numarray(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_need_modify_numarray(void *ta_state, struct table_info *ti, uint32_t count,
ta_fill_mod_numarray(void *ta_state, struct table_info *ti, void *ta_buf,
ta_modify_numarray(void *ta_state, struct table_info *ti, void *ta_buf,
ta_dump_numarray_tentry(void *ta_state, struct table_info *ti, void *e,
ta_find_numarray_tentry(void *ta_state, struct table_info *ti,
ta_foreach_numarray(void *ta_state, struct table_info *ti, ta_foreach_f *f,
static int ta_lookup_fhash(struct table_info *ti, void *key, uint32_t keylen,
struct table_info *ti, char *data, uint8_t tflags);
static void ta_destroy_fhash(void *ta_state, struct table_info *ti);
static void ta_dump_fhash_tinfo(void *ta_state, struct table_info *ti,
static int ta_dump_fhash_tentry(void *ta_state, struct table_info *ti,
static int ta_find_fhash_tentry(void *ta_state, struct table_info *ti,
static void ta_foreach_fhash(void *ta_state, struct table_info *ti,
static int ta_add_fhash(void *ta_state, struct table_info *ti,
static int ta_del_fhash(void *ta_state, struct table_info *ti,
static int ta_need_modify_fhash(void *ta_state, struct table_info *ti,
static int ta_fill_mod_fhash(void *ta_state, struct table_info *ti,
static void ta_modify_fhash(void *ta_state, struct table_info *ti, void *ta_buf,
ta_lookup_fhash(struct table_info *ti, void *key, uint32_t keylen,
ta_init_fhash(struct ip_fw_chain *ch, void **ta_state, struct table_info *ti,
ta_destroy_fhash(void *ta_state, struct table_info *ti)
ta_dump_fhash_tinfo(void *ta_state, struct table_info *ti, ipfw_ta_tinfo *tinfo)
ta_dump_fhash_tentry(void *ta_state, struct table_info *ti, void *e,
ta_find_fhash_tentry(void *ta_state, struct table_info *ti,
ta_foreach_fhash(void *ta_state, struct table_info *ti, ta_foreach_f *f,
ta_add_fhash(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_del_fhash(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_need_modify_fhash(void *ta_state, struct table_info *ti, uint32_t count,
ta_fill_mod_fhash(void *ta_state, struct table_info *ti, void *ta_buf,
ta_modify_fhash(void *ta_state, struct table_info *ti, void *ta_buf,
static int ta_lookup_kfib(struct table_info *ti, void *key, uint32_t keylen,
static void ta_print_kfib_config(void *ta_state, struct table_info *ti,
struct table_info *ti, char *data, uint8_t tflags);
static void ta_destroy_kfib(void *ta_state, struct table_info *ti);
static void ta_dump_kfib_tinfo(void *ta_state, struct table_info *ti,
static int ta_dump_kfib_tentry(void *ta_state, struct table_info *ti, void *e,
static int ta_find_kfib_tentry(void *ta_state, struct table_info *ti,
static void ta_foreach_kfib(void *ta_state, struct table_info *ti,
ta_lookup_kfib(struct table_info *ti, void *key, uint32_t keylen,
static int ta_lookup_addr_radix(struct table_info *ti, void *key, uint32_t keylen,
ta_print_kfib_config(void *ta_state, struct table_info *ti, char *buf,
struct table_info *ti, char *data, uint8_t tflags);
ta_init_kfib(struct ip_fw_chain *ch, void **ta_state, struct table_info *ti,
static void ta_destroy_addr_radix(void *ta_state, struct table_info *ti);
static void ta_dump_addr_radix_tinfo(void *ta_state, struct table_info *ti,
ta_destroy_kfib(void *ta_state, struct table_info *ti)
ta_dump_kfib_tinfo(void *ta_state, struct table_info *ti, ipfw_ta_tinfo *tinfo)
static int ta_dump_addr_radix_tentry(void *ta_state, struct table_info *ti,
static int ta_find_addr_radix_tentry(void *ta_state, struct table_info *ti,
ta_find_kfib_tentry(void *ta_state, struct table_info *ti,
static void ta_foreach_addr_radix(void *ta_state, struct table_info *ti,
ta_dump_kfib_tentry(void *ta_state, struct table_info *ti, void *e,
ta_foreach_kfib(void *ta_state, struct table_info *ti, ta_foreach_f *f,
static int ta_add_addr_radix(void *ta_state, struct table_info *ti,
ta_lookup_mac_radix(struct table_info *ti, void *key, uint32_t keylen,
static int ta_del_addr_radix(void *ta_state, struct table_info *ti,
ta_init_mac_radix(struct ip_fw_chain *ch, void **ta_state, struct table_info *ti,
ta_destroy_mac_radix(void *ta_state, struct table_info *ti)
static int ta_need_modify_radix(void *ta_state, struct table_info *ti,
ta_lookup_addr_radix(struct table_info *ti, void *key, uint32_t keylen,
ta_add_mac_radix(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_del_mac_radix(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_foreach_mac_radix(void *ta_state, struct table_info *ti, ta_foreach_f *f,
ta_dump_mac_radix_tinfo(void *ta_state, struct table_info *ti, ipfw_ta_tinfo *tinfo)
ta_dump_mac_radix_tentry(void *ta_state, struct table_info *ti, void *e,
ta_find_mac_radix_tentry(void *ta_state, struct table_info *ti,
ta_init_addr_radix(struct ip_fw_chain *ch, void **ta_state, struct table_info *ti,
ta_destroy_addr_radix(void *ta_state, struct table_info *ti)
ta_dump_addr_radix_tinfo(void *ta_state, struct table_info *ti, ipfw_ta_tinfo *tinfo)
ta_dump_addr_radix_tentry(void *ta_state, struct table_info *ti, void *e,
ta_find_addr_radix_tentry(void *ta_state, struct table_info *ti,
ta_foreach_addr_radix(void *ta_state, struct table_info *ti, ta_foreach_f *f,
ta_add_addr_radix(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_del_addr_radix(void *ta_state, struct table_info *ti, struct tentry_info *tei,
ta_need_modify_radix(void *ta_state, struct table_info *ti, uint32_t count,
static int ta_lookup_chash_slow(struct table_info *ti, void *key, uint32_t keylen,
static int ta_lookup_chash_aligned(struct table_info *ti, void *key,
static int ta_lookup_chash_64(struct table_info *ti, void *key, uint32_t keylen,
static void ta_print_chash_config(void *ta_state, struct table_info *ti,
struct table_info *ti, char *data, uint8_t tflags);
static void ta_destroy_chash(void *ta_state, struct table_info *ti);
static void ta_dump_chash_tinfo(void *ta_state, struct table_info *ti,
static int ta_dump_chash_tentry(void *ta_state, struct table_info *ti,
static int ta_find_chash_tentry(void *ta_state, struct table_info *ti,
static void ta_foreach_chash(void *ta_state, struct table_info *ti,
static int ta_add_chash(void *ta_state, struct table_info *ti,
static int ta_del_chash(void *ta_state, struct table_info *ti,
static int ta_need_modify_chash(void *ta_state, struct table_info *ti,
static int ta_fill_mod_chash(void *ta_state, struct table_info *ti, void *ta_buf,
struct table_info *ti;
struct table_algo *ta, void *astate, struct table_info *ti)
msixcap->table_info = barnum & PCIM_MSIX_BIR_MASK;
uint32_t table_info; /* bar index and offset within it */
msixcap.table_info & PCIM_MSIX_BIR_MASK;
msixcap.table_info & ~PCIM_MSIX_BIR_MASK;