Lines Matching refs:dest

88 	struct ip_vs_dest	*dest;		/* destination server */  member
100 struct ip_vs_dest *dest, bool check) in ip_vs_dest_set_insert() argument
106 if (e->dest == dest) in ip_vs_dest_set_insert()
115 ip_vs_dest_hold(dest); in ip_vs_dest_set_insert()
116 e->dest = dest; in ip_vs_dest_set_insert()
129 ip_vs_dest_put_and_free(e->dest); in ip_vs_lblcr_elem_rcu_free()
134 ip_vs_dest_set_erase(struct ip_vs_dest_set *set, struct ip_vs_dest *dest) in ip_vs_dest_set_erase() argument
139 if (e->dest == dest) { in ip_vs_dest_set_erase()
164 struct ip_vs_dest *dest, *least; in ip_vs_dest_set_min() local
169 least = e->dest; in ip_vs_dest_set_min()
184 dest = e->dest; in ip_vs_dest_set_min()
185 if (dest->flags & IP_VS_DEST_F_OVERLOAD) in ip_vs_dest_set_min()
188 doh = ip_vs_dest_conn_overhead(dest); in ip_vs_dest_set_min()
189 if (((__s64)loh * atomic_read(&dest->weight) > in ip_vs_dest_set_min()
191 && (dest->flags & IP_VS_DEST_F_AVAILABLE)) { in ip_vs_dest_set_min()
192 least = dest; in ip_vs_dest_set_min()
213 struct ip_vs_dest *dest, *most; in ip_vs_dest_set_max() local
221 most = e->dest; in ip_vs_dest_set_max()
232 dest = e->dest; in ip_vs_dest_set_max()
233 doh = ip_vs_dest_conn_overhead(dest); in ip_vs_dest_set_max()
235 if (((__s64)moh * atomic_read(&dest->weight) < in ip_vs_dest_set_max()
237 && (atomic_read(&dest->weight) > 0)) { in ip_vs_dest_set_max()
238 most = dest; in ip_vs_dest_set_max()
362 u16 af, struct ip_vs_dest *dest) in ip_vs_lblcr_new() argument
380 ip_vs_dest_set_insert(&en->set, dest, false); in ip_vs_lblcr_new()
386 ip_vs_dest_set_insert(&en->set, dest, true); in ip_vs_lblcr_new()
565 struct ip_vs_dest *dest, *least; in __ip_vs_lblcr_schedule() local
580 list_for_each_entry_rcu(dest, &svc->destinations, n_list) { in __ip_vs_lblcr_schedule()
581 if (dest->flags & IP_VS_DEST_F_OVERLOAD) in __ip_vs_lblcr_schedule()
584 if (atomic_read(&dest->weight) > 0) { in __ip_vs_lblcr_schedule()
585 least = dest; in __ip_vs_lblcr_schedule()
596 list_for_each_entry_continue_rcu(dest, &svc->destinations, n_list) { in __ip_vs_lblcr_schedule()
597 if (dest->flags & IP_VS_DEST_F_OVERLOAD) in __ip_vs_lblcr_schedule()
600 doh = ip_vs_dest_conn_overhead(dest); in __ip_vs_lblcr_schedule()
601 if ((__s64)loh * atomic_read(&dest->weight) > in __ip_vs_lblcr_schedule()
603 least = dest; in __ip_vs_lblcr_schedule()
625 is_overloaded(struct ip_vs_dest *dest, struct ip_vs_service *svc) in is_overloaded() argument
627 if (atomic_read(&dest->activeconns) > atomic_read(&dest->weight)) { in is_overloaded()
649 struct ip_vs_dest *dest; in ip_vs_lblcr_schedule() local
660 dest = ip_vs_dest_set_min(&en->set); in ip_vs_lblcr_schedule()
678 if (dest && !is_overloaded(dest, svc)) in ip_vs_lblcr_schedule()
682 dest = __ip_vs_lblcr_schedule(svc); in ip_vs_lblcr_schedule()
683 if (!dest) { in ip_vs_lblcr_schedule()
691 ip_vs_dest_set_insert(&en->set, dest, true); in ip_vs_lblcr_schedule()
697 dest = __ip_vs_lblcr_schedule(svc); in ip_vs_lblcr_schedule()
698 if (!dest) { in ip_vs_lblcr_schedule()
706 ip_vs_lblcr_new(tbl, &iph->daddr, svc->af, dest); in ip_vs_lblcr_schedule()
712 IP_VS_DBG_ADDR(dest->af, &dest->addr), ntohs(dest->port)); in ip_vs_lblcr_schedule()
714 return dest; in ip_vs_lblcr_schedule()