Lines Matching refs:merge_flow

877 			struct nfp_fl_payload *merge_flow)  in nfp_flower_merge_action()  argument
897 merge_flow->meta.shortcut = cpu_to_be32(NFP_FL_SC_ACT_NULL); in nfp_flower_merge_action()
899 merge_flow->meta.shortcut = sub_flow2->meta.shortcut; in nfp_flower_merge_action()
901 merge_flow->meta.act_len = sub1_act_len + sub2_act_len; in nfp_flower_merge_action()
902 merge_act = merge_flow->action_data; in nfp_flower_merge_action()
944 merge_flow->meta.act_len -= sizeof(*post_tun_push_vlan); in nfp_flower_merge_action()
956 list_del(&link->merge_flow.list); in nfp_flower_unlink_flow()
961 static void nfp_flower_unlink_flows(struct nfp_fl_payload *merge_flow, in nfp_flower_unlink_flows() argument
966 list_for_each_entry(link, &merge_flow->linked_flows, merge_flow.list) in nfp_flower_unlink_flows()
973 static int nfp_flower_link_flows(struct nfp_fl_payload *merge_flow, in nfp_flower_link_flows() argument
982 link->merge_flow.flow = merge_flow; in nfp_flower_link_flows()
983 list_add_tail(&link->merge_flow.list, &merge_flow->linked_flows); in nfp_flower_link_flows()
1006 struct nfp_fl_payload *merge_flow; in nfp_flower_merge_offloaded_flows() local
1032 merge_flow = nfp_flower_allocate_new(&merge_key_ls); in nfp_flower_merge_offloaded_flows()
1033 if (!merge_flow) in nfp_flower_merge_offloaded_flows()
1036 merge_flow->tc_flower_cookie = (unsigned long)merge_flow; in nfp_flower_merge_offloaded_flows()
1037 merge_flow->ingress_dev = sub_flow1->ingress_dev; in nfp_flower_merge_offloaded_flows()
1039 memcpy(merge_flow->unmasked_data, sub_flow1->unmasked_data, in nfp_flower_merge_offloaded_flows()
1041 memcpy(merge_flow->mask_data, sub_flow1->mask_data, in nfp_flower_merge_offloaded_flows()
1044 err = nfp_flower_merge_action(sub_flow1, sub_flow2, merge_flow); in nfp_flower_merge_offloaded_flows()
1048 err = nfp_flower_link_flows(merge_flow, sub_flow1); in nfp_flower_merge_offloaded_flows()
1052 err = nfp_flower_link_flows(merge_flow, sub_flow2); in nfp_flower_merge_offloaded_flows()
1056 err = nfp_compile_flow_metadata(app, merge_flow->tc_flower_cookie, merge_flow, in nfp_flower_merge_offloaded_flows()
1057 merge_flow->ingress_dev, NULL); in nfp_flower_merge_offloaded_flows()
1061 err = rhashtable_insert_fast(&priv->flow_table, &merge_flow->fl_node, in nfp_flower_merge_offloaded_flows()
1077 err = nfp_flower_xmit_flow(app, merge_flow, in nfp_flower_merge_offloaded_flows()
1082 merge_flow->in_hw = true; in nfp_flower_merge_offloaded_flows()
1095 &merge_flow->fl_node, in nfp_flower_merge_offloaded_flows()
1098 nfp_modify_flow_metadata(app, merge_flow); in nfp_flower_merge_offloaded_flows()
1100 nfp_flower_unlink_flows(merge_flow, sub_flow2); in nfp_flower_merge_offloaded_flows()
1102 nfp_flower_unlink_flows(merge_flow, sub_flow1); in nfp_flower_merge_offloaded_flows()
1104 kfree(merge_flow->action_data); in nfp_flower_merge_offloaded_flows()
1105 kfree(merge_flow->mask_data); in nfp_flower_merge_offloaded_flows()
1106 kfree(merge_flow->unmasked_data); in nfp_flower_merge_offloaded_flows()
1107 kfree(merge_flow); in nfp_flower_merge_offloaded_flows()
1453 struct nfp_fl_payload *merge_flow) in nfp_flower_remove_merge_flow() argument
1463 link = list_first_entry(&merge_flow->linked_flows, in nfp_flower_remove_merge_flow()
1464 struct nfp_fl_payload_link, merge_flow.list); in nfp_flower_remove_merge_flow()
1471 err = nfp_modify_flow_metadata(app, merge_flow); in nfp_flower_remove_merge_flow()
1478 err = nfp_flower_xmit_flow(app, merge_flow, in nfp_flower_remove_merge_flow()
1495 list_for_each_entry_safe(link, temp, &merge_flow->linked_flows, in nfp_flower_remove_merge_flow()
1496 merge_flow.list) { in nfp_flower_remove_merge_flow()
1513 kfree(merge_flow->action_data); in nfp_flower_remove_merge_flow()
1514 kfree(merge_flow->mask_data); in nfp_flower_remove_merge_flow()
1515 kfree(merge_flow->unmasked_data); in nfp_flower_remove_merge_flow()
1517 &merge_flow->fl_node, in nfp_flower_remove_merge_flow()
1519 kfree_rcu(merge_flow, rcu); in nfp_flower_remove_merge_flow()
1532 link->merge_flow.flow); in nfp_flower_del_linked_merge_flows()
1627 struct nfp_fl_payload *merge_flow) in __nfp_flower_update_merge_stats() argument
1635 ctx_id = be32_to_cpu(merge_flow->meta.host_ctx_id); in __nfp_flower_update_merge_stats()
1651 list_for_each_entry(link, &merge_flow->linked_flows, merge_flow.list) { in __nfp_flower_update_merge_stats()
1669 __nfp_flower_update_merge_stats(app, link->merge_flow.flow); in nfp_flower_update_merge_stats()