Lines Matching refs:nhge

79 		struct nh_grp_entry *nhge = &nhg->nh_entries[i];
81 WARN_ON(!list_empty(&nhge->nh_list));
82 nexthop_put(nhge->nh);
554 struct nh_grp_entry *nhge = &nhg->nh_entries[i];
557 if (hash > atomic_read(&nhge->upper_bound))
560 nhi = rcu_dereference(nhge->nh->nh_info);
562 return nhge->nh;
570 return nhge->nh;
574 return nhge->nh;
579 rc = nhge->nh;
599 struct nh_grp_entry *nhge = &nhg->nh_entries[i];
601 nhi = rcu_dereference_rtnl(nhge->nh->nh_info);
772 struct nh_grp_entry *nhge = &nhg->nh_entries[i];
775 w += nhge->weight;
777 atomic_set(&nhge->upper_bound, upper_bound);
781 static void remove_nh_grp_entry(struct net *net, struct nh_grp_entry *nhge,
785 struct nexthop *nhp = nhge->nh_parent;
786 struct nexthop *nh = nhge->nh;
833 list_del(&nhge->nh_list);
834 nexthop_put(nhge->nh);
843 struct nh_grp_entry *nhge, *tmp;
845 list_for_each_entry_safe(nhge, tmp, &nh->grp_list, nh_list)
846 remove_nh_grp_entry(net, nhge, nlinfo);
858 struct nh_grp_entry *nhge = &nhg->nh_entries[i];
860 if (WARN_ON(!nhge->nh))
863 list_del_init(&nhge->nh_list);
952 struct nh_grp_entry *nhge = &nhg->nh_entries[i];
953 struct nh_info *nhi = rtnl_dereference(nhge->nh->nh_info);
1033 struct nh_grp_entry *nhge;
1035 list_for_each_entry(nhge, &old->grp_list, nh_list) {
1036 struct nexthop *nhp = nhge->nh_parent;
1079 struct nh_grp_entry *nhge;
1083 list_for_each_entry(nhge, &nh->grp_list, nh_list)
1084 __nexthop_replace_notify(net, nhge->nh_parent, info);
1091 struct nh_grp_entry *nhge;
1111 list_for_each_entry(nhge, &old->grp_list, nh_list) {
1116 nexthop_num_path(nhge->nh_parent) > 1) {
1121 err = fib_check_nh_list(nhge->nh_parent, new, extack);
1125 err = fib6_check_nh_list(nhge->nh_parent, new, extack);