Lines Matching refs:lag
574 ifbond_activate_LAG(ifbond_ref bond, LAG_ref lag, int active_media);
577 ifbond_deactivate_LAG(ifbond_ref bond, LAG_ref lag);
586 LAG_get_aggregatable_port_count(LAG_ref lag, int * active_media);
623 bondport_matches_LAG(bondport_ref p, LAG_ref lag);
3519 LAG_ref lag = NULL; in ifbond_selection() local
3524 lag = ifbond_find_best_LAG(bond, &active_media); in ifbond_selection()
3525 if (lag != bond->ifb_active_lag) { in ifbond_selection()
3530 bond->ifb_active_lag = lag; in ifbond_selection()
3531 if (lag != NULL) { in ifbond_selection()
3532 ifbond_activate_LAG(bond, lag, active_media); in ifbond_selection()
3535 } else if (lag != NULL) { in ifbond_selection()
3536 if (lag->lag_active_media != active_media) { in ifbond_selection()
3539 link_speed(lag->lag_active_media), in ifbond_selection()
3542 ifbond_deactivate_LAG(bond, lag); in ifbond_selection()
3543 ifbond_activate_LAG(bond, lag, active_media); in ifbond_selection()
3547 if (lag != NULL) { in ifbond_selection()
3552 if (lag != NULL && p->po_lag == lag in ifbond_selection()
3559 if (lag->lag_selected_port_count < bond->ifb_max_active) { in ifbond_selection()
3592 LAG_ref lag; in ifbond_find_best_LAG() local
3603 TAILQ_FOREACH(lag, &bond->ifb_lag_list, lag_list) { in ifbond_find_best_LAG()
3608 if (lag == bond->ifb_active_lag) { in ifbond_find_best_LAG()
3612 count = LAG_get_aggregatable_port_count(lag, &active); in ifbond_find_best_LAG()
3626 best_lag = lag; in ifbond_find_best_LAG()
3637 ifbond_deactivate_LAG(__unused ifbond_ref bond, LAG_ref lag) in ifbond_deactivate_LAG() argument
3641 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) { in ifbond_deactivate_LAG()
3648 ifbond_activate_LAG(ifbond_ref bond, LAG_ref lag, int active_media) in ifbond_activate_LAG() argument
3656 lag->lag_active_media = active_media; in ifbond_activate_LAG()
3657 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) { in ifbond_activate_LAG()
3684 LAG_ref lag = bond->ifb_active_lag;
3687 if (bond->ifb_max_active <= 0 || lag == NULL) {
3690 if (lag->lag_selected_port_count > bond->ifb_max_active) {
3694 remove_count = lag->lag_selected_port_count - bond->ifb_max_active;
3695 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) {
3750 LAG_ref lag; in ifbond_get_LAG_matching_port() local
3752 TAILQ_FOREACH(lag, &bond->ifb_lag_list, lag_list) { in ifbond_get_LAG_matching_port()
3753 if (bcmp(&lag->lag_info, &p->po_partner_state.ps_lag_info, in ifbond_get_LAG_matching_port()
3754 sizeof(lag->lag_info)) == 0) { in ifbond_get_LAG_matching_port()
3755 return lag; in ifbond_get_LAG_matching_port()
3762 LAG_get_aggregatable_port_count(LAG_ref lag, int * active_media) in LAG_get_aggregatable_port_count() argument
3772 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) { in LAG_get_aggregatable_port_count()
3878 bondport_matches_LAG(bondport_ref p, LAG_ref lag) in bondport_matches_LAG() argument
3886 lag_li = &lag->lag_info; in bondport_matches_LAG()
3902 LAG_ref lag = p->po_lag; in bondport_remove_from_LAG() local
3904 if (lag == NULL) { in bondport_remove_from_LAG()
3907 TAILQ_REMOVE(&lag->lag_port_list, p, po_lag_port_list); in bondport_remove_from_LAG()
3912 lag->lag_info.li_system_priority, in bondport_remove_from_LAG()
3913 EA_LIST(&lag->lag_info.li_system), in bondport_remove_from_LAG()
3914 lag->lag_info.li_key); in bondport_remove_from_LAG()
3917 lag->lag_port_count--; in bondport_remove_from_LAG()
3918 if (lag->lag_port_count > 0) { in bondport_remove_from_LAG()
3919 return bond->ifb_active_lag == lag; in bondport_remove_from_LAG()
3925 lag->lag_info.li_system_priority, in bondport_remove_from_LAG()
3926 EA_LIST(&lag->lag_info.li_system), in bondport_remove_from_LAG()
3927 lag->lag_info.li_key); in bondport_remove_from_LAG()
3929 TAILQ_REMOVE(&bond->ifb_lag_list, lag, lag_list); in bondport_remove_from_LAG()
3930 if (bond->ifb_active_lag == lag) { in bondport_remove_from_LAG()
3934 kfree_type(struct LAG_s, lag); in bondport_remove_from_LAG()
3939 bondport_add_to_LAG(bondport_ref p, LAG_ref lag) in bondport_add_to_LAG() argument
3941 TAILQ_INSERT_TAIL(&lag->lag_port_list, p, po_lag_port_list); in bondport_add_to_LAG()
3942 p->po_lag = lag; in bondport_add_to_LAG()
3943 lag->lag_port_count++; in bondport_add_to_LAG()
3947 lag->lag_info.li_system_priority, in bondport_add_to_LAG()
3948 EA_LIST(&lag->lag_info.li_system), in bondport_add_to_LAG()
3949 lag->lag_info.li_key); in bondport_add_to_LAG()
3958 LAG_ref lag; in bondport_assign_to_LAG() local
3964 lag = p->po_lag; in bondport_assign_to_LAG()
3965 if (lag != NULL) { in bondport_assign_to_LAG()
3966 if (bondport_matches_LAG(p, lag)) { in bondport_assign_to_LAG()
3972 lag = ifbond_get_LAG_matching_port(bond, p); in bondport_assign_to_LAG()
3973 if (lag != NULL) { in bondport_assign_to_LAG()
3974 bondport_add_to_LAG(p, lag); in bondport_assign_to_LAG()
3977 lag = kalloc_type(struct LAG_s, Z_WAITOK); in bondport_assign_to_LAG()
3978 TAILQ_INIT(&lag->lag_port_list); in bondport_assign_to_LAG()
3979 lag->lag_port_count = 0; in bondport_assign_to_LAG()
3980 lag->lag_selected_port_count = 0; in bondport_assign_to_LAG()
3981 lag->lag_info = p->po_partner_state.ps_lag_info; in bondport_assign_to_LAG()
3982 TAILQ_INSERT_TAIL(&bond->ifb_lag_list, lag, lag_list); in bondport_assign_to_LAG()
3987 lag->lag_info.li_system_priority, in bondport_assign_to_LAG()
3988 EA_LIST(&lag->lag_info.li_system), in bondport_assign_to_LAG()
3989 lag->lag_info.li_key); in bondport_assign_to_LAG()
3991 bondport_add_to_LAG(p, lag); in bondport_assign_to_LAG()
4017 LAG_ref lag = p->po_lag; in bondport_set_selected() local
4020 if (lag != NULL && bond->ifb_active_lag == lag) { in bondport_set_selected()
4022 lag->lag_selected_port_count--; in bondport_set_selected()
4024 lag->lag_selected_port_count++; in bondport_set_selected()