/linux/drivers/net/ethernet/marvell/prestera/ |
A D | prestera_flow.c | 76 struct flow_block_cb *block_cb; in prestera_flow_block_get() local 80 if (!block_cb) { in prestera_flow_block_get() 88 if (IS_ERR(block_cb)) { in prestera_flow_block_get() 90 return ERR_CAST(block_cb); in prestera_flow_block_get() 93 block->block_cb = block_cb; in prestera_flow_block_get() 100 flow_block_cb_incref(block_cb); in prestera_flow_block_get() 107 struct flow_block_cb *block_cb = block->block_cb; in prestera_flow_block_put() local 112 flow_block_cb_free(block_cb); in prestera_flow_block_put() 121 struct flow_block_cb *block_cb; in prestera_setup_flow_block_bind() local 129 block_cb = block->block_cb; in prestera_setup_flow_block_bind() [all …]
|
A D | prestera_acl.h | 47 struct flow_block_cb *block_cb; member
|
/linux/net/core/ |
A D | flow_offload.c | 211 block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL); in flow_block_cb_alloc() 212 if (!block_cb) in flow_block_cb_alloc() 215 block_cb->cb = cb; in flow_block_cb_alloc() 220 return block_cb; in flow_block_cb_alloc() 226 if (block_cb->release) in flow_block_cb_free() 227 block_cb->release(block_cb->cb_priv); in flow_block_cb_free() 229 kfree(block_cb); in flow_block_cb_free() 241 return block_cb; in flow_block_cb_lookup() 256 block_cb->refcnt++; in flow_block_cb_incref() 309 if (!block_cb) in flow_block_cb_setup_simple() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlxsw/ |
A D | spectrum_flow.c | 207 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_bind() local 213 if (!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() 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() 248 flow_block_cb_free(block_cb); in mlxsw_sp_setup_tc_block_bind() 258 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_unbind() local 263 if (!block_cb) in mlxsw_sp_setup_tc_block_unbind() 275 flow_block_cb_remove(block_cb, f); in mlxsw_sp_setup_tc_block_unbind() [all …]
|
A D | spectrum_qdisc.c | 2178 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_qevent_bind() local 2185 if (!block_cb) { 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() 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() 2245 flow_block_cb_free(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 2256 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_qevent_unbind() local 2259 if (!block_cb) in mlxsw_sp_setup_tc_block_qevent_unbind() 2273 flow_block_cb_remove(block_cb, f); in mlxsw_sp_setup_tc_block_qevent_unbind() [all …]
|
/linux/include/net/netfilter/ |
A D | nf_flow_table.h | 217 struct flow_block_cb *block_cb; in nf_flow_table_offload_add_cb() local 221 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_add_cb() 222 if (block_cb) { in nf_flow_table_offload_add_cb() 228 if (IS_ERR(block_cb)) { in nf_flow_table_offload_add_cb() 229 err = PTR_ERR(block_cb); in nf_flow_table_offload_add_cb() 233 list_add_tail(&block_cb->list, &block->cb_list); in nf_flow_table_offload_add_cb() 245 struct flow_block_cb *block_cb; in nf_flow_table_offload_del_cb() local 248 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_del_cb() 249 if (block_cb) { in nf_flow_table_offload_del_cb() 250 list_del(&block_cb->list); in nf_flow_table_offload_del_cb() [all …]
|
/linux/include/net/ |
A D | flow_offload.h | 470 void (*cleanup)(struct flow_block_cb *block_cb); 494 void (*cleanup)(struct flow_block_cb *block_cb)); 495 void flow_block_cb_free(struct flow_block_cb *block_cb); 500 void *flow_block_cb_priv(struct flow_block_cb *block_cb); 501 void flow_block_cb_incref(struct flow_block_cb *block_cb); 507 list_add_tail(&block_cb->list, &offload->cb_list); in flow_block_cb_add() 513 list_move(&block_cb->list, &offload->cb_list); in flow_block_cb_remove() 519 list_del(&block_cb->indr.list); in flow_indr_block_cb_remove() 520 list_move(&block_cb->list, &offload->cb_list); in flow_indr_block_cb_remove() 569 void (*cleanup)(struct flow_block_cb *block_cb)); [all …]
|
/linux/drivers/net/ethernet/mediatek/ |
A D | mtk_ppe_offload.c | 442 struct flow_block_cb *block_cb; in mtk_eth_setup_tc_block() local 456 block_cb = flow_block_cb_lookup(f->block, cb, dev); in mtk_eth_setup_tc_block() 457 if (block_cb) { in mtk_eth_setup_tc_block() 458 flow_block_cb_incref(block_cb); in mtk_eth_setup_tc_block() 462 if (IS_ERR(block_cb)) in mtk_eth_setup_tc_block() 463 return PTR_ERR(block_cb); in mtk_eth_setup_tc_block() 465 flow_block_cb_add(block_cb, f); in mtk_eth_setup_tc_block() 470 if (!block_cb) in mtk_eth_setup_tc_block() 473 if (flow_block_cb_decref(block_cb)) { in mtk_eth_setup_tc_block() 474 flow_block_cb_remove(block_cb, f); in mtk_eth_setup_tc_block() [all …]
|
/linux/net/netfilter/ |
A D | nf_tables_offload.c | 199 struct flow_block_cb *block_cb; in nft_setup_cb_call() local 202 list_for_each_entry(block_cb, cb_list, list) { in nft_setup_cb_call() 203 err = block_cb->cb(type, type_data, block_cb->cb_priv); in nft_setup_cb_call() 301 struct flow_block_cb *block_cb, *next; in nft_flow_offload_unbind() local 315 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nft_flow_offload_unbind() 316 list_del(&block_cb->list); in nft_flow_offload_unbind() 317 flow_block_cb_free(block_cb); in nft_flow_offload_unbind() 379 struct nft_base_chain *basechain = block_cb->indr.data; in nft_indr_block_cleanup() 380 struct net_device *dev = block_cb->indr.dev; in nft_indr_block_cleanup() 390 list_del(&block_cb->driver_list); in nft_indr_block_cleanup() [all …]
|
A D | nf_flow_table_offload.c | 833 struct flow_block_cb *block_cb; in nf_flow_offload_tuple() local 844 list_for_each_entry(block_cb, block_cb_list, list) { in nf_flow_offload_tuple() 845 err = block_cb->cb(TC_SETUP_CLSFLOWER, &cls_flow, in nf_flow_offload_tuple() 846 block_cb->cb_priv); in nf_flow_offload_tuple() 1066 struct flow_block_cb *block_cb, *next; in nf_flow_table_block_setup() local 1075 list_del(&block_cb->list); in nf_flow_table_block_setup() 1076 flow_block_cb_free(block_cb); in nf_flow_table_block_setup() 1106 struct net_device *dev = block_cb->indr.dev; in nf_flow_table_indr_cleanup() 1110 list_del(&block_cb->list); in nf_flow_table_indr_cleanup() 1111 list_del(&block_cb->driver_list); in nf_flow_table_indr_cleanup() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
A D | tc.c | 435 void (*cleanup)(struct flow_block_cb *block_cb)) in mlx5e_rep_indr_setup_block() argument 441 struct flow_block_cb *block_cb; in mlx5e_rep_indr_setup_block() local 487 if (IS_ERR(block_cb)) { in mlx5e_rep_indr_setup_block() 490 return PTR_ERR(block_cb); in mlx5e_rep_indr_setup_block() 492 flow_block_cb_add(block_cb, f); in mlx5e_rep_indr_setup_block() 493 list_add_tail(&block_cb->driver_list, &mlx5e_block_cb_list); in mlx5e_rep_indr_setup_block() 501 block_cb = flow_block_cb_lookup(f->block, setup_cb, indr_priv); in mlx5e_rep_indr_setup_block() 502 if (!block_cb) in mlx5e_rep_indr_setup_block() 505 flow_indr_block_cb_remove(block_cb, f); in mlx5e_rep_indr_setup_block() 506 list_del(&block_cb->driver_list); in mlx5e_rep_indr_setup_block() [all …]
|
/linux/drivers/net/ethernet/netronome/nfp/flower/ |
A D | offload.c | 1708 struct flow_block_cb *block_cb; in nfp_flower_setup_tc_block() local 1725 if (IS_ERR(block_cb)) in nfp_flower_setup_tc_block() 1726 return PTR_ERR(block_cb); in nfp_flower_setup_tc_block() 1728 flow_block_cb_add(block_cb, f); in nfp_flower_setup_tc_block() 1735 if (!block_cb) in nfp_flower_setup_tc_block() 1739 list_del(&block_cb->driver_list); in nfp_flower_setup_tc_block() 1806 struct flow_block_cb *block_cb; in nfp_flower_setup_indr_tc_block() local 1835 if (IS_ERR(block_cb)) { in nfp_flower_setup_indr_tc_block() 1838 return PTR_ERR(block_cb); in nfp_flower_setup_indr_tc_block() 1841 flow_block_cb_add(block_cb, f); in nfp_flower_setup_indr_tc_block() [all …]
|
A D | main.h | 537 void (*cleanup)(struct flow_block_cb *block_cb));
|
/linux/net/sched/ |
A D | cls_api.c | 653 block_cb->indr.binder_type, in tc_block_indr_cleanup() 658 list_del(&block_cb->driver_list); in tc_block_indr_cleanup() 1452 block_cb->cb_priv, true, in tcf_block_bind() 1469 list_del(&block_cb->list); in tcf_block_bind() 1471 block_cb->cb_priv, false, in tcf_block_bind() 1477 flow_block_cb_free(block_cb); in tcf_block_bind() 1492 block_cb->cb_priv, false, in tcf_block_unbind() 1495 list_del(&block_cb->list); in tcf_block_unbind() 1496 flow_block_cb_free(block_cb); in tcf_block_unbind() 3235 struct flow_block_cb *block_cb; in __tc_setup_cb_call() local [all …]
|
A D | act_ct.c | 325 struct flow_block_cb *block_cb, *tmp_cb; in tcf_ct_flow_table_cleanup_work() local 336 list_for_each_entry_safe(block_cb, tmp_cb, &block->cb_list, list) { in tcf_ct_flow_table_cleanup_work() 337 list_del(&block_cb->list); in tcf_ct_flow_table_cleanup_work() 338 flow_block_cb_free(block_cb); in tcf_ct_flow_table_cleanup_work()
|
/linux/drivers/net/ethernet/freescale/dpaa2/ |
A D | dpaa2-switch.c | 1301 struct flow_block_cb *block_cb; in dpaa2_switch_setup_tc_block_bind() local 1309 if (!block_cb) { in dpaa2_switch_setup_tc_block_bind() 1318 if (IS_ERR(block_cb)) in dpaa2_switch_setup_tc_block_bind() 1319 return PTR_ERR(block_cb); in dpaa2_switch_setup_tc_block_bind() 1326 flow_block_cb_incref(block_cb); in dpaa2_switch_setup_tc_block_bind() 1332 flow_block_cb_add(block_cb, f); in dpaa2_switch_setup_tc_block_bind() 1341 flow_block_cb_free(block_cb); in dpaa2_switch_setup_tc_block_bind() 1351 struct flow_block_cb *block_cb; in dpaa2_switch_setup_tc_block_unbind() local 1357 if (!block_cb) in dpaa2_switch_setup_tc_block_unbind() 1363 flow_block_cb_remove(block_cb, f); in dpaa2_switch_setup_tc_block_unbind() [all …]
|
/linux/drivers/net/ethernet/mscc/ |
A D | ocelot_net.c | 337 struct flow_block_cb *block_cb; in ocelot_setup_tc_block() local 356 block_cb = flow_block_cb_alloc(cb, priv, priv, NULL); in ocelot_setup_tc_block() 357 if (IS_ERR(block_cb)) in ocelot_setup_tc_block() 358 return PTR_ERR(block_cb); in ocelot_setup_tc_block() 360 flow_block_cb_add(block_cb, f); in ocelot_setup_tc_block() 361 list_add_tail(&block_cb->driver_list, f->driver_block_list); in ocelot_setup_tc_block() 364 block_cb = flow_block_cb_lookup(f->block, cb, priv); in ocelot_setup_tc_block() 365 if (!block_cb) in ocelot_setup_tc_block() 368 flow_block_cb_remove(block_cb, f); in ocelot_setup_tc_block() 369 list_del(&block_cb->driver_list); in ocelot_setup_tc_block()
|
/linux/drivers/net/ethernet/broadcom/bnxt/ |
A 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 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() 1947 list_del(&block_cb->driver_list); in bnxt_tc_setup_indr_block() [all …]
|
/linux/net/dsa/ |
A D | slave.c | 1279 struct flow_block_cb *block_cb; in dsa_slave_setup_tc_block() local 1296 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in dsa_slave_setup_tc_block() 1297 if (IS_ERR(block_cb)) in dsa_slave_setup_tc_block() 1298 return PTR_ERR(block_cb); in dsa_slave_setup_tc_block() 1300 flow_block_cb_add(block_cb, f); in dsa_slave_setup_tc_block() 1301 list_add_tail(&block_cb->driver_list, &dsa_slave_block_cb_list); in dsa_slave_setup_tc_block() 1304 block_cb = flow_block_cb_lookup(f->block, cb, dev); in dsa_slave_setup_tc_block() 1305 if (!block_cb) in dsa_slave_setup_tc_block() 1308 flow_block_cb_remove(block_cb, f); in dsa_slave_setup_tc_block() 1309 list_del(&block_cb->driver_list); in dsa_slave_setup_tc_block()
|
/linux/drivers/net/ethernet/intel/ice/ |
A D | ice_main.c | 65 void (*cleanup)(struct flow_block_cb *block_cb)); 8333 void (*cleanup)(struct flow_block_cb *block_cb)) in ice_indr_setup_tc_block() argument 8336 struct flow_block_cb *block_cb; in ice_indr_setup_tc_block() local 8360 block_cb = in ice_indr_setup_tc_block() 8367 if (IS_ERR(block_cb)) { in ice_indr_setup_tc_block() 8370 return PTR_ERR(block_cb); in ice_indr_setup_tc_block() 8372 flow_block_cb_add(block_cb, f); in ice_indr_setup_tc_block() 8380 block_cb = flow_block_cb_lookup(f->block, in ice_indr_setup_tc_block() 8383 if (!block_cb) in ice_indr_setup_tc_block() 8386 flow_indr_block_cb_remove(block_cb, f); in ice_indr_setup_tc_block() [all …]
|