Lines Matching refs:lag

620 ifbond_activate_LAG(ifbond_ref bond, LAG_ref lag, int active_media);
623 ifbond_deactivate_LAG(ifbond_ref bond, LAG_ref lag);
632 LAG_get_aggregatable_port_count(LAG_ref lag, int * active_media);
669 bondport_matches_LAG(bondport_ref p, LAG_ref lag);
3511 LAG_ref lag = NULL; in ifbond_selection() local
3516 lag = ifbond_find_best_LAG(bond, &active_media); in ifbond_selection()
3517 if (lag != bond->ifb_active_lag) { in ifbond_selection()
3522 bond->ifb_active_lag = lag; in ifbond_selection()
3523 if (lag != NULL) { in ifbond_selection()
3524 ifbond_activate_LAG(bond, lag, active_media); in ifbond_selection()
3527 } else if (lag != NULL) { in ifbond_selection()
3528 if (lag->lag_active_media != active_media) { in ifbond_selection()
3531 link_speed(lag->lag_active_media), in ifbond_selection()
3533 ifbond_deactivate_LAG(bond, lag); in ifbond_selection()
3534 ifbond_activate_LAG(bond, lag, active_media); in ifbond_selection()
3538 if (lag != NULL) { in ifbond_selection()
3543 if (lag != NULL && p->po_lag == lag in ifbond_selection()
3550 if (lag->lag_selected_port_count < bond->ifb_max_active) { in ifbond_selection()
3583 LAG_ref lag; in ifbond_find_best_LAG() local
3594 TAILQ_FOREACH(lag, &bond->ifb_lag_list, lag_list) { in ifbond_find_best_LAG()
3599 if (lag == bond->ifb_active_lag) { in ifbond_find_best_LAG()
3603 count = LAG_get_aggregatable_port_count(lag, &active); in ifbond_find_best_LAG()
3617 best_lag = lag; in ifbond_find_best_LAG()
3628 ifbond_deactivate_LAG(__unused ifbond_ref bond, LAG_ref lag) in ifbond_deactivate_LAG() argument
3632 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) { in ifbond_deactivate_LAG()
3639 ifbond_activate_LAG(ifbond_ref bond, LAG_ref lag, int active_media) in ifbond_activate_LAG() argument
3647 lag->lag_active_media = active_media; in ifbond_activate_LAG()
3648 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) { in ifbond_activate_LAG()
3675 LAG_ref lag = bond->ifb_active_lag;
3678 if (bond->ifb_max_active <= 0 || lag == NULL) {
3681 if (lag->lag_selected_port_count > bond->ifb_max_active) {
3685 remove_count = lag->lag_selected_port_count - bond->ifb_max_active;
3686 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) {
3741 LAG_ref lag; in ifbond_get_LAG_matching_port() local
3743 TAILQ_FOREACH(lag, &bond->ifb_lag_list, lag_list) { in ifbond_get_LAG_matching_port()
3744 if (bcmp(&lag->lag_info, &p->po_partner_state.ps_lag_info, in ifbond_get_LAG_matching_port()
3745 sizeof(lag->lag_info)) == 0) { in ifbond_get_LAG_matching_port()
3746 return lag; in ifbond_get_LAG_matching_port()
3753 LAG_get_aggregatable_port_count(LAG_ref lag, int * active_media) in LAG_get_aggregatable_port_count() argument
3763 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) { in LAG_get_aggregatable_port_count()
3868 bondport_matches_LAG(bondport_ref p, LAG_ref lag) in bondport_matches_LAG() argument
3876 lag_li = &lag->lag_info; in bondport_matches_LAG()
3892 LAG_ref lag = p->po_lag; in bondport_remove_from_LAG() local
3894 if (lag == NULL) { in bondport_remove_from_LAG()
3897 TAILQ_REMOVE(&lag->lag_port_list, p, po_lag_port_list); in bondport_remove_from_LAG()
3900 bondport_get_name(p), lag->lag_info.li_system_priority, in bondport_remove_from_LAG()
3901 EA_LIST(&lag->lag_info.li_system), lag->lag_info.li_key); in bondport_remove_from_LAG()
3903 lag->lag_port_count--; in bondport_remove_from_LAG()
3904 if (lag->lag_port_count > 0) { in bondport_remove_from_LAG()
3905 return bond->ifb_active_lag == lag; in bondport_remove_from_LAG()
3910 lag->lag_info.li_system_priority, in bondport_remove_from_LAG()
3911 EA_LIST(&lag->lag_info.li_system), in bondport_remove_from_LAG()
3912 lag->lag_info.li_key); in bondport_remove_from_LAG()
3913 TAILQ_REMOVE(&bond->ifb_lag_list, lag, lag_list); in bondport_remove_from_LAG()
3914 if (bond->ifb_active_lag == lag) { in bondport_remove_from_LAG()
3918 kfree_type(struct LAG_s, lag); in bondport_remove_from_LAG()
3923 bondport_add_to_LAG(bondport_ref p, LAG_ref lag) in bondport_add_to_LAG() argument
3925 TAILQ_INSERT_TAIL(&lag->lag_port_list, p, po_lag_port_list); in bondport_add_to_LAG()
3926 p->po_lag = lag; in bondport_add_to_LAG()
3927 lag->lag_port_count++; in bondport_add_to_LAG()
3931 lag->lag_info.li_system_priority, in bondport_add_to_LAG()
3932 EA_LIST(&lag->lag_info.li_system), in bondport_add_to_LAG()
3933 lag->lag_info.li_key); in bondport_add_to_LAG()
3941 LAG_ref lag; in bondport_assign_to_LAG() local
3947 lag = p->po_lag; in bondport_assign_to_LAG()
3948 if (lag != NULL) { in bondport_assign_to_LAG()
3949 if (bondport_matches_LAG(p, lag)) { in bondport_assign_to_LAG()
3955 lag = ifbond_get_LAG_matching_port(bond, p); in bondport_assign_to_LAG()
3956 if (lag != NULL) { in bondport_assign_to_LAG()
3957 bondport_add_to_LAG(p, lag); in bondport_assign_to_LAG()
3960 lag = kalloc_type(struct LAG_s, Z_WAITOK); in bondport_assign_to_LAG()
3961 TAILQ_INIT(&lag->lag_port_list); in bondport_assign_to_LAG()
3962 lag->lag_port_count = 0; in bondport_assign_to_LAG()
3963 lag->lag_selected_port_count = 0; in bondport_assign_to_LAG()
3964 lag->lag_info = p->po_partner_state.ps_lag_info; in bondport_assign_to_LAG()
3965 TAILQ_INSERT_TAIL(&bond->ifb_lag_list, lag, lag_list); in bondport_assign_to_LAG()
3968 bond->ifb_key, lag->lag_info.li_system_priority, in bondport_assign_to_LAG()
3969 EA_LIST(&lag->lag_info.li_system), lag->lag_info.li_key); in bondport_assign_to_LAG()
3970 bondport_add_to_LAG(p, lag); in bondport_assign_to_LAG()
3996 LAG_ref lag = p->po_lag; in bondport_set_selected() local
3999 if (lag != NULL && bond->ifb_active_lag == lag) { in bondport_set_selected()
4001 lag->lag_selected_port_count--; in bondport_set_selected()
4003 lag->lag_selected_port_count++; in bondport_set_selected()