Lines Matching full:app

86 int nfp_flower_offload_one_police(struct nfp_app *app, bool ingress,  in nfp_flower_offload_one_police()  argument
92 skb = nfp_flower_cmsg_alloc(app, sizeof(struct nfp_police_config), in nfp_flower_offload_one_police()
115 nfp_ctrl_tx(app->ctrl, skb); in nfp_flower_offload_one_police()
165 nfp_flower_install_rate_limiter(struct nfp_app *app, struct net_device *netdev, in nfp_flower_install_rate_limiter() argument
171 struct nfp_flower_priv *fl_priv = app->priv; in nfp_flower_install_rate_limiter()
274 nfp_flower_offload_one_police(repr->app, true, in nfp_flower_install_rate_limiter()
289 nfp_flower_remove_rate_limiter(struct nfp_app *app, struct net_device *netdev, in nfp_flower_remove_rate_limiter() argument
293 struct nfp_flower_priv *fl_priv = app->priv; in nfp_flower_remove_rate_limiter()
329 skb = nfp_flower_cmsg_alloc(repr->app, sizeof(struct nfp_police_config), in nfp_flower_remove_rate_limiter()
339 nfp_ctrl_tx(repr->app->ctrl, skb); in nfp_flower_remove_rate_limiter()
345 void nfp_flower_stats_rlim_reply(struct nfp_app *app, struct sk_buff *skb) in nfp_flower_stats_rlim_reply() argument
347 struct nfp_flower_priv *fl_priv = app->priv; in nfp_flower_stats_rlim_reply()
358 return nfp_act_stats_reply(app, msg); in nfp_flower_stats_rlim_reply()
362 netdev = nfp_app_dev_get(app, netdev_port_id, NULL); in nfp_flower_stats_rlim_reply()
396 skb = nfp_flower_cmsg_alloc(fl_priv->app, in nfp_flower_stats_rlim_request()
412 nfp_ctrl_tx(fl_priv->app->ctrl, skb); in nfp_flower_stats_rlim_request()
422 repr_set = rcu_dereference(fl_priv->app->reprs[NFP_REPR_TYPE_VF]); in nfp_flower_stats_rlim_request_all()
465 nfp_flower_stats_rate_limiter(struct nfp_app *app, struct net_device *netdev, in nfp_flower_stats_rate_limiter() argument
469 struct nfp_flower_priv *fl_priv = app->priv; in nfp_flower_stats_rate_limiter()
503 void nfp_flower_qos_init(struct nfp_app *app) in nfp_flower_qos_init() argument
505 struct nfp_flower_priv *fl_priv = app->priv; in nfp_flower_qos_init()
509 nfp_init_meter_table(app); in nfp_flower_qos_init()
514 void nfp_flower_qos_cleanup(struct nfp_app *app) in nfp_flower_qos_cleanup() argument
516 struct nfp_flower_priv *fl_priv = app->priv; in nfp_flower_qos_cleanup()
521 int nfp_flower_setup_qos_offload(struct nfp_app *app, struct net_device *netdev, in nfp_flower_setup_qos_offload() argument
525 struct nfp_flower_priv *fl_priv = app->priv; in nfp_flower_setup_qos_offload()
536 ret = nfp_flower_install_rate_limiter(app, netdev, flow, extack); in nfp_flower_setup_qos_offload()
539 ret = nfp_flower_remove_rate_limiter(app, netdev, flow, extack); in nfp_flower_setup_qos_offload()
542 ret = nfp_flower_stats_rate_limiter(app, netdev, flow, extack); in nfp_flower_setup_qos_offload()
562 nfp_flower_search_meter_entry(struct nfp_app *app, u32 meter_id) in nfp_flower_search_meter_entry() argument
564 struct nfp_flower_priv *priv = app->priv; in nfp_flower_search_meter_entry()
571 nfp_flower_add_meter_entry(struct nfp_app *app, u32 meter_id) in nfp_flower_add_meter_entry() argument
574 struct nfp_flower_priv *priv = app->priv; in nfp_flower_add_meter_entry()
602 static void nfp_flower_del_meter_entry(struct nfp_app *app, u32 meter_id) in nfp_flower_del_meter_entry() argument
605 struct nfp_flower_priv *priv = app->priv; in nfp_flower_del_meter_entry()
621 int nfp_flower_setup_meter_entry(struct nfp_app *app, in nfp_flower_setup_meter_entry() argument
626 struct nfp_flower_priv *fl_priv = app->priv; in nfp_flower_setup_meter_entry()
634 nfp_flower_del_meter_entry(app, meter_id); in nfp_flower_setup_meter_entry()
637 meter_entry = nfp_flower_add_meter_entry(app, meter_id); in nfp_flower_setup_meter_entry()
664 int nfp_init_meter_table(struct nfp_app *app) in nfp_init_meter_table() argument
666 struct nfp_flower_priv *priv = app->priv; in nfp_init_meter_table()
694 nfp_act_install_actions(struct nfp_app *app, struct flow_offload_action *fl_act, in nfp_act_install_actions() argument
699 struct nfp_flower_priv *fl_priv = app->priv; in nfp_act_install_actions()
736 if (nfp_flower_setup_meter_entry(app, action, NFP_METER_ADD, meter_id)) in nfp_act_install_actions()
742 nfp_flower_offload_one_police(app, false, pps, meter_id, in nfp_act_install_actions()
752 nfp_act_remove_actions(struct nfp_app *app, struct flow_offload_action *fl_act, in nfp_act_remove_actions() argument
769 meter_entry = nfp_flower_search_meter_entry(app, meter_id); in nfp_act_remove_actions()
777 skb = nfp_flower_cmsg_alloc(app, sizeof(struct nfp_police_config), in nfp_act_remove_actions()
789 nfp_ctrl_tx(app->ctrl, skb); in nfp_act_remove_actions()
790 nfp_flower_setup_meter_entry(app, NULL, NFP_METER_DEL, meter_id); in nfp_act_remove_actions()
796 nfp_act_stats_reply(struct nfp_app *app, void *pmsg) in nfp_act_stats_reply() argument
798 struct nfp_flower_priv *fl_priv = app->priv; in nfp_act_stats_reply()
806 meter_entry = nfp_flower_search_meter_entry(app, meter_id); in nfp_act_stats_reply()
828 nfp_act_stats_actions(struct nfp_app *app, struct flow_offload_action *fl_act, in nfp_act_stats_actions() argument
831 struct nfp_flower_priv *fl_priv = app->priv; in nfp_act_stats_actions()
843 meter_entry = nfp_flower_search_meter_entry(app, fl_act->index); in nfp_act_stats_actions()
868 int nfp_setup_tc_act_offload(struct nfp_app *app, in nfp_setup_tc_act_offload() argument
872 struct nfp_flower_priv *fl_priv = app->priv; in nfp_setup_tc_act_offload()
879 return nfp_act_install_actions(app, fl_act, extack); in nfp_setup_tc_act_offload()
881 return nfp_act_remove_actions(app, fl_act, extack); in nfp_setup_tc_act_offload()
883 return nfp_act_stats_actions(app, fl_act, extack); in nfp_setup_tc_act_offload()