| /Linux-v5.4/net/core/ |
| D | flow_offload.c | 174 struct flow_block_cb *block_cb; in flow_block_cb_alloc() local 176 block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL); in flow_block_cb_alloc() 177 if (!block_cb) in flow_block_cb_alloc() 180 block_cb->cb = cb; in flow_block_cb_alloc() 181 block_cb->cb_ident = cb_ident; in flow_block_cb_alloc() 182 block_cb->cb_priv = cb_priv; in flow_block_cb_alloc() 183 block_cb->release = release; in flow_block_cb_alloc() 185 return block_cb; in flow_block_cb_alloc() 189 void flow_block_cb_free(struct flow_block_cb *block_cb) in flow_block_cb_free() argument 191 if (block_cb->release) in flow_block_cb_free() [all …]
|
| /Linux-v5.4/drivers/net/ethernet/mscc/ |
| D | ocelot_tc.c | 136 struct flow_block_cb *block_cb; in ocelot_setup_tc_block() local 159 block_cb = flow_block_cb_alloc(cb, port, port, NULL); in ocelot_setup_tc_block() 160 if (IS_ERR(block_cb)) in ocelot_setup_tc_block() 161 return PTR_ERR(block_cb); in ocelot_setup_tc_block() 165 flow_block_cb_free(block_cb); in ocelot_setup_tc_block() 168 flow_block_cb_add(block_cb, f); in ocelot_setup_tc_block() 169 list_add_tail(&block_cb->driver_list, f->driver_block_list); in ocelot_setup_tc_block() 172 block_cb = flow_block_cb_lookup(f->block, cb, port); in ocelot_setup_tc_block() 173 if (!block_cb) in ocelot_setup_tc_block() 177 flow_block_cb_remove(block_cb, f); in ocelot_setup_tc_block() [all …]
|
| D | ocelot_flower.c | 307 struct flow_block_cb *block_cb; in ocelot_setup_tc_block_flower_bind() local 313 block_cb = flow_block_cb_lookup(f->block, in ocelot_setup_tc_block_flower_bind() 315 if (!block_cb) { in ocelot_setup_tc_block_flower_bind() 320 block_cb = flow_block_cb_alloc(ocelot_setup_tc_block_cb_flower, in ocelot_setup_tc_block_flower_bind() 323 if (IS_ERR(block_cb)) { in ocelot_setup_tc_block_flower_bind() 324 ret = PTR_ERR(block_cb); in ocelot_setup_tc_block_flower_bind() 327 flow_block_cb_add(block_cb, f); in ocelot_setup_tc_block_flower_bind() 328 list_add_tail(&block_cb->driver_list, f->driver_block_list); in ocelot_setup_tc_block_flower_bind() 330 port_block = flow_block_cb_priv(block_cb); in ocelot_setup_tc_block_flower_bind() 333 flow_block_cb_incref(block_cb); in ocelot_setup_tc_block_flower_bind() [all …]
|
| /Linux-v5.4/include/net/ |
| D | flow_offload.h | 316 void flow_block_cb_free(struct flow_block_cb *block_cb); 321 void *flow_block_cb_priv(struct flow_block_cb *block_cb); 322 void flow_block_cb_incref(struct flow_block_cb *block_cb); 323 unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb); 325 static inline void flow_block_cb_add(struct flow_block_cb *block_cb, in flow_block_cb_add() argument 328 list_add_tail(&block_cb->list, &offload->cb_list); in flow_block_cb_add() 331 static inline void flow_block_cb_remove(struct flow_block_cb *block_cb, in flow_block_cb_remove() argument 334 list_move(&block_cb->list, &offload->cb_list); in flow_block_cb_remove()
|
| /Linux-v5.4/net/netfilter/ |
| D | nf_tables_offload.c | 138 struct flow_block_cb *block_cb; in nft_setup_cb_call() local 141 list_for_each_entry(block_cb, &basechain->flow_block.cb_list, list) { in nft_setup_cb_call() 142 err = block_cb->cb(type, type_data, block_cb->cb_priv); in nft_setup_cb_call() 196 struct flow_block_cb *block_cb, *next; in nft_flow_offload_unbind() local 198 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nft_flow_offload_unbind() 199 list_del(&block_cb->list); in nft_flow_offload_unbind() 200 flow_block_cb_free(block_cb); in nft_flow_offload_unbind()
|
| /Linux-v5.4/drivers/net/ethernet/netronome/nfp/flower/ |
| D | offload.c | 1476 struct flow_block_cb *block_cb; in nfp_flower_setup_tc_block() local 1491 block_cb = flow_block_cb_alloc(nfp_flower_setup_tc_block_cb, in nfp_flower_setup_tc_block() 1493 if (IS_ERR(block_cb)) in nfp_flower_setup_tc_block() 1494 return PTR_ERR(block_cb); in nfp_flower_setup_tc_block() 1496 flow_block_cb_add(block_cb, f); in nfp_flower_setup_tc_block() 1497 list_add_tail(&block_cb->driver_list, &nfp_block_cb_list); in nfp_flower_setup_tc_block() 1500 block_cb = flow_block_cb_lookup(f->block, in nfp_flower_setup_tc_block() 1503 if (!block_cb) in nfp_flower_setup_tc_block() 1506 flow_block_cb_remove(block_cb, f); in nfp_flower_setup_tc_block() 1507 list_del(&block_cb->driver_list); in nfp_flower_setup_tc_block() [all …]
|
| /Linux-v5.4/net/dsa/ |
| D | slave.c | 998 struct flow_block_cb *block_cb; in dsa_slave_setup_tc_block() local 1015 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in dsa_slave_setup_tc_block() 1016 if (IS_ERR(block_cb)) in dsa_slave_setup_tc_block() 1017 return PTR_ERR(block_cb); in dsa_slave_setup_tc_block() 1019 flow_block_cb_add(block_cb, f); in dsa_slave_setup_tc_block() 1020 list_add_tail(&block_cb->driver_list, &dsa_slave_block_cb_list); in dsa_slave_setup_tc_block() 1023 block_cb = flow_block_cb_lookup(f->block, cb, dev); in dsa_slave_setup_tc_block() 1024 if (!block_cb) in dsa_slave_setup_tc_block() 1027 flow_block_cb_remove(block_cb, f); in dsa_slave_setup_tc_block() 1028 list_del(&block_cb->driver_list); in dsa_slave_setup_tc_block()
|
| /Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/ |
| D | en_rep.c | 764 struct flow_block_cb *block_cb; in mlx5e_rep_indr_setup_tc_block() local 787 block_cb = flow_block_cb_alloc(mlx5e_rep_indr_setup_block_cb, in mlx5e_rep_indr_setup_tc_block() 790 if (IS_ERR(block_cb)) { in mlx5e_rep_indr_setup_tc_block() 793 return PTR_ERR(block_cb); in mlx5e_rep_indr_setup_tc_block() 795 flow_block_cb_add(block_cb, f); in mlx5e_rep_indr_setup_tc_block() 796 list_add_tail(&block_cb->driver_list, &mlx5e_block_cb_list); in mlx5e_rep_indr_setup_tc_block() 804 block_cb = flow_block_cb_lookup(f->block, in mlx5e_rep_indr_setup_tc_block() 807 if (!block_cb) in mlx5e_rep_indr_setup_tc_block() 810 flow_block_cb_remove(block_cb, f); in mlx5e_rep_indr_setup_tc_block() 811 list_del(&block_cb->driver_list); in mlx5e_rep_indr_setup_tc_block()
|
| /Linux-v5.4/net/sched/ |
| D | cls_api.c | 1487 struct flow_block_cb *block_cb, *next; in tcf_block_bind() local 1492 list_for_each_entry(block_cb, &bo->cb_list, list) { in tcf_block_bind() 1493 err = tcf_block_playback_offloads(block, block_cb->cb, in tcf_block_bind() 1494 block_cb->cb_priv, true, in tcf_block_bind() 1509 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in tcf_block_bind() 1511 list_del(&block_cb->list); in tcf_block_bind() 1512 tcf_block_playback_offloads(block, block_cb->cb, in tcf_block_bind() 1513 block_cb->cb_priv, false, in tcf_block_bind() 1519 flow_block_cb_free(block_cb); in tcf_block_bind() 1528 struct flow_block_cb *block_cb, *next; in tcf_block_unbind() local [all …]
|
| /Linux-v5.4/drivers/net/ethernet/mellanox/mlxsw/ |
| D | spectrum.c | 1608 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_flower_bind() local 1612 block_cb = flow_block_cb_lookup(f->block, in mlxsw_sp_setup_tc_block_flower_bind() 1615 if (!block_cb) { in mlxsw_sp_setup_tc_block_flower_bind() 1619 block_cb = flow_block_cb_alloc(mlxsw_sp_setup_tc_block_cb_flower, in mlxsw_sp_setup_tc_block_flower_bind() 1622 if (IS_ERR(block_cb)) { in mlxsw_sp_setup_tc_block_flower_bind() 1624 err = PTR_ERR(block_cb); in mlxsw_sp_setup_tc_block_flower_bind() 1629 acl_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_flower_bind() 1631 flow_block_cb_incref(block_cb); in mlxsw_sp_setup_tc_block_flower_bind() 1643 flow_block_cb_add(block_cb, f); in mlxsw_sp_setup_tc_block_flower_bind() 1644 list_add_tail(&block_cb->driver_list, &mlxsw_sp_block_cb_list); in mlxsw_sp_setup_tc_block_flower_bind() [all …]
|