nh_res_table
const struct nh_notifier_res_table_info *nh_res_table,
if (nh_res_table->num_nh_buckets < 32) {
if (nh_res_table->num_nh_buckets >= size_range->start &&
nh_res_table->num_nh_buckets <= size_range->end) {
nh_res_table->num_nh_buckets,
if (err || nh_res_table->num_nh_buckets != alloc_size) {
const struct nh_notifier_res_table_info *nh_res_table,
nh_res_table,
for (i = 0; i < nh_res_table->num_nh_buckets; i++) {
nh = &nh_res_table->nhs[i];
info->nh_res_table,
nhs = info->nh_res_table->num_nh_buckets;
hw_stats = info->nh_res_table->hw_stats;
nh_obj = &info->nh_res_table->nhs[i];
occ = info->nh_res_table->num_nh_buckets;
struct nh_res_table __rcu *res_table;
struct nh_notifier_res_table_info *nh_res_table;
nh_res_bucket_idle_point(const struct nh_res_table *res_table,
nh_res_table_unb_point(const struct nh_res_table *res_table)
static void nh_res_bucket_set_idle(const struct nh_res_table *res_table,
static void nexthop_bucket_notify(struct nh_res_table *res_table,
struct nh_res_table *res_table = rcu_dereference(nhg->res_table);
struct nh_res_table *res_table = rtnl_dereference(nhg->res_table);
size = struct_size(info->nh_res_table, nhs, num_nh_buckets);
static bool nh_res_table_is_balanced(const struct nh_res_table *res_table)
info->nh_res_table = __vmalloc(size, GFP_KERNEL | __GFP_ZERO |
static bool nh_res_bucket_should_migrate(struct nh_res_table *res_table,
if (!info->nh_res_table)
info->nh_res_table->num_nh_buckets = num_nh_buckets;
info->nh_res_table->hw_stats = nhg->hw_stats;
static bool nh_res_bucket_migrate(struct nh_res_table *res_table,
static void nh_res_table_upkeep(struct nh_res_table *res_table,
__nh_notifier_single_info_init(&info->nh_res_table->nhs[i],
struct nh_res_table *res_table;
res_table = container_of(dw, struct nh_res_table, upkeep_dw);
static void nh_res_table_cancel_upkeep(struct nh_res_table *res_table)
struct nh_res_table *res_table)
static void nh_res_table_migrate_buckets(struct nh_res_table *res_table,
struct nh_res_table *old_res_table = rtnl_dereference(oldg->res_table);
struct nh_res_table *res_table;
vfree(info->nh_res_table);
struct nh_res_table *tmp_table = NULL;
struct nh_res_table *new_res_table;
struct nh_res_table *old_res_table;
struct nh_res_table *res_table,
struct nh_res_table *res_table;
struct nh_res_table *res_table;
struct nh_res_table *res_table;
struct nh_res_table *res_table;
struct nh_res_table *res_table;
struct nh_res_table *res_table;
struct nh_res_table *res_table;
struct nh_res_table *res_table;
static struct nh_res_table *
struct nh_res_table *res_table;
static clock_t nh_res_table_unbalanced_time(struct nh_res_table *res_table)
struct nh_res_table *res_table = rtnl_dereference(nhg->res_table);