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()
534 return nfp_flower_install_rate_limiter(app, netdev, flow, in nfp_flower_setup_qos_offload()
537 return nfp_flower_remove_rate_limiter(app, netdev, flow, in nfp_flower_setup_qos_offload()
540 return nfp_flower_stats_rate_limiter(app, netdev, flow, in nfp_flower_setup_qos_offload()
556 nfp_flower_search_meter_entry(struct nfp_app *app, u32 meter_id) in nfp_flower_search_meter_entry() argument
558 struct nfp_flower_priv *priv = app->priv; in nfp_flower_search_meter_entry()
565 nfp_flower_add_meter_entry(struct nfp_app *app, u32 meter_id) in nfp_flower_add_meter_entry() argument
568 struct nfp_flower_priv *priv = app->priv; in nfp_flower_add_meter_entry()
596 static void nfp_flower_del_meter_entry(struct nfp_app *app, u32 meter_id) in nfp_flower_del_meter_entry() argument
599 struct nfp_flower_priv *priv = app->priv; in nfp_flower_del_meter_entry()
615 int nfp_flower_setup_meter_entry(struct nfp_app *app, in nfp_flower_setup_meter_entry() argument
620 struct nfp_flower_priv *fl_priv = app->priv; in nfp_flower_setup_meter_entry()
628 nfp_flower_del_meter_entry(app, meter_id); in nfp_flower_setup_meter_entry()
631 meter_entry = nfp_flower_add_meter_entry(app, meter_id); in nfp_flower_setup_meter_entry()
658 int nfp_init_meter_table(struct nfp_app *app) in nfp_init_meter_table() argument
660 struct nfp_flower_priv *priv = app->priv; in nfp_init_meter_table()
688 nfp_act_install_actions(struct nfp_app *app, struct flow_offload_action *fl_act, in nfp_act_install_actions() argument
693 struct nfp_flower_priv *fl_priv = app->priv; in nfp_act_install_actions()
730 if (nfp_flower_setup_meter_entry(app, action, NFP_METER_ADD, meter_id)) in nfp_act_install_actions()
736 nfp_flower_offload_one_police(app, false, pps, meter_id, in nfp_act_install_actions()
746 nfp_act_remove_actions(struct nfp_app *app, struct flow_offload_action *fl_act, in nfp_act_remove_actions() argument
763 meter_entry = nfp_flower_search_meter_entry(app, meter_id); in nfp_act_remove_actions()
771 skb = nfp_flower_cmsg_alloc(app, sizeof(struct nfp_police_config), in nfp_act_remove_actions()
783 nfp_ctrl_tx(app->ctrl, skb); in nfp_act_remove_actions()
784 nfp_flower_setup_meter_entry(app, NULL, NFP_METER_DEL, meter_id); in nfp_act_remove_actions()
790 nfp_act_stats_reply(struct nfp_app *app, void *pmsg) in nfp_act_stats_reply() argument
792 struct nfp_flower_priv *fl_priv = app->priv; in nfp_act_stats_reply()
800 meter_entry = nfp_flower_search_meter_entry(app, meter_id); in nfp_act_stats_reply()
822 nfp_act_stats_actions(struct nfp_app *app, struct flow_offload_action *fl_act, in nfp_act_stats_actions() argument
825 struct nfp_flower_priv *fl_priv = app->priv; in nfp_act_stats_actions()
837 meter_entry = nfp_flower_search_meter_entry(app, fl_act->index); in nfp_act_stats_actions()
862 int nfp_setup_tc_act_offload(struct nfp_app *app, in nfp_setup_tc_act_offload() argument
866 struct nfp_flower_priv *fl_priv = app->priv; in nfp_setup_tc_act_offload()
873 return nfp_act_install_actions(app, fl_act, extack); in nfp_setup_tc_act_offload()
875 return nfp_act_remove_actions(app, fl_act, extack); in nfp_setup_tc_act_offload()
877 return nfp_act_stats_actions(app, fl_act, extack); in nfp_setup_tc_act_offload()