/linux-6.1.9/net/core/ |
D | flow_offload.c | 251 struct flow_block_cb *block_cb; in flow_block_cb_alloc() local 253 block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL); in flow_block_cb_alloc() 254 if (!block_cb) in flow_block_cb_alloc() 257 block_cb->cb = cb; in flow_block_cb_alloc() 258 block_cb->cb_ident = cb_ident; in flow_block_cb_alloc() 259 block_cb->cb_priv = cb_priv; in flow_block_cb_alloc() 260 block_cb->release = release; in flow_block_cb_alloc() 262 return block_cb; in flow_block_cb_alloc() 266 void flow_block_cb_free(struct flow_block_cb *block_cb) in flow_block_cb_free() argument 268 if (block_cb->release) in flow_block_cb_free() [all …]
|
/linux-6.1.9/drivers/net/ethernet/marvell/prestera/ |
D | prestera_flow.c | 179 struct flow_block_cb *block_cb; in prestera_flow_block_get() local 181 block_cb = flow_block_cb_lookup(f->block, in prestera_flow_block_get() 183 if (!block_cb) { in prestera_flow_block_get() 188 block_cb = flow_block_cb_alloc(prestera_flow_block_cb, in prestera_flow_block_get() 191 if (IS_ERR(block_cb)) { in prestera_flow_block_get() 193 return ERR_CAST(block_cb); in prestera_flow_block_get() 196 block->block_cb = block_cb; in prestera_flow_block_get() 199 block = flow_block_cb_priv(block_cb); in prestera_flow_block_get() 203 flow_block_cb_incref(block_cb); in prestera_flow_block_get() 210 struct flow_block_cb *block_cb = block->block_cb; in prestera_flow_block_put() local [all …]
|
D | prestera_flow.h | 23 struct flow_block_cb *block_cb; member
|
/linux-6.1.9/drivers/net/ethernet/mellanox/mlxsw/ |
D | spectrum_flow.c | 207 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_bind() local 211 block_cb = flow_block_cb_lookup(f->block, mlxsw_sp_flow_block_cb, in mlxsw_sp_setup_tc_block_bind() 213 if (!block_cb) { in mlxsw_sp_setup_tc_block_bind() 217 block_cb = flow_block_cb_alloc(mlxsw_sp_flow_block_cb, in mlxsw_sp_setup_tc_block_bind() 220 if (IS_ERR(block_cb)) { in mlxsw_sp_setup_tc_block_bind() 222 return PTR_ERR(block_cb); in mlxsw_sp_setup_tc_block_bind() 226 flow_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_bind() 228 flow_block_cb_incref(block_cb); in mlxsw_sp_setup_tc_block_bind() 240 flow_block_cb_add(block_cb, f); in mlxsw_sp_setup_tc_block_bind() 241 list_add_tail(&block_cb->driver_list, &mlxsw_sp_block_cb_list); in mlxsw_sp_setup_tc_block_bind() [all …]
|
D | spectrum_qdisc.c | 2178 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_qevent_bind() local 2184 block_cb = flow_block_cb_lookup(f->block, mlxsw_sp_qevent_block_cb, mlxsw_sp); in mlxsw_sp_setup_tc_block_qevent_bind() 2185 if (!block_cb) { in mlxsw_sp_setup_tc_block_qevent_bind() 2189 block_cb = flow_block_cb_alloc(mlxsw_sp_qevent_block_cb, mlxsw_sp, qevent_block, in mlxsw_sp_setup_tc_block_qevent_bind() 2191 if (IS_ERR(block_cb)) { in mlxsw_sp_setup_tc_block_qevent_bind() 2193 return PTR_ERR(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 2197 qevent_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 2199 flow_block_cb_incref(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 2233 flow_block_cb_add(block_cb, f); in mlxsw_sp_setup_tc_block_qevent_bind() 2234 list_add_tail(&block_cb->driver_list, &mlxsw_sp_qevent_block_cb_list); in mlxsw_sp_setup_tc_block_qevent_bind() [all …]
|
/linux-6.1.9/drivers/net/ethernet/sfc/ |
D | tc_bindings.c | 77 struct flow_block_cb *block_cb; in efx_tc_setup_block() local 91 block_cb = flow_block_cb_alloc(efx_tc_block_cb, binding, in efx_tc_setup_block() 93 rc = PTR_ERR_OR_ZERO(block_cb); in efx_tc_setup_block() 103 flow_block_cb_add(block_cb, tcb); in efx_tc_setup_block() 109 block_cb = flow_block_cb_lookup(tcb->block, in efx_tc_setup_block() 112 if (block_cb) { in efx_tc_setup_block() 113 flow_block_cb_remove(block_cb, tcb); in efx_tc_setup_block() 141 void (*cleanup)(struct flow_block_cb *block_cb)) in efx_tc_indr_setup_cb() argument 145 struct flow_block_cb *block_cb; in efx_tc_indr_setup_cb() local 172 block_cb = flow_indr_block_cb_alloc(efx_tc_block_cb, binding, in efx_tc_indr_setup_cb() [all …]
|
D | tc_bindings.h | 28 void (*cleanup)(struct flow_block_cb *block_cb));
|
/linux-6.1.9/include/net/netfilter/ |
D | nf_flow_table.h | 223 struct flow_block_cb *block_cb; in nf_flow_table_offload_add_cb() local 227 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_add_cb() 228 if (block_cb) { in nf_flow_table_offload_add_cb() 233 block_cb = flow_block_cb_alloc(cb, cb_priv, cb_priv, NULL); in nf_flow_table_offload_add_cb() 234 if (IS_ERR(block_cb)) { in nf_flow_table_offload_add_cb() 235 err = PTR_ERR(block_cb); in nf_flow_table_offload_add_cb() 239 list_add_tail(&block_cb->list, &block->cb_list); in nf_flow_table_offload_add_cb() 251 struct flow_block_cb *block_cb; in nf_flow_table_offload_del_cb() local 254 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_del_cb() 255 if (block_cb) { in nf_flow_table_offload_del_cb() [all …]
|
/linux-6.1.9/include/net/ |
D | flow_offload.h | 509 void (*cleanup)(struct flow_block_cb *block_cb); 533 void (*cleanup)(struct flow_block_cb *block_cb)); 534 void flow_block_cb_free(struct flow_block_cb *block_cb); 539 void *flow_block_cb_priv(struct flow_block_cb *block_cb); 540 void flow_block_cb_incref(struct flow_block_cb *block_cb); 541 unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb); 543 static inline void flow_block_cb_add(struct flow_block_cb *block_cb, in flow_block_cb_add() argument 546 list_add_tail(&block_cb->list, &offload->cb_list); in flow_block_cb_add() 549 static inline void flow_block_cb_remove(struct flow_block_cb *block_cb, in flow_block_cb_remove() argument 552 list_move(&block_cb->list, &offload->cb_list); in flow_block_cb_remove() [all …]
|
/linux-6.1.9/drivers/net/ethernet/mediatek/ |
D | mtk_ppe_offload.c | 550 struct flow_block_cb *block_cb; in mtk_eth_setup_tc_block() local 564 block_cb = flow_block_cb_lookup(f->block, cb, dev); in mtk_eth_setup_tc_block() 565 if (block_cb) { in mtk_eth_setup_tc_block() 566 flow_block_cb_incref(block_cb); in mtk_eth_setup_tc_block() 569 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in mtk_eth_setup_tc_block() 570 if (IS_ERR(block_cb)) in mtk_eth_setup_tc_block() 571 return PTR_ERR(block_cb); in mtk_eth_setup_tc_block() 573 flow_block_cb_add(block_cb, f); in mtk_eth_setup_tc_block() 574 list_add_tail(&block_cb->driver_list, &block_cb_list); in mtk_eth_setup_tc_block() 577 block_cb = flow_block_cb_lookup(f->block, cb, dev); in mtk_eth_setup_tc_block() [all …]
|
/linux-6.1.9/net/netfilter/ |
D | nf_tables_offload.c | 200 struct flow_block_cb *block_cb; in nft_setup_cb_call() local 203 list_for_each_entry(block_cb, cb_list, list) { in nft_setup_cb_call() 204 err = block_cb->cb(type, type_data, block_cb->cb_priv); in nft_setup_cb_call() 323 struct flow_block_cb *block_cb, *next; in nft_flow_offload_unbind() local 337 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nft_flow_offload_unbind() 338 list_del(&block_cb->list); in nft_flow_offload_unbind() 339 flow_block_cb_free(block_cb); in nft_flow_offload_unbind() 399 static void nft_indr_block_cleanup(struct flow_block_cb *block_cb) in nft_indr_block_cleanup() argument 401 struct nft_base_chain *basechain = block_cb->indr.data; in nft_indr_block_cleanup() 402 struct net_device *dev = block_cb->indr.dev; in nft_indr_block_cleanup() [all …]
|
D | nf_flow_table_offload.c | 844 struct flow_block_cb *block_cb; in nf_flow_offload_tuple() local 855 list_for_each_entry(block_cb, block_cb_list, list) { in nf_flow_offload_tuple() 856 err = block_cb->cb(TC_SETUP_CLSFLOWER, &cls_flow, in nf_flow_offload_tuple() 857 block_cb->cb_priv); in nf_flow_offload_tuple() 1098 struct flow_block_cb *block_cb, *next; in nf_flow_table_block_setup() local 1107 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nf_flow_table_block_setup() 1108 list_del(&block_cb->list); in nf_flow_table_block_setup() 1109 flow_block_cb_free(block_cb); in nf_flow_table_block_setup() 1137 static void nf_flow_table_indr_cleanup(struct flow_block_cb *block_cb) in nf_flow_table_indr_cleanup() argument 1139 struct nf_flowtable *flowtable = block_cb->indr.data; in nf_flow_table_indr_cleanup() [all …]
|
/linux-6.1.9/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
D | tc.c | 436 void (*cleanup)(struct flow_block_cb *block_cb)) in mlx5e_rep_indr_setup_block() argument 442 struct flow_block_cb *block_cb; in mlx5e_rep_indr_setup_block() local 484 block_cb = flow_indr_block_cb_alloc(setup_cb, indr_priv, indr_priv, in mlx5e_rep_indr_setup_block() 488 if (IS_ERR(block_cb)) { in mlx5e_rep_indr_setup_block() 491 return PTR_ERR(block_cb); in mlx5e_rep_indr_setup_block() 493 flow_block_cb_add(block_cb, f); in mlx5e_rep_indr_setup_block() 494 list_add_tail(&block_cb->driver_list, &mlx5e_block_cb_list); in mlx5e_rep_indr_setup_block() 502 block_cb = flow_block_cb_lookup(f->block, setup_cb, indr_priv); in mlx5e_rep_indr_setup_block() 503 if (!block_cb) in mlx5e_rep_indr_setup_block() 506 flow_indr_block_cb_remove(block_cb, f); in mlx5e_rep_indr_setup_block() [all …]
|
/linux-6.1.9/drivers/net/ethernet/netronome/nfp/flower/ |
D | offload.c | 1773 struct flow_block_cb *block_cb; in nfp_flower_setup_tc_block() local 1788 block_cb = flow_block_cb_alloc(nfp_flower_setup_tc_block_cb, in nfp_flower_setup_tc_block() 1790 if (IS_ERR(block_cb)) in nfp_flower_setup_tc_block() 1791 return PTR_ERR(block_cb); in nfp_flower_setup_tc_block() 1793 flow_block_cb_add(block_cb, f); in nfp_flower_setup_tc_block() 1794 list_add_tail(&block_cb->driver_list, &nfp_block_cb_list); in nfp_flower_setup_tc_block() 1797 block_cb = flow_block_cb_lookup(f->block, in nfp_flower_setup_tc_block() 1800 if (!block_cb) in nfp_flower_setup_tc_block() 1803 flow_block_cb_remove(block_cb, f); in nfp_flower_setup_tc_block() 1804 list_del(&block_cb->driver_list); in nfp_flower_setup_tc_block() [all …]
|
D | main.h | 658 void (*cleanup)(struct flow_block_cb *block_cb));
|
/linux-6.1.9/net/sched/ |
D | cls_api.c | 662 static void tc_block_indr_cleanup(struct flow_block_cb *block_cb) in tc_block_indr_cleanup() argument 664 struct tcf_block *block = block_cb->indr.data; in tc_block_indr_cleanup() 665 struct net_device *dev = block_cb->indr.dev; in tc_block_indr_cleanup() 666 struct Qdisc *sch = block_cb->indr.sch; in tc_block_indr_cleanup() 671 block_cb->indr.binder_type, in tc_block_indr_cleanup() 676 list_del(&block_cb->driver_list); in tc_block_indr_cleanup() 677 list_move(&block_cb->list, &bo.cb_list); in tc_block_indr_cleanup() 1463 struct flow_block_cb *block_cb, *next; in tcf_block_bind() local 1468 list_for_each_entry(block_cb, &bo->cb_list, list) { in tcf_block_bind() 1469 err = tcf_block_playback_offloads(block, block_cb->cb, in tcf_block_bind() [all …]
|
D | act_ct.c | 327 struct flow_block_cb *block_cb, *tmp_cb; in tcf_ct_flow_table_cleanup_work() local 338 list_for_each_entry_safe(block_cb, tmp_cb, &block->cb_list, list) { in tcf_ct_flow_table_cleanup_work() 339 list_del(&block_cb->list); in tcf_ct_flow_table_cleanup_work() 340 flow_block_cb_free(block_cb); in tcf_ct_flow_table_cleanup_work()
|
/linux-6.1.9/drivers/net/ethernet/freescale/dpaa2/ |
D | dpaa2-switch.c | 1305 struct flow_block_cb *block_cb; in dpaa2_switch_setup_tc_block_bind() local 1309 block_cb = flow_block_cb_lookup(f->block, in dpaa2_switch_setup_tc_block_bind() 1313 if (!block_cb) { in dpaa2_switch_setup_tc_block_bind() 1320 block_cb = flow_block_cb_alloc(dpaa2_switch_port_setup_tc_block_cb_ig, in dpaa2_switch_setup_tc_block_bind() 1322 if (IS_ERR(block_cb)) in dpaa2_switch_setup_tc_block_bind() 1323 return PTR_ERR(block_cb); in dpaa2_switch_setup_tc_block_bind() 1327 filter_block = flow_block_cb_priv(block_cb); in dpaa2_switch_setup_tc_block_bind() 1330 flow_block_cb_incref(block_cb); in dpaa2_switch_setup_tc_block_bind() 1336 flow_block_cb_add(block_cb, f); in dpaa2_switch_setup_tc_block_bind() 1337 list_add_tail(&block_cb->driver_list, in dpaa2_switch_setup_tc_block_bind() [all …]
|
/linux-6.1.9/drivers/net/ethernet/broadcom/bnxt/ |
D | bnxt_tc.c | 1904 void (*cleanup)(struct flow_block_cb *block_cb)) in bnxt_tc_setup_indr_block() argument 1907 struct flow_block_cb *block_cb; in bnxt_tc_setup_indr_block() local 1922 block_cb = flow_indr_block_cb_alloc(bnxt_tc_setup_indr_block_cb, in bnxt_tc_setup_indr_block() 1926 if (IS_ERR(block_cb)) { in bnxt_tc_setup_indr_block() 1929 return PTR_ERR(block_cb); in bnxt_tc_setup_indr_block() 1932 flow_block_cb_add(block_cb, f); in bnxt_tc_setup_indr_block() 1933 list_add_tail(&block_cb->driver_list, &bnxt_block_cb_list); in bnxt_tc_setup_indr_block() 1940 block_cb = flow_block_cb_lookup(f->block, in bnxt_tc_setup_indr_block() 1943 if (!block_cb) in bnxt_tc_setup_indr_block() 1946 flow_indr_block_cb_remove(block_cb, f); in bnxt_tc_setup_indr_block() [all …]
|
/linux-6.1.9/drivers/net/ethernet/mscc/ |
D | ocelot_net.c | 448 struct flow_block_cb *block_cb; in ocelot_setup_tc_block() local 467 block_cb = flow_block_cb_alloc(cb, priv, priv, NULL); in ocelot_setup_tc_block() 468 if (IS_ERR(block_cb)) in ocelot_setup_tc_block() 469 return PTR_ERR(block_cb); in ocelot_setup_tc_block() 471 flow_block_cb_add(block_cb, f); in ocelot_setup_tc_block() 472 list_add_tail(&block_cb->driver_list, f->driver_block_list); in ocelot_setup_tc_block() 475 block_cb = flow_block_cb_lookup(f->block, cb, priv); in ocelot_setup_tc_block() 476 if (!block_cb) in ocelot_setup_tc_block() 479 flow_block_cb_remove(block_cb, f); in ocelot_setup_tc_block() 480 list_del(&block_cb->driver_list); in ocelot_setup_tc_block()
|
/linux-6.1.9/net/dsa/ |
D | slave.c | 1508 struct flow_block_cb *block_cb; in dsa_slave_setup_tc_block() local 1525 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in dsa_slave_setup_tc_block() 1526 if (IS_ERR(block_cb)) in dsa_slave_setup_tc_block() 1527 return PTR_ERR(block_cb); in dsa_slave_setup_tc_block() 1529 flow_block_cb_add(block_cb, f); in dsa_slave_setup_tc_block() 1530 list_add_tail(&block_cb->driver_list, &dsa_slave_block_cb_list); in dsa_slave_setup_tc_block() 1533 block_cb = flow_block_cb_lookup(f->block, cb, dev); in dsa_slave_setup_tc_block() 1534 if (!block_cb) in dsa_slave_setup_tc_block() 1537 flow_block_cb_remove(block_cb, f); in dsa_slave_setup_tc_block() 1538 list_del(&block_cb->driver_list); in dsa_slave_setup_tc_block()
|
/linux-6.1.9/drivers/net/ethernet/intel/ice/ |
D | ice_main.c | 81 void (*cleanup)(struct flow_block_cb *block_cb)); 8796 void (*cleanup)(struct flow_block_cb *block_cb)) in ice_indr_setup_tc_block() argument 8799 struct flow_block_cb *block_cb; in ice_indr_setup_tc_block() local 8823 block_cb = in ice_indr_setup_tc_block() 8830 if (IS_ERR(block_cb)) { in ice_indr_setup_tc_block() 8833 return PTR_ERR(block_cb); in ice_indr_setup_tc_block() 8835 flow_block_cb_add(block_cb, f); in ice_indr_setup_tc_block() 8836 list_add_tail(&block_cb->driver_list, &ice_block_cb_list); in ice_indr_setup_tc_block() 8843 block_cb = flow_block_cb_lookup(f->block, in ice_indr_setup_tc_block() 8846 if (!block_cb) in ice_indr_setup_tc_block() [all …]
|