Lines Matching full:group
6 /* LAG group config flags. */
33 * @group_id: Group ID applicable
34 * @group_inst: Group instance number - increment when group is reused
35 * @members: Array of 32-bit words listing all active group members
49 * struct nfp_fl_lag_group - list entry for each LAG group
50 * @group_id: Assigned group ID for host/kernel sync
51 * @group_inst: Group instance in case of ID reuse
53 * @master_ndev: Group master Netdev
54 * @dirty: Marked if the group needs synced to HW
55 * @offloaded: Marked if the group is currently offloaded to NIC
56 * @to_remove: Marked if the group should be removed from NIC
57 * @to_destroy: Marked if the group should be removed from driver
58 * @slave_cnt: Number of slaves in group
108 struct nfp_fl_lag_group *group; in nfp_fl_lag_group_create() local
122 group = kmalloc(sizeof(*group), GFP_KERNEL); in nfp_fl_lag_group_create()
123 if (!group) { in nfp_fl_lag_group_create()
128 group->group_id = id; in nfp_fl_lag_group_create()
129 group->master_ndev = master; in nfp_fl_lag_group_create()
130 group->dirty = true; in nfp_fl_lag_group_create()
131 group->offloaded = false; in nfp_fl_lag_group_create()
132 group->to_remove = false; in nfp_fl_lag_group_create()
133 group->to_destroy = false; in nfp_fl_lag_group_create()
134 group->slave_cnt = 0; in nfp_fl_lag_group_create()
135 group->group_inst = ++lag->global_inst; in nfp_fl_lag_group_create()
136 list_add_tail(&group->list, &lag->group_list); in nfp_fl_lag_group_create()
138 return group; in nfp_fl_lag_group_create()
164 struct nfp_fl_lag_group *group = NULL; in nfp_fl_lag_get_group_info() local
168 group = nfp_fl_lag_find_group_for_master_with_lag(&priv->nfp_lag, in nfp_fl_lag_get_group_info()
170 if (!group) { in nfp_fl_lag_get_group_info()
176 *group_id = cpu_to_be16(group->group_id); in nfp_fl_lag_get_group_info()
185 *group_inst = group->group_inst; in nfp_fl_lag_get_group_info()
200 NL_SET_ERR_MSG_MOD(extack, "invalid entry: group does not exist for LAG action"); in nfp_flower_lag_populate_pre_action()
218 struct nfp_fl_lag_group *group = NULL; in nfp_flower_lag_get_output_id() local
222 group = nfp_fl_lag_find_group_for_master_with_lag(&priv->nfp_lag, in nfp_flower_lag_get_output_id()
224 if (group) in nfp_flower_lag_get_output_id()
225 group_id = group->group_id; in nfp_flower_lag_get_output_id()
232 nfp_fl_lag_config_group(struct nfp_fl_lag *lag, struct nfp_fl_lag_group *group, in nfp_fl_lag_config_group() argument
267 * and the reserved SYNC group ID is used. in nfp_fl_lag_config_group()
275 cmsg_payload->group_id = cpu_to_be32(group->group_id); in nfp_fl_lag_config_group()
276 cmsg_payload->group_inst = cpu_to_be32(group->group_inst); in nfp_fl_lag_config_group()
316 /* Active count of 0 deletes group on hw. */ in nfp_fl_lag_do_work()
324 "group delete failed\n"); in nfp_fl_lag_do_work()
350 * the group until pending notifications are processed. in nfp_fl_lag_do_work()
397 "group offload failed\n"); in nfp_fl_lag_do_work()
410 "group batch end cmsg failed\n"); in nfp_fl_lag_do_work()
479 * 3) Reset NFP group config in nfp_flower_lag_unprocessed_msg()
493 "mem err in group reset msg\n"); in nfp_flower_lag_unprocessed_msg()
504 struct nfp_fl_lag_group *group) in nfp_fl_lag_schedule_group_remove() argument
506 group->to_remove = true; in nfp_fl_lag_schedule_group_remove()
515 struct nfp_fl_lag_group *group; in nfp_fl_lag_schedule_group_delete() local
524 group = nfp_fl_lag_find_group_for_master_with_lag(lag, master); in nfp_fl_lag_schedule_group_delete()
525 if (!group) { in nfp_fl_lag_schedule_group_delete()
532 group->to_remove = true; in nfp_fl_lag_schedule_group_delete()
533 group->to_destroy = true; in nfp_fl_lag_schedule_group_delete()
545 struct nfp_fl_lag_group *group; in nfp_fl_lag_changeupper_event() local
591 group = nfp_fl_lag_find_group_for_master_with_lag(lag, upper); in nfp_fl_lag_changeupper_event()
594 /* Cannot offload the group - remove if previously offloaded. */ in nfp_fl_lag_changeupper_event()
595 if (group && group->offloaded) in nfp_fl_lag_changeupper_event()
596 nfp_fl_lag_schedule_group_remove(lag, group); in nfp_fl_lag_changeupper_event()
602 if (!group) { in nfp_fl_lag_changeupper_event()
603 group = nfp_fl_lag_group_create(lag, upper); in nfp_fl_lag_changeupper_event()
604 if (IS_ERR(group)) { in nfp_fl_lag_changeupper_event()
606 return PTR_ERR(group); in nfp_fl_lag_changeupper_event()
610 group->dirty = true; in nfp_fl_lag_changeupper_event()
611 group->slave_cnt = slave_count; in nfp_fl_lag_changeupper_event()
613 /* Group may have been on queue for removal but is now offloadable. */ in nfp_fl_lag_changeupper_event()
614 group->to_remove = false; in nfp_fl_lag_changeupper_event()