Lines Matching full:app
95 nfp_flower_xmit_flow(struct nfp_app *app, struct nfp_fl_payload *nfp_flow, in nfp_flower_xmit_flow() argument
116 skb = nfp_flower_cmsg_alloc(app, tot_len, mtype, GFP_KERNEL); in nfp_flower_xmit_flow()
134 nfp_ctrl_tx(app->ctrl, skb); in nfp_flower_xmit_flow()
238 nfp_flower_calculate_key_layers(struct nfp_app *app, in nfp_flower_calculate_key_layers() argument
247 struct nfp_flower_priv *priv = app->priv; in nfp_flower_calculate_key_layers()
992 * @app: Pointer to the APP handle
1001 int nfp_flower_merge_offloaded_flows(struct nfp_app *app, in nfp_flower_merge_offloaded_flows() argument
1005 struct nfp_flower_priv *priv = app->priv; in nfp_flower_merge_offloaded_flows()
1024 nfp_flower_cmsg_warn(app, "The two flows are already merged.\n"); in nfp_flower_merge_offloaded_flows()
1058 err = nfp_compile_flow_metadata(app, merge_flow->tc_flower_cookie, merge_flow, in nfp_flower_merge_offloaded_flows()
1079 err = nfp_flower_xmit_flow(app, merge_flow, in nfp_flower_merge_offloaded_flows()
1100 nfp_modify_flow_metadata(app, merge_flow); in nfp_flower_merge_offloaded_flows()
1115 * @app: Pointer to the APP handle
1125 nfp_flower_validate_pre_tun_rule(struct nfp_app *app, in nfp_flower_validate_pre_tun_rule() argument
1130 struct nfp_flower_priv *priv = app->priv; in nfp_flower_validate_pre_tun_rule()
1289 * @app: Pointer to the APP handle
1298 nfp_flower_add_offload(struct nfp_app *app, struct net_device *netdev, in nfp_flower_add_offload() argument
1303 struct nfp_flower_priv *priv = app->priv; in nfp_flower_add_offload()
1327 err = nfp_flower_calculate_key_layers(app, netdev, key_layer, rule, in nfp_flower_add_offload()
1338 err = nfp_flower_compile_flow_match(app, rule, key_layer, netdev, in nfp_flower_add_offload()
1343 err = nfp_flower_compile_action(app, rule, netdev, flow_pay, extack); in nfp_flower_add_offload()
1348 err = nfp_flower_validate_pre_tun_rule(app, flow_pay, key_layer, extack); in nfp_flower_add_offload()
1353 err = nfp_compile_flow_metadata(app, flow->cookie, flow_pay, netdev, extack); in nfp_flower_add_offload()
1366 err = nfp_flower_xmit_pre_tun_flow(app, flow_pay); in nfp_flower_add_offload()
1368 err = nfp_flower_xmit_flow(app, flow_pay, in nfp_flower_add_offload()
1388 nfp_modify_flow_metadata(app, flow_pay); in nfp_flower_add_offload()
1391 nfp_tunnel_put_ipv6_off(app, flow_pay->nfp_tun_ipv6); in nfp_flower_add_offload()
1402 nfp_flower_remove_merge_flow(struct nfp_app *app, in nfp_flower_remove_merge_flow() argument
1406 struct nfp_flower_priv *priv = app->priv; in nfp_flower_remove_merge_flow()
1422 err = nfp_modify_flow_metadata(app, merge_flow); in nfp_flower_remove_merge_flow()
1424 nfp_flower_cmsg_warn(app, "Metadata fail for merge flow delete.\n"); in nfp_flower_remove_merge_flow()
1429 err = nfp_flower_xmit_flow(app, merge_flow, in nfp_flower_remove_merge_flow()
1432 nfp_flower_cmsg_warn(app, "Failed to delete merged flow.\n"); in nfp_flower_remove_merge_flow()
1437 err = nfp_flower_xmit_flow(app, origin, in nfp_flower_remove_merge_flow()
1440 nfp_flower_cmsg_warn(app, "Failed to revert merge flow.\n"); in nfp_flower_remove_merge_flow()
1474 nfp_flower_del_linked_merge_flows(struct nfp_app *app, in nfp_flower_del_linked_merge_flows() argument
1482 nfp_flower_remove_merge_flow(app, sub_flow, in nfp_flower_del_linked_merge_flows()
1488 * @app: Pointer to the APP handle
1498 nfp_flower_del_offload(struct nfp_app *app, struct net_device *netdev, in nfp_flower_del_offload() argument
1501 struct nfp_flower_priv *priv = app->priv; in nfp_flower_del_offload()
1520 nfp_flow = nfp_flower_search_fl_table(app, flow->cookie, netdev); in nfp_flower_del_offload()
1526 err = nfp_modify_flow_metadata(app, nfp_flow); in nfp_flower_del_offload()
1531 nfp_tunnel_del_ipv4_off(app, nfp_flow->nfp_tun_ipv4_addr); in nfp_flower_del_offload()
1534 nfp_tunnel_put_ipv6_off(app, nfp_flow->nfp_tun_ipv6); in nfp_flower_del_offload()
1542 err = nfp_flower_xmit_pre_tun_del_flow(app, nfp_flow); in nfp_flower_del_offload()
1544 err = nfp_flower_xmit_flow(app, nfp_flow, in nfp_flower_del_offload()
1549 nfp_flower_del_linked_merge_flows(app, nfp_flow); in nfp_flower_del_offload()
1563 __nfp_flower_update_merge_stats(struct nfp_app *app, in __nfp_flower_update_merge_stats() argument
1566 struct nfp_flower_priv *priv = app->priv; in __nfp_flower_update_merge_stats()
1599 nfp_flower_update_merge_stats(struct nfp_app *app, in nfp_flower_update_merge_stats() argument
1606 __nfp_flower_update_merge_stats(app, link->merge_flow.flow); in nfp_flower_update_merge_stats()
1611 * @app: Pointer to the APP handle
1621 nfp_flower_get_stats(struct nfp_app *app, struct net_device *netdev, in nfp_flower_get_stats() argument
1624 struct nfp_flower_priv *priv = app->priv; in nfp_flower_get_stats()
1637 nfp_flow = nfp_flower_search_fl_table(app, flow->cookie, netdev); in nfp_flower_get_stats()
1648 nfp_flower_update_merge_stats(app, nfp_flow); in nfp_flower_get_stats()
1662 nfp_flower_repr_offload(struct nfp_app *app, struct net_device *netdev, in nfp_flower_repr_offload() argument
1670 return nfp_flower_add_offload(app, netdev, flower); in nfp_flower_repr_offload()
1672 return nfp_flower_del_offload(app, netdev, flower); in nfp_flower_repr_offload()
1674 return nfp_flower_get_stats(app, netdev, flower); in nfp_flower_repr_offload()
1691 return nfp_flower_repr_offload(repr->app, repr->netdev, in nfp_flower_setup_tc_block_cb()
1694 return nfp_flower_setup_qos_offload(repr->app, repr->netdev, in nfp_flower_setup_tc_block_cb()
1746 int nfp_flower_setup_tc(struct nfp_app *app, struct net_device *netdev, in nfp_flower_setup_tc() argument
1759 struct nfp_app *app; member
1764 nfp_flower_indr_block_cb_priv_lookup(struct nfp_app *app, in nfp_flower_indr_block_cb_priv_lookup() argument
1768 struct nfp_flower_priv *priv = app->priv; in nfp_flower_indr_block_cb_priv_lookup()
1784 return nfp_flower_repr_offload(priv->app, priv->netdev, in nfp_flower_setup_indr_block_cb()
1800 nfp_flower_setup_indr_tc_block(struct net_device *netdev, struct Qdisc *sch, struct nfp_app *app, in nfp_flower_setup_indr_tc_block() argument
1805 struct nfp_flower_priv *priv = app->priv; in nfp_flower_setup_indr_tc_block()
1809 !nfp_flower_internal_port_can_offload(app, netdev)) || in nfp_flower_setup_indr_tc_block()
1811 nfp_flower_internal_port_can_offload(app, netdev))) in nfp_flower_setup_indr_tc_block()
1816 cb_priv = nfp_flower_indr_block_cb_priv_lookup(app, netdev); in nfp_flower_setup_indr_tc_block()
1828 cb_priv->app = app; in nfp_flower_setup_indr_tc_block()
1834 f, netdev, sch, data, app, cleanup); in nfp_flower_setup_indr_tc_block()
1845 cb_priv = nfp_flower_indr_block_cb_priv_lookup(app, netdev); in nfp_flower_setup_indr_tc_block()