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);
3513 LAG_ref lag = NULL; in ifbond_selection() local
3518 lag = ifbond_find_best_LAG(bond, &active_media); in ifbond_selection()
3519 if (lag != bond->ifb_active_lag) { in ifbond_selection()
3524 bond->ifb_active_lag = lag; in ifbond_selection()
3525 if (lag != NULL) { in ifbond_selection()
3526 ifbond_activate_LAG(bond, lag, active_media); in ifbond_selection()
3529 } else if (lag != NULL) { in ifbond_selection()
3530 if (lag->lag_active_media != active_media) { in ifbond_selection()
3533 link_speed(lag->lag_active_media), in ifbond_selection()
3536 ifbond_deactivate_LAG(bond, lag); in ifbond_selection()
3537 ifbond_activate_LAG(bond, lag, active_media); in ifbond_selection()
3541 if (lag != NULL) { in ifbond_selection()
3546 if (lag != NULL && p->po_lag == lag in ifbond_selection()
3553 if (lag->lag_selected_port_count < bond->ifb_max_active) { in ifbond_selection()
3586 LAG_ref lag; in ifbond_find_best_LAG() local
3597 TAILQ_FOREACH(lag, &bond->ifb_lag_list, lag_list) { in ifbond_find_best_LAG()
3602 if (lag == bond->ifb_active_lag) { in ifbond_find_best_LAG()
3606 count = LAG_get_aggregatable_port_count(lag, &active); in ifbond_find_best_LAG()
3620 best_lag = lag; in ifbond_find_best_LAG()
3631 ifbond_deactivate_LAG(__unused ifbond_ref bond, LAG_ref lag) in ifbond_deactivate_LAG() argument
3635 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) { in ifbond_deactivate_LAG()
3642 ifbond_activate_LAG(ifbond_ref bond, LAG_ref lag, int active_media) in ifbond_activate_LAG() argument
3650 lag->lag_active_media = active_media; in ifbond_activate_LAG()
3651 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) { in ifbond_activate_LAG()
3678 LAG_ref lag = bond->ifb_active_lag;
3681 if (bond->ifb_max_active <= 0 || lag == NULL) {
3684 if (lag->lag_selected_port_count > bond->ifb_max_active) {
3688 remove_count = lag->lag_selected_port_count - bond->ifb_max_active;
3689 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) {
3744 LAG_ref lag; in ifbond_get_LAG_matching_port() local
3746 TAILQ_FOREACH(lag, &bond->ifb_lag_list, lag_list) { in ifbond_get_LAG_matching_port()
3747 if (bcmp(&lag->lag_info, &p->po_partner_state.ps_lag_info, in ifbond_get_LAG_matching_port()
3748 sizeof(lag->lag_info)) == 0) { in ifbond_get_LAG_matching_port()
3749 return lag; in ifbond_get_LAG_matching_port()
3756 LAG_get_aggregatable_port_count(LAG_ref lag, int * active_media) in LAG_get_aggregatable_port_count() argument
3766 TAILQ_FOREACH(p, &lag->lag_port_list, po_lag_port_list) { in LAG_get_aggregatable_port_count()
3872 bondport_matches_LAG(bondport_ref p, LAG_ref lag) in bondport_matches_LAG() argument
3880 lag_li = &lag->lag_info; in bondport_matches_LAG()
3896 LAG_ref lag = p->po_lag; in bondport_remove_from_LAG() local
3898 if (lag == NULL) { in bondport_remove_from_LAG()
3901 TAILQ_REMOVE(&lag->lag_port_list, p, po_lag_port_list); in bondport_remove_from_LAG()
3906 lag->lag_info.li_system_priority, in bondport_remove_from_LAG()
3907 EA_LIST(&lag->lag_info.li_system), in bondport_remove_from_LAG()
3908 lag->lag_info.li_key); in bondport_remove_from_LAG()
3911 lag->lag_port_count--; in bondport_remove_from_LAG()
3912 if (lag->lag_port_count > 0) { in bondport_remove_from_LAG()
3913 return bond->ifb_active_lag == lag; in bondport_remove_from_LAG()
3919 lag->lag_info.li_system_priority, in bondport_remove_from_LAG()
3920 EA_LIST(&lag->lag_info.li_system), in bondport_remove_from_LAG()
3921 lag->lag_info.li_key); in bondport_remove_from_LAG()
3923 TAILQ_REMOVE(&bond->ifb_lag_list, lag, lag_list); in bondport_remove_from_LAG()
3924 if (bond->ifb_active_lag == lag) { in bondport_remove_from_LAG()
3928 kfree_type(struct LAG_s, lag); in bondport_remove_from_LAG()
3933 bondport_add_to_LAG(bondport_ref p, LAG_ref lag) in bondport_add_to_LAG() argument
3935 TAILQ_INSERT_TAIL(&lag->lag_port_list, p, po_lag_port_list); in bondport_add_to_LAG()
3936 p->po_lag = lag; in bondport_add_to_LAG()
3937 lag->lag_port_count++; in bondport_add_to_LAG()
3941 lag->lag_info.li_system_priority, in bondport_add_to_LAG()
3942 EA_LIST(&lag->lag_info.li_system), in bondport_add_to_LAG()
3943 lag->lag_info.li_key); in bondport_add_to_LAG()
3952 LAG_ref lag; in bondport_assign_to_LAG() local
3958 lag = p->po_lag; in bondport_assign_to_LAG()
3959 if (lag != NULL) { in bondport_assign_to_LAG()
3960 if (bondport_matches_LAG(p, lag)) { in bondport_assign_to_LAG()
3966 lag = ifbond_get_LAG_matching_port(bond, p); in bondport_assign_to_LAG()
3967 if (lag != NULL) { in bondport_assign_to_LAG()
3968 bondport_add_to_LAG(p, lag); in bondport_assign_to_LAG()
3971 lag = kalloc_type(struct LAG_s, Z_WAITOK); in bondport_assign_to_LAG()
3972 TAILQ_INIT(&lag->lag_port_list); in bondport_assign_to_LAG()
3973 lag->lag_port_count = 0; in bondport_assign_to_LAG()
3974 lag->lag_selected_port_count = 0; in bondport_assign_to_LAG()
3975 lag->lag_info = p->po_partner_state.ps_lag_info; in bondport_assign_to_LAG()
3976 TAILQ_INSERT_TAIL(&bond->ifb_lag_list, lag, lag_list); in bondport_assign_to_LAG()
3981 lag->lag_info.li_system_priority, in bondport_assign_to_LAG()
3982 EA_LIST(&lag->lag_info.li_system), in bondport_assign_to_LAG()
3983 lag->lag_info.li_key); in bondport_assign_to_LAG()
3985 bondport_add_to_LAG(p, lag); in bondport_assign_to_LAG()
4011 LAG_ref lag = p->po_lag; in bondport_set_selected() local
4014 if (lag != NULL && bond->ifb_active_lag == lag) { in bondport_set_selected()
4016 lag->lag_selected_port_count--; in bondport_set_selected()
4018 lag->lag_selected_port_count++; in bondport_set_selected()