/kernel/linux/linux-5.10/include/net/ |
H A D | pkt_cls.h | 222 static inline int tcf_exts_init(struct tcf_exts *exts, struct net *net, in tcf_exts_init() argument 226 exts->type = 0; in tcf_exts_init() 227 exts->nr_actions = 0; in tcf_exts_init() 228 exts->net = net; in tcf_exts_init() 229 exts->actions = kcalloc(TCA_ACT_MAX_PRIO, sizeof(struct tc_action *), in tcf_exts_init() 231 if (!exts->actions) in tcf_exts_init() 234 exts->action = action; in tcf_exts_init() 235 exts->police = police; in tcf_exts_init() 243 static inline bool tcf_exts_get_net(struct tcf_exts *exts) in tcf_exts_get_net() argument 246 exts in tcf_exts_get_net() 253 tcf_exts_put_net(struct tcf_exts *exts) tcf_exts_put_net() argument 270 tcf_exts_stats_update(const struct tcf_exts *exts, u64 bytes, u64 packets, u64 drops, u64 lastuse, u8 used_hw_stats, bool used_hw_stats_valid) tcf_exts_stats_update() argument 298 tcf_exts_has_actions(struct tcf_exts *exts) tcf_exts_has_actions() argument 319 tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts, struct tcf_result *res) tcf_exts_exec() argument 606 struct tcf_exts *exts; global() member 745 struct tcf_exts *exts; global() member [all...] |
/kernel/linux/linux-6.6/include/net/ |
H A D | pkt_cls.h | 62 int tcf_exts_init_ex(struct tcf_exts *exts, struct net *net, int action, 230 static inline int tcf_exts_init(struct tcf_exts *exts, struct net *net, in tcf_exts_init() argument 234 return tcf_exts_init_ex(exts, net, action, police, NULL, 0, false); in tcf_exts_init() 244 static inline bool tcf_exts_get_net(struct tcf_exts *exts) in tcf_exts_get_net() argument 247 exts->net = maybe_get_net(exts->net); in tcf_exts_get_net() 248 if (exts->net) in tcf_exts_get_net() 249 netns_tracker_alloc(exts->net, &exts->ns_tracker, GFP_KERNEL); in tcf_exts_get_net() 250 return exts in tcf_exts_get_net() 256 tcf_exts_put_net(struct tcf_exts *exts) tcf_exts_put_net() argument 281 tcf_exts_hw_stats_update(const struct tcf_exts *exts, struct flow_stats *stats, bool use_act_stats) tcf_exts_hw_stats_update() argument 313 tcf_exts_has_actions(struct tcf_exts *exts) tcf_exts_has_actions() argument 334 tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts, struct tcf_result *res) tcf_exts_exec() argument 344 tcf_exts_exec_ex(struct sk_buff *skb, struct tcf_exts *exts, int act_index, struct tcf_result *res) tcf_exts_exec_ex() argument 645 struct tcf_exts *exts; global() member 785 struct tcf_exts *exts; global() member [all...] |
/kernel/linux/linux-5.10/net/sched/ |
H A D | cls_cgroup.c | 19 struct tcf_exts exts; member 41 return tcf_exts_exec(skb, &head->exts, res); in cls_cgroup_classify() 60 tcf_exts_destroy(&head->exts); in __cls_cgroup_destroy() 62 tcf_exts_put_net(&head->exts); in __cls_cgroup_destroy() 100 err = tcf_exts_init(&new->exts, net, TCA_CGROUP_ACT, TCA_CGROUP_POLICE); in cls_cgroup_change() 111 err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &new->exts, ovr, in cls_cgroup_change() 122 tcf_exts_get_net(&head->exts); in cls_cgroup_change() 127 tcf_exts_destroy(&new->exts); in cls_cgroup_change() 139 if (tcf_exts_get_net(&head->exts)) in cls_cgroup_destroy() 182 if (tcf_exts_dump(skb, &head->exts) < in cls_cgroup_dump() [all...] |
H A D | cls_matchall.c | 17 struct tcf_exts exts; member 40 return tcf_exts_exec(skb, &head->exts, res); in mall_classify() 50 tcf_exts_destroy(&head->exts); in __mall_destroy() 51 tcf_exts_put_net(&head->exts); in __mall_destroy() 92 cls_mall.rule = flow_rule_alloc(tcf_exts_num_actions(&head->exts)); in mall_replace_hw_filter() 100 err = tc_setup_flow_action(&cls_mall.rule->action, &head->exts); in mall_replace_hw_filter() 141 if (tcf_exts_get_net(&head->exts)) in mall_destroy() 171 err = tcf_exts_validate(net, tp, tb, est, &head->exts, ovr, true, in mall_set_parms() 216 err = tcf_exts_init(&new->exts, net, TCA_MATCHALL_ACT, 0); in mall_change() 253 tcf_exts_destroy(&new->exts); in mall_change() [all...] |
H A D | cls_fw.c | 38 struct tcf_exts exts; member 67 r = tcf_exts_exec(skb, &f->exts, res); in fw_classify() 115 tcf_exts_destroy(&f->exts); in __fw_delete_filter() 116 tcf_exts_put_net(&f->exts); in __fw_delete_filter() 145 if (tcf_exts_get_net(&f->exts)) in fw_destroy() 174 tcf_exts_get_net(&f->exts); in fw_delete() 208 err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &f->exts, ovr, in fw_set_parms() 272 err = tcf_exts_init(&fnew->exts, net, TCA_FW_ACT, in fw_change() 281 tcf_exts_destroy(&fnew->exts); in fw_change() 295 tcf_exts_get_net(&f->exts); in fw_change() [all...] |
H A D | cls_bpf.c | 44 struct tcf_exts exts; member 128 ret = tcf_exts_exec(skb, &prog->exts, res); in cls_bpf_classify() 159 cls_bpf.exts = &obj->exts; in cls_bpf_offload_cmd() 234 cls_bpf.exts = &prog->exts; in cls_bpf_offload_update_stats() 270 tcf_exts_destroy(&prog->exts); in __cls_bpf_delete_prog() 271 tcf_exts_put_net(&prog->exts); in __cls_bpf_delete_prog() 296 if (tcf_exts_get_net(&prog->exts)) in __cls_bpf_delete() 422 ret = tcf_exts_validate(net, tp, tb, est, &prog->exts, ov in cls_bpf_set_parms() [all...] |
H A D | cls_basic.c | 30 struct tcf_exts exts; member 52 r = tcf_exts_exec(skb, &f->exts, res); in basic_classify() 89 tcf_exts_destroy(&f->exts); in __basic_delete_filter() 91 tcf_exts_put_net(&f->exts); in __basic_delete_filter() 116 if (tcf_exts_get_net(&f->exts)) in basic_destroy() 134 tcf_exts_get_net(&f->exts); in basic_delete() 153 err = tcf_exts_validate(net, tp, tb, est, &f->exts, ovr, true, extack); in basic_set_parms() 198 err = tcf_exts_init(&fnew->exts, net, TCA_BASIC_ACT, TCA_BASIC_POLICE); in basic_change() 233 tcf_exts_get_net(&fold->exts); in basic_change() 242 tcf_exts_destroy(&fnew->exts); in basic_change() [all...] |
H A D | cls_route.c | 52 struct tcf_exts exts; member 112 if (tcf_exts_has_actions(&f->exts)) { \ 113 int r = tcf_exts_exec(skb, &f->exts, res); \ 255 tcf_exts_destroy(&f->exts); in __route4_delete_filter() 256 tcf_exts_put_net(&f->exts); in __route4_delete_filter() 298 if (tcf_exts_get_net(&f->exts)) in route4_destroy() 343 tcf_exts_get_net(&f->exts); in route4_delete() 393 err = tcf_exts_validate(net, tp, tb, est, &f->exts, ovr, true, extack); in route4_set_parms() 507 err = tcf_exts_init(&f->exts, net, TCA_ROUTE4_ACT, TCA_ROUTE4_POLICE); in route4_change() 558 tcf_exts_get_net(&fold->exts); in route4_change() [all...] |
H A D | cls_api.c | 3043 void tcf_exts_destroy(struct tcf_exts *exts) in tcf_exts_destroy() argument 3046 if (exts->actions) { in tcf_exts_destroy() 3047 tcf_action_destroy(exts->actions, TCA_ACT_UNBIND); in tcf_exts_destroy() 3048 kfree(exts->actions); in tcf_exts_destroy() 3050 exts->nr_actions = 0; in tcf_exts_destroy() 3056 struct nlattr *rate_tlv, struct tcf_exts *exts, bool ovr, in tcf_exts_validate() 3065 if (exts->police && tb[exts->police]) { in tcf_exts_validate() 3068 a_o = tc_action_load_ops("police", tb[exts->police], rtnl_held, extack); in tcf_exts_validate() 3071 act = tcf_action_init_1(net, tp, tb[exts in tcf_exts_validate() 3055 tcf_exts_validate(struct net *net, struct tcf_proto *tp, struct nlattr **tb, struct nlattr *rate_tlv, struct tcf_exts *exts, bool ovr, bool rtnl_held, struct netlink_ext_ack *extack) tcf_exts_validate() argument 3119 tcf_exts_first_act(struct tcf_exts *exts) tcf_exts_first_act() argument 3128 tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts) tcf_exts_dump() argument 3169 tcf_exts_terse_dump(struct sk_buff *skb, struct tcf_exts *exts) tcf_exts_terse_dump() argument 3195 tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts) tcf_exts_dump_stats() argument 3572 tc_setup_flow_action(struct flow_action *flow_action, const struct tcf_exts *exts) tc_setup_flow_action() argument 3753 tcf_exts_num_actions(struct tcf_exts *exts) tcf_exts_num_actions() argument [all...] |
H A D | cls_flow.c | 39 struct tcf_exts exts; member 336 r = tcf_exts_exec(skb, &f->exts, res); in flow_classify() 371 tcf_exts_destroy(&f->exts); in __flow_destroy_filter() 373 tcf_exts_put_net(&f->exts); in __flow_destroy_filter() 441 err = tcf_exts_init(&fnew->exts, net, TCA_FLOW_ACT, TCA_FLOW_POLICE); in flow_change() 445 err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &fnew->exts, ovr, in flow_change() 553 tcf_exts_get_net(&fold->exts); in flow_change() 559 tcf_exts_destroy(&fnew->exts); in flow_change() 573 tcf_exts_get_net(&f->exts); in flow_delete() 599 if (tcf_exts_get_net(&f->exts)) in flow_destroy() [all...] |
H A D | cls_u32.c | 47 struct tcf_exts exts; member 181 r = tcf_exts_exec(skb, &n->exts, res); in u32_classify() 393 tcf_exts_destroy(&n->exts); in __u32_destroy_key() 401 tcf_exts_put_net(&n->exts); in u32_destroy_key() 465 tcf_exts_get_net(&key->exts); in u32_delete_key() 555 cls_u32.knode.exts = &n->exts; in u32_replace_hw_knode() 587 if (tcf_exts_get_net(&n->exts)) in u32_clear_hnode() 721 err = tcf_exts_validate(net, tp, tb, est, &n->exts, ovr, true, extack); in u32_set_parms() 834 if (tcf_exts_init(&new->exts, ne in u32_init_knode() [all...] |
/kernel/linux/linux-6.6/net/sched/ |
H A D | cls_cgroup.c | 20 struct tcf_exts exts; member 43 return tcf_exts_exec(skb, &head->exts, res); in cls_cgroup_classify() 62 tcf_exts_destroy(&head->exts); in __cls_cgroup_destroy() 64 tcf_exts_put_net(&head->exts); in __cls_cgroup_destroy() 102 err = tcf_exts_init(&new->exts, net, TCA_CGROUP_ACT, TCA_CGROUP_POLICE); in cls_cgroup_change() 113 err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &new->exts, flags, in cls_cgroup_change() 124 tcf_exts_get_net(&head->exts); in cls_cgroup_change() 129 tcf_exts_destroy(&new->exts); in cls_cgroup_change() 141 if (tcf_exts_get_net(&head->exts)) in cls_cgroup_destroy() 184 if (tcf_exts_dump(skb, &head->exts) < in cls_cgroup_dump() [all...] |
H A D | cls_matchall.c | 18 struct tcf_exts exts; member 42 return tcf_exts_exec(skb, &head->exts, res); in mall_classify() 52 tcf_exts_destroy(&head->exts); in __mall_destroy() 53 tcf_exts_put_net(&head->exts); in __mall_destroy() 94 cls_mall.rule = flow_rule_alloc(tcf_exts_num_actions(&head->exts)); in mall_replace_hw_filter() 102 err = tc_setup_offload_action(&cls_mall.rule->action, &head->exts, in mall_replace_hw_filter() 140 if (tcf_exts_get_net(&head->exts)) in mall_destroy() 196 err = tcf_exts_init(&new->exts, net, TCA_MATCHALL_ACT, 0); in mall_change() 211 &new->exts, flags, new->flags, extack); in mall_change() 241 tcf_exts_destroy(&new->exts); in mall_change() [all...] |
H A D | cls_fw.c | 39 struct tcf_exts exts; member 69 r = tcf_exts_exec(skb, &f->exts, res); in fw_classify() 117 tcf_exts_destroy(&f->exts); in __fw_delete_filter() 118 tcf_exts_put_net(&f->exts); in __fw_delete_filter() 147 if (tcf_exts_get_net(&f->exts)) in fw_destroy() 176 tcf_exts_get_net(&f->exts); in fw_delete() 210 err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &f->exts, flags, in fw_set_parms() 273 err = tcf_exts_init(&fnew->exts, net, TCA_FW_ACT, in fw_change() 282 tcf_exts_destroy(&fnew->exts); in fw_change() 296 tcf_exts_get_net(&f->exts); in fw_change() [all...] |
H A D | cls_bpf.c | 45 struct tcf_exts exts; member 130 ret = tcf_exts_exec(skb, &prog->exts, res); in cls_bpf_classify() 160 cls_bpf.exts = &obj->exts; in cls_bpf_offload_cmd() 235 cls_bpf.exts = &prog->exts; in cls_bpf_offload_update_stats() 271 tcf_exts_destroy(&prog->exts); in __cls_bpf_delete_prog() 272 tcf_exts_put_net(&prog->exts); in __cls_bpf_delete_prog() 297 if (tcf_exts_get_net(&prog->exts)) in __cls_bpf_delete() 436 ret = tcf_exts_init(&prog->exts, ne in cls_bpf_change() [all...] |
H A D | cls_api.c | 56 const struct tcf_exts *exts; member 65 * action index in the exts tc actions array. 77 tcf_exts_miss_cookie_base_alloc(struct tcf_exts *exts, struct tcf_proto *tp, in tcf_exts_miss_cookie_base_alloc() argument 95 n->exts = exts; in tcf_exts_miss_cookie_base_alloc() 103 exts->miss_cookie_node = n; in tcf_exts_miss_cookie_base_alloc() 111 static void tcf_exts_miss_cookie_base_destroy(struct tcf_exts *exts) in tcf_exts_miss_cookie_base_destroy() argument 115 if (!exts->miss_cookie_node) in tcf_exts_miss_cookie_base_destroy() 118 n = exts->miss_cookie_node; in tcf_exts_miss_cookie_base_destroy() 133 tcf_exts_miss_cookie_base_alloc(struct tcf_exts *exts, struc argument 139 tcf_exts_miss_cookie_base_destroy(struct tcf_exts *exts) tcf_exts_miss_cookie_base_destroy() argument 1679 struct tcf_exts *exts; __tcf_classify() local 3214 tcf_exts_init_ex(struct tcf_exts *exts, struct net *net, int action, int police, struct tcf_proto *tp, u32 handle, bool use_action_miss) tcf_exts_init_ex() argument 3255 tcf_exts_destroy(struct tcf_exts *exts) tcf_exts_destroy() argument 3269 tcf_exts_validate_ex(struct net *net, struct tcf_proto *tp, struct nlattr **tb, struct nlattr *rate_tlv, struct tcf_exts *exts, u32 flags, u32 fl_flags, struct netlink_ext_ack *extack) tcf_exts_validate_ex() argument 3324 tcf_exts_validate(struct net *net, struct tcf_proto *tp, struct nlattr **tb, struct nlattr *rate_tlv, struct tcf_exts *exts, u32 flags, struct netlink_ext_ack *extack) tcf_exts_validate() argument 3345 tcf_exts_first_act(struct tcf_exts *exts) tcf_exts_first_act() argument 3354 tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts) tcf_exts_dump() argument 3395 tcf_exts_terse_dump(struct sk_buff *skb, struct tcf_exts *exts) tcf_exts_terse_dump() argument 3421 tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts) tcf_exts_dump_stats() argument 3799 tc_setup_offload_action(struct flow_action *flow_action, const struct tcf_exts *exts, struct netlink_ext_ack *extack) tc_setup_offload_action() argument 3819 tcf_exts_num_actions(struct tcf_exts *exts) tcf_exts_num_actions() argument [all...] |
H A D | cls_basic.c | 31 struct tcf_exts exts; member 54 r = tcf_exts_exec(skb, &f->exts, res); in basic_classify() 91 tcf_exts_destroy(&f->exts); in __basic_delete_filter() 93 tcf_exts_put_net(&f->exts); in __basic_delete_filter() 118 if (tcf_exts_get_net(&f->exts)) in basic_destroy() 136 tcf_exts_get_net(&f->exts); in basic_delete() 155 err = tcf_exts_validate(net, tp, tb, est, &f->exts, flags, extack); in basic_set_parms() 200 err = tcf_exts_init(&fnew->exts, net, TCA_BASIC_ACT, TCA_BASIC_POLICE); in basic_change() 235 tcf_exts_get_net(&fold->exts); in basic_change() 244 tcf_exts_destroy(&fnew->exts); in basic_change() [all...] |
H A D | cls_route.c | 53 struct tcf_exts exts; member 113 if (tcf_exts_has_actions(&f->exts)) { \ 114 int r = tcf_exts_exec(skb, &f->exts, res); \ 257 tcf_exts_destroy(&f->exts); in __route4_delete_filter() 258 tcf_exts_put_net(&f->exts); in __route4_delete_filter() 300 if (tcf_exts_get_net(&f->exts)) in route4_destroy() 345 tcf_exts_get_net(&f->exts); in route4_delete() 395 err = tcf_exts_validate(net, tp, tb, est, &f->exts, flags, extack); in route4_set_parms() 509 err = tcf_exts_init(&f->exts, net, TCA_ROUTE4_ACT, TCA_ROUTE4_POLICE); in route4_change() 560 tcf_exts_get_net(&fold->exts); in route4_change() [all...] |
H A D | cls_flow.c | 40 struct tcf_exts exts; member 338 r = tcf_exts_exec(skb, &f->exts, res); in flow_classify() 373 tcf_exts_destroy(&f->exts); in __flow_destroy_filter() 375 tcf_exts_put_net(&f->exts); in __flow_destroy_filter() 443 err = tcf_exts_init(&fnew->exts, net, TCA_FLOW_ACT, TCA_FLOW_POLICE); in flow_change() 447 err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &fnew->exts, flags, in flow_change() 555 tcf_exts_get_net(&fold->exts); in flow_change() 561 tcf_exts_destroy(&fnew->exts); in flow_change() 575 tcf_exts_get_net(&f->exts); in flow_delete() 601 if (tcf_exts_get_net(&f->exts)) in flow_destroy() [all...] |
H A D | cls_u32.c | 48 struct tcf_exts exts; member 183 r = tcf_exts_exec(skb, &n->exts, res); in u32_classify() 395 tcf_exts_destroy(&n->exts); in __u32_destroy_key() 403 tcf_exts_put_net(&n->exts); in u32_destroy_key() 467 tcf_exts_get_net(&key->exts); in u32_delete_key() 557 cls_u32.knode.exts = &n->exts; in u32_replace_hw_knode() 589 if (tcf_exts_get_net(&n->exts)) in u32_clear_hnode() 738 err = tcf_exts_validate_ex(net, tp, tb, est, &n->exts, flags, in u32_set_parms() 848 if (tcf_exts_init(&new->exts, ne in u32_init_knode() [all...] |
/kernel/linux/linux-5.10/net/openvswitch/ |
H A D | vport-vxlan.c | 31 struct nlattr *exts; in vxlan_get_options() local 33 exts = nla_nest_start_noflag(skb, OVS_TUNNEL_ATTR_EXTENSION); in vxlan_get_options() 34 if (!exts) in vxlan_get_options() 41 nla_nest_end(skb, exts); in vxlan_get_options() 54 struct nlattr *exts[OVS_VXLAN_EXT_MAX + 1]; in vxlan_configure_exts() local 60 err = nla_parse_nested_deprecated(exts, OVS_VXLAN_EXT_MAX, attr, in vxlan_configure_exts() 65 if (exts[OVS_VXLAN_EXT_GBP]) in vxlan_configure_exts()
|
/kernel/linux/linux-6.6/net/openvswitch/ |
H A D | vport-vxlan.c | 31 struct nlattr *exts; in vxlan_get_options() local 33 exts = nla_nest_start_noflag(skb, OVS_TUNNEL_ATTR_EXTENSION); in vxlan_get_options() 34 if (!exts) in vxlan_get_options() 41 nla_nest_end(skb, exts); in vxlan_get_options() 54 struct nlattr *exts[OVS_VXLAN_EXT_MAX + 1]; in vxlan_configure_exts() local 60 err = nla_parse_nested_deprecated(exts, OVS_VXLAN_EXT_MAX, attr, in vxlan_configure_exts() 65 if (exts[OVS_VXLAN_EXT_GBP]) in vxlan_configure_exts()
|
/kernel/linux/linux-5.10/drivers/net/ethernet/chelsio/cxgb4/ |
H A D | cxgb4_tc_u32.c | 96 struct tcf_exts *exts; in fill_action_fields() local 99 exts = cls->knode.exts; in fill_action_fields() 100 if (!tcf_exts_has_actions(exts)) in fill_action_fields() 103 tcf_exts_for_each_action(i, a, exts) { in fill_action_fields()
|
/kernel/linux/linux-6.6/drivers/net/ethernet/chelsio/cxgb4/ |
H A D | cxgb4_tc_u32.c | 96 struct tcf_exts *exts; in fill_action_fields() local 99 exts = cls->knode.exts; in fill_action_fields() 100 if (!tcf_exts_has_actions(exts)) in fill_action_fields() 103 tcf_exts_for_each_action(i, a, exts) { in fill_action_fields()
|
/kernel/linux/linux-5.10/arch/sh/lib/ |
H A D | ashiftrt.S | 76 exts.b r4,r4 94 exts.w r4,r4
|