Lines Matching refs:merge_flow

793 			struct nfp_fl_payload *merge_flow)  in nfp_flower_merge_action()  argument
813 merge_flow->meta.shortcut = cpu_to_be32(NFP_FL_SC_ACT_NULL); in nfp_flower_merge_action()
815 merge_flow->meta.shortcut = sub_flow2->meta.shortcut; in nfp_flower_merge_action()
817 merge_flow->meta.act_len = sub1_act_len + sub2_act_len; in nfp_flower_merge_action()
818 merge_act = merge_flow->action_data; in nfp_flower_merge_action()
860 merge_flow->meta.act_len -= sizeof(*post_tun_push_vlan); in nfp_flower_merge_action()
872 list_del(&link->merge_flow.list); in nfp_flower_unlink_flow()
877 static void nfp_flower_unlink_flows(struct nfp_fl_payload *merge_flow, in nfp_flower_unlink_flows() argument
882 list_for_each_entry(link, &merge_flow->linked_flows, merge_flow.list) in nfp_flower_unlink_flows()
889 static int nfp_flower_link_flows(struct nfp_fl_payload *merge_flow, in nfp_flower_link_flows() argument
898 link->merge_flow.flow = merge_flow; in nfp_flower_link_flows()
899 list_add_tail(&link->merge_flow.list, &merge_flow->linked_flows); in nfp_flower_link_flows()
924 struct nfp_fl_payload *merge_flow; in nfp_flower_merge_offloaded_flows() local
942 merge_flow = nfp_flower_allocate_new(&merge_key_ls); in nfp_flower_merge_offloaded_flows()
943 if (!merge_flow) in nfp_flower_merge_offloaded_flows()
946 merge_flow->tc_flower_cookie = (unsigned long)merge_flow; in nfp_flower_merge_offloaded_flows()
947 merge_flow->ingress_dev = sub_flow1->ingress_dev; in nfp_flower_merge_offloaded_flows()
949 memcpy(merge_flow->unmasked_data, sub_flow1->unmasked_data, in nfp_flower_merge_offloaded_flows()
951 memcpy(merge_flow->mask_data, sub_flow1->mask_data, in nfp_flower_merge_offloaded_flows()
954 err = nfp_flower_merge_action(sub_flow1, sub_flow2, merge_flow); in nfp_flower_merge_offloaded_flows()
958 err = nfp_flower_link_flows(merge_flow, sub_flow1); in nfp_flower_merge_offloaded_flows()
962 err = nfp_flower_link_flows(merge_flow, sub_flow2); in nfp_flower_merge_offloaded_flows()
966 merge_tc_off.cookie = merge_flow->tc_flower_cookie; in nfp_flower_merge_offloaded_flows()
967 err = nfp_compile_flow_metadata(app, &merge_tc_off, merge_flow, in nfp_flower_merge_offloaded_flows()
968 merge_flow->ingress_dev, extack); in nfp_flower_merge_offloaded_flows()
972 err = rhashtable_insert_fast(&priv->flow_table, &merge_flow->fl_node, in nfp_flower_merge_offloaded_flows()
977 err = nfp_flower_xmit_flow(app, merge_flow, in nfp_flower_merge_offloaded_flows()
982 merge_flow->in_hw = true; in nfp_flower_merge_offloaded_flows()
989 &merge_flow->fl_node, in nfp_flower_merge_offloaded_flows()
992 nfp_modify_flow_metadata(app, merge_flow); in nfp_flower_merge_offloaded_flows()
994 nfp_flower_unlink_flows(merge_flow, sub_flow2); in nfp_flower_merge_offloaded_flows()
996 nfp_flower_unlink_flows(merge_flow, sub_flow1); in nfp_flower_merge_offloaded_flows()
998 kfree(merge_flow->action_data); in nfp_flower_merge_offloaded_flows()
999 kfree(merge_flow->mask_data); in nfp_flower_merge_offloaded_flows()
1000 kfree(merge_flow->unmasked_data); in nfp_flower_merge_offloaded_flows()
1001 kfree(merge_flow); in nfp_flower_merge_offloaded_flows()
1210 struct nfp_fl_payload *merge_flow) in nfp_flower_remove_merge_flow() argument
1218 link = list_first_entry(&merge_flow->linked_flows, in nfp_flower_remove_merge_flow()
1219 struct nfp_fl_payload_link, merge_flow.list); in nfp_flower_remove_merge_flow()
1226 err = nfp_modify_flow_metadata(app, merge_flow); in nfp_flower_remove_merge_flow()
1233 err = nfp_flower_xmit_flow(app, merge_flow, in nfp_flower_remove_merge_flow()
1250 list_for_each_entry_safe(link, temp, &merge_flow->linked_flows, in nfp_flower_remove_merge_flow()
1251 merge_flow.list) in nfp_flower_remove_merge_flow()
1254 kfree(merge_flow->action_data); in nfp_flower_remove_merge_flow()
1255 kfree(merge_flow->mask_data); in nfp_flower_remove_merge_flow()
1256 kfree(merge_flow->unmasked_data); in nfp_flower_remove_merge_flow()
1258 &merge_flow->fl_node, in nfp_flower_remove_merge_flow()
1260 kfree_rcu(merge_flow, rcu); in nfp_flower_remove_merge_flow()
1273 link->merge_flow.flow); in nfp_flower_del_linked_merge_flows()
1342 struct nfp_fl_payload *merge_flow) in __nfp_flower_update_merge_stats() argument
1350 ctx_id = be32_to_cpu(merge_flow->meta.host_ctx_id); in __nfp_flower_update_merge_stats()
1366 list_for_each_entry(link, &merge_flow->linked_flows, merge_flow.list) { in __nfp_flower_update_merge_stats()
1383 __nfp_flower_update_merge_stats(app, link->merge_flow.flow); in nfp_flower_update_merge_stats()