Lines Matching refs:lb_priv

30 struct lb_priv;
68 struct lb_priv { struct
75 static struct lb_priv *get_lb_priv(struct team *team) in get_lb_priv() argument
77 return (struct lb_priv *) &team->mode_priv; in get_lb_priv()
91 (lb_priv)->ex->tx_hash_to_port_mapping[hash].port
94 (lb_priv)->ex->tx_hash_to_port_mapping[hash].opt_inst_info
99 struct lb_priv *lb_priv = get_lb_priv(team); in lb_tx_hash_to_port_mapping_null_port() local
106 pm = &lb_priv->ex->tx_hash_to_port_mapping[i]; in lb_tx_hash_to_port_mapping_null_port()
130 struct lb_priv *lb_priv = get_lb_priv(team); in lb_htpm_select_tx_port() local
133 port = rcu_dereference_bh(LB_HTPM_PORT_BY_HASH(lb_priv, hash)); in lb_htpm_select_tx_port()
185 static unsigned int lb_get_skb_hash(struct lb_priv *lb_priv, in lb_get_skb_hash() argument
192 fp = rcu_dereference_bh(lb_priv->fp); in lb_get_skb_hash()
200 static void lb_update_tx_stats(unsigned int tx_bytes, struct lb_priv *lb_priv, in lb_update_tx_stats() argument
208 pcpu_stats = this_cpu_ptr(lb_priv->pcpu_stats); in lb_update_tx_stats()
219 struct lb_priv *lb_priv = get_lb_priv(team); in lb_transmit() local
225 hash = lb_get_skb_hash(lb_priv, skb); in lb_transmit()
226 select_tx_port_func = rcu_dereference_bh(lb_priv->select_tx_port_func); in lb_transmit()
232 lb_update_tx_stats(tx_bytes, lb_priv, get_lb_port_priv(port), hash); in lb_transmit()
242 struct lb_priv *lb_priv = get_lb_priv(team); in lb_bpf_func_get() local
244 if (!lb_priv->ex->orig_fprog) { in lb_bpf_func_get()
249 ctx->data.bin_val.len = lb_priv->ex->orig_fprog->len * in lb_bpf_func_get()
251 ctx->data.bin_val.ptr = lb_priv->ex->orig_fprog->filter; in lb_bpf_func_get()
283 struct lb_priv *lb_priv = get_lb_priv(team); in lb_bpf_func_set() local
301 if (lb_priv->ex->orig_fprog) { in lb_bpf_func_set()
303 __fprog_destroy(lb_priv->ex->orig_fprog); in lb_bpf_func_set()
304 orig_fp = rcu_dereference_protected(lb_priv->fp, in lb_bpf_func_set()
308 rcu_assign_pointer(lb_priv->fp, fp); in lb_bpf_func_set()
309 lb_priv->ex->orig_fprog = fprog; in lb_bpf_func_set()
320 struct lb_priv *lb_priv = get_lb_priv(team); in lb_bpf_func_free() local
323 if (!lb_priv->ex->orig_fprog) in lb_bpf_func_free()
326 __fprog_destroy(lb_priv->ex->orig_fprog); in lb_bpf_func_free()
327 fp = rcu_dereference_protected(lb_priv->fp, in lb_bpf_func_free()
334 struct lb_priv *lb_priv = get_lb_priv(team); in lb_tx_method_get() local
338 func = rcu_dereference_protected(lb_priv->select_tx_port_func, in lb_tx_method_get()
347 struct lb_priv *lb_priv = get_lb_priv(team); in lb_tx_method_set() local
353 rcu_assign_pointer(lb_priv->select_tx_port_func, func); in lb_tx_method_set()
360 struct lb_priv *lb_priv = get_lb_priv(team); in lb_tx_hash_to_port_mapping_init() local
363 LB_HTPM_OPT_INST_INFO_BY_HASH(lb_priv, hash) = info; in lb_tx_hash_to_port_mapping_init()
369 struct lb_priv *lb_priv = get_lb_priv(team); in lb_tx_hash_to_port_mapping_get() local
373 port = LB_HTPM_PORT_BY_HASH(lb_priv, hash); in lb_tx_hash_to_port_mapping_get()
380 struct lb_priv *lb_priv = get_lb_priv(team); in lb_tx_hash_to_port_mapping_set() local
387 rcu_assign_pointer(LB_HTPM_PORT_BY_HASH(lb_priv, hash), in lb_tx_hash_to_port_mapping_set()
398 struct lb_priv *lb_priv = get_lb_priv(team); in lb_hash_stats_init() local
401 lb_priv->ex->stats.info[hash].opt_inst_info = info; in lb_hash_stats_init()
406 struct lb_priv *lb_priv = get_lb_priv(team); in lb_hash_stats_get() local
409 ctx->data.bin_val.ptr = &lb_priv->ex->stats.info[hash].stats; in lb_hash_stats_get()
465 struct lb_priv *lb_priv; in lb_stats_refresh() local
479 lb_priv = get_lb_priv(team); in lb_stats_refresh()
487 s_info = &lb_priv->ex->stats.info[j]; in lb_stats_refresh()
490 pcpu_stats = per_cpu_ptr(lb_priv->pcpu_stats, i); in lb_stats_refresh()
504 pcpu_stats = per_cpu_ptr(lb_priv->pcpu_stats, i); in lb_stats_refresh()
524 struct lb_priv *lb_priv = get_lb_priv(team); in lb_stats_refresh_interval_get() local
526 ctx->data.u32_val = lb_priv->ex->stats.refresh_interval; in lb_stats_refresh_interval_get()
532 struct lb_priv *lb_priv = get_lb_priv(team); in lb_stats_refresh_interval_set() local
536 if (lb_priv->ex->stats.refresh_interval == interval) in lb_stats_refresh_interval_set()
538 lb_priv->ex->stats.refresh_interval = interval; in lb_stats_refresh_interval_set()
540 schedule_delayed_work(&lb_priv->ex->stats.refresh_dw, 0); in lb_stats_refresh_interval_set()
542 cancel_delayed_work(&lb_priv->ex->stats.refresh_dw); in lb_stats_refresh_interval_set()
591 struct lb_priv *lb_priv = get_lb_priv(team); in lb_init() local
598 rcu_assign_pointer(lb_priv->select_tx_port_func, func); in lb_init()
600 lb_priv->ex = kzalloc(sizeof(*lb_priv->ex), GFP_KERNEL); in lb_init()
601 if (!lb_priv->ex) in lb_init()
603 lb_priv->ex->team = team; in lb_init()
605 lb_priv->pcpu_stats = alloc_percpu(struct lb_pcpu_stats); in lb_init()
606 if (!lb_priv->pcpu_stats) { in lb_init()
613 team_lb_stats = per_cpu_ptr(lb_priv->pcpu_stats, i); in lb_init()
618 INIT_DELAYED_WORK(&lb_priv->ex->stats.refresh_dw, lb_stats_refresh); in lb_init()
626 free_percpu(lb_priv->pcpu_stats); in lb_init()
628 kfree(lb_priv->ex); in lb_init()
634 struct lb_priv *lb_priv = get_lb_priv(team); in lb_exit() local
639 cancel_delayed_work_sync(&lb_priv->ex->stats.refresh_dw); in lb_exit()
640 free_percpu(lb_priv->pcpu_stats); in lb_exit()
641 kfree(lb_priv->ex); in lb_exit()
679 .priv_size = sizeof(struct lb_priv),