Lines Matching refs:flow_pay
550 struct nfp_fl_payload *flow_pay; in nfp_flower_allocate_new() local
552 flow_pay = kmalloc(sizeof(*flow_pay), GFP_KERNEL); in nfp_flower_allocate_new()
553 if (!flow_pay) in nfp_flower_allocate_new()
556 flow_pay->meta.key_len = key_layer->key_size; in nfp_flower_allocate_new()
557 flow_pay->unmasked_data = kmalloc(key_layer->key_size, GFP_KERNEL); in nfp_flower_allocate_new()
558 if (!flow_pay->unmasked_data) in nfp_flower_allocate_new()
561 flow_pay->meta.mask_len = key_layer->key_size; in nfp_flower_allocate_new()
562 flow_pay->mask_data = kmalloc(key_layer->key_size, GFP_KERNEL); in nfp_flower_allocate_new()
563 if (!flow_pay->mask_data) in nfp_flower_allocate_new()
566 flow_pay->action_data = kmalloc(NFP_FL_MAX_A_SIZ, GFP_KERNEL); in nfp_flower_allocate_new()
567 if (!flow_pay->action_data) in nfp_flower_allocate_new()
570 flow_pay->nfp_tun_ipv4_addr = 0; in nfp_flower_allocate_new()
571 flow_pay->nfp_tun_ipv6 = NULL; in nfp_flower_allocate_new()
572 flow_pay->meta.flags = 0; in nfp_flower_allocate_new()
573 INIT_LIST_HEAD(&flow_pay->linked_flows); in nfp_flower_allocate_new()
574 flow_pay->in_hw = false; in nfp_flower_allocate_new()
575 flow_pay->pre_tun_rule.dev = NULL; in nfp_flower_allocate_new()
577 return flow_pay; in nfp_flower_allocate_new()
580 kfree(flow_pay->mask_data); in nfp_flower_allocate_new()
582 kfree(flow_pay->unmasked_data); in nfp_flower_allocate_new()
584 kfree(flow_pay); in nfp_flower_allocate_new()
1339 struct nfp_fl_payload *flow_pay; in nfp_flower_add_offload() local
1366 flow_pay = nfp_flower_allocate_new(key_layer); in nfp_flower_add_offload()
1367 if (!flow_pay) { in nfp_flower_add_offload()
1373 flow_pay, tun_type, extack); in nfp_flower_add_offload()
1377 err = nfp_flower_compile_action(app, rule, netdev, flow_pay, extack); in nfp_flower_add_offload()
1381 if (flow_pay->pre_tun_rule.dev) { in nfp_flower_add_offload()
1382 err = nfp_flower_validate_pre_tun_rule(app, flow_pay, key_layer, extack); in nfp_flower_add_offload()
1387 err = nfp_compile_flow_metadata(app, flow->cookie, flow_pay, netdev, extack); in nfp_flower_add_offload()
1391 flow_pay->tc_flower_cookie = flow->cookie; in nfp_flower_add_offload()
1392 err = rhashtable_insert_fast(&priv->flow_table, &flow_pay->fl_node, in nfp_flower_add_offload()
1399 if (flow_pay->pre_tun_rule.dev) { in nfp_flower_add_offload()
1408 predt->flow_pay = flow_pay; in nfp_flower_add_offload()
1412 flow_pay->pre_tun_rule.predt = predt; in nfp_flower_add_offload()
1416 err = nfp_flower_xmit_pre_tun_flow(app, flow_pay); in nfp_flower_add_offload()
1419 err = nfp_flower_xmit_flow(app, flow_pay, in nfp_flower_add_offload()
1429 flow_pay->in_hw = true; in nfp_flower_add_offload()
1438 &flow_pay->fl_node, in nfp_flower_add_offload()
1441 nfp_modify_flow_metadata(app, flow_pay); in nfp_flower_add_offload()
1443 if (flow_pay->nfp_tun_ipv6) in nfp_flower_add_offload()
1444 nfp_tunnel_put_ipv6_off(app, flow_pay->nfp_tun_ipv6); in nfp_flower_add_offload()
1445 kfree(flow_pay->action_data); in nfp_flower_add_offload()
1446 kfree(flow_pay->mask_data); in nfp_flower_add_offload()
1447 kfree(flow_pay->unmasked_data); in nfp_flower_add_offload()
1448 kfree(flow_pay); in nfp_flower_add_offload()