/Linux-v5.10/net/core/ |
D | flow_offload.c | 209 struct flow_block_cb *block_cb; in flow_block_cb_alloc() local 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() 216 block_cb->cb_ident = cb_ident; in flow_block_cb_alloc() 217 block_cb->cb_priv = cb_priv; in flow_block_cb_alloc() 218 block_cb->release = release; in flow_block_cb_alloc() 220 return block_cb; in flow_block_cb_alloc() 224 void flow_block_cb_free(struct flow_block_cb *block_cb) in flow_block_cb_free() argument 226 if (block_cb->release) in flow_block_cb_free() [all …]
|
/Linux-v5.10/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 | 1714 struct flow_block_cb *block_cb; in mlxsw_sp_setup_tc_block_qevent_bind() local 1719 block_cb = flow_block_cb_lookup(f->block, mlxsw_sp_qevent_block_cb, mlxsw_sp); in mlxsw_sp_setup_tc_block_qevent_bind() 1720 if (!block_cb) { in mlxsw_sp_setup_tc_block_qevent_bind() 1724 block_cb = flow_block_cb_alloc(mlxsw_sp_qevent_block_cb, mlxsw_sp, qevent_block, in mlxsw_sp_setup_tc_block_qevent_bind() 1726 if (IS_ERR(block_cb)) { in mlxsw_sp_setup_tc_block_qevent_bind() 1728 return PTR_ERR(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 1732 qevent_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 1734 flow_block_cb_incref(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind() 1763 flow_block_cb_add(block_cb, f); in mlxsw_sp_setup_tc_block_qevent_bind() 1764 list_add_tail(&block_cb->driver_list, &mlxsw_sp_qevent_block_cb_list); in mlxsw_sp_setup_tc_block_qevent_bind() [all …]
|
/Linux-v5.10/include/net/netfilter/ |
D | nf_flow_table.h | 169 struct flow_block_cb *block_cb; in nf_flow_table_offload_add_cb() local 173 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_add_cb() 174 if (block_cb) { in nf_flow_table_offload_add_cb() 179 block_cb = flow_block_cb_alloc(cb, cb_priv, cb_priv, NULL); in nf_flow_table_offload_add_cb() 180 if (IS_ERR(block_cb)) { in nf_flow_table_offload_add_cb() 181 err = PTR_ERR(block_cb); in nf_flow_table_offload_add_cb() 185 list_add_tail(&block_cb->list, &block->cb_list); in nf_flow_table_offload_add_cb() 197 struct flow_block_cb *block_cb; in nf_flow_table_offload_del_cb() local 200 block_cb = flow_block_cb_lookup(block, cb, cb_priv); in nf_flow_table_offload_del_cb() 201 if (block_cb) { in nf_flow_table_offload_del_cb() [all …]
|
/Linux-v5.10/include/net/ |
D | flow_offload.h | 462 void (*cleanup)(struct flow_block_cb *block_cb); 486 void (*cleanup)(struct flow_block_cb *block_cb)); 487 void flow_block_cb_free(struct flow_block_cb *block_cb); 492 void *flow_block_cb_priv(struct flow_block_cb *block_cb); 493 void flow_block_cb_incref(struct flow_block_cb *block_cb); 494 unsigned int flow_block_cb_decref(struct flow_block_cb *block_cb); 496 static inline void flow_block_cb_add(struct flow_block_cb *block_cb, in flow_block_cb_add() argument 499 list_add_tail(&block_cb->list, &offload->cb_list); in flow_block_cb_add() 502 static inline void flow_block_cb_remove(struct flow_block_cb *block_cb, in flow_block_cb_remove() argument 505 list_move(&block_cb->list, &offload->cb_list); in flow_block_cb_remove() [all …]
|
/Linux-v5.10/net/netfilter/ |
D | nf_tables_offload.c | 158 struct flow_block_cb *block_cb; in nft_setup_cb_call() local 161 list_for_each_entry(block_cb, cb_list, list) { in nft_setup_cb_call() 162 err = block_cb->cb(type, type_data, block_cb->cb_priv); in nft_setup_cb_call() 230 struct flow_block_cb *block_cb, *next; in nft_flow_offload_unbind() local 244 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nft_flow_offload_unbind() 245 list_del(&block_cb->list); in nft_flow_offload_unbind() 246 flow_block_cb_free(block_cb); in nft_flow_offload_unbind() 305 static void nft_indr_block_cleanup(struct flow_block_cb *block_cb) in nft_indr_block_cleanup() argument 307 struct nft_base_chain *basechain = block_cb->indr.data; in nft_indr_block_cleanup() 308 struct net_device *dev = block_cb->indr.dev; in nft_indr_block_cleanup() [all …]
|
D | nf_flow_table_offload.c | 685 struct flow_block_cb *block_cb; in nf_flow_offload_tuple() local 696 list_for_each_entry(block_cb, block_cb_list, list) { in nf_flow_offload_tuple() 697 err = block_cb->cb(TC_SETUP_CLSFLOWER, &cls_flow, in nf_flow_offload_tuple() 698 block_cb->cb_priv); in nf_flow_offload_tuple() 909 struct flow_block_cb *block_cb, *next; in nf_flow_table_block_setup() local 917 list_for_each_entry_safe(block_cb, next, &bo->cb_list, list) { in nf_flow_table_block_setup() 918 list_del(&block_cb->list); in nf_flow_table_block_setup() 919 flow_block_cb_free(block_cb); in nf_flow_table_block_setup() 945 static void nf_flow_table_indr_cleanup(struct flow_block_cb *block_cb) in nf_flow_table_indr_cleanup() argument 947 struct nf_flowtable *flowtable = block_cb->indr.data; in nf_flow_table_indr_cleanup() [all …]
|
/Linux-v5.10/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
D | tc.c | 416 void (*cleanup)(struct flow_block_cb *block_cb)) in mlx5e_rep_indr_setup_block() argument 420 struct flow_block_cb *block_cb; in mlx5e_rep_indr_setup_block() local 447 block_cb = flow_indr_block_cb_alloc(setup_cb, indr_priv, indr_priv, in mlx5e_rep_indr_setup_block() 451 if (IS_ERR(block_cb)) { in mlx5e_rep_indr_setup_block() 454 return PTR_ERR(block_cb); in mlx5e_rep_indr_setup_block() 456 flow_block_cb_add(block_cb, f); in mlx5e_rep_indr_setup_block() 457 list_add_tail(&block_cb->driver_list, &mlx5e_block_cb_list); in mlx5e_rep_indr_setup_block() 465 block_cb = flow_block_cb_lookup(f->block, setup_cb, indr_priv); in mlx5e_rep_indr_setup_block() 466 if (!block_cb) in mlx5e_rep_indr_setup_block() 469 flow_indr_block_cb_remove(block_cb, f); in mlx5e_rep_indr_setup_block() [all …]
|
/Linux-v5.10/drivers/net/ethernet/netronome/nfp/flower/ |
D | offload.c | 1611 struct flow_block_cb *block_cb; in nfp_flower_setup_tc_block() local 1626 block_cb = flow_block_cb_alloc(nfp_flower_setup_tc_block_cb, in nfp_flower_setup_tc_block() 1628 if (IS_ERR(block_cb)) in nfp_flower_setup_tc_block() 1629 return PTR_ERR(block_cb); in nfp_flower_setup_tc_block() 1631 flow_block_cb_add(block_cb, f); in nfp_flower_setup_tc_block() 1632 list_add_tail(&block_cb->driver_list, &nfp_block_cb_list); in nfp_flower_setup_tc_block() 1635 block_cb = flow_block_cb_lookup(f->block, in nfp_flower_setup_tc_block() 1638 if (!block_cb) in nfp_flower_setup_tc_block() 1641 flow_block_cb_remove(block_cb, f); in nfp_flower_setup_tc_block() 1642 list_del(&block_cb->driver_list); in nfp_flower_setup_tc_block() [all …]
|
D | main.h | 468 void (*cleanup)(struct flow_block_cb *block_cb));
|
/Linux-v5.10/drivers/net/ethernet/mscc/ |
D | ocelot_net.c | 147 struct flow_block_cb *block_cb; in ocelot_setup_tc_block() local 166 block_cb = flow_block_cb_alloc(cb, priv, priv, NULL); in ocelot_setup_tc_block() 167 if (IS_ERR(block_cb)) in ocelot_setup_tc_block() 168 return PTR_ERR(block_cb); in ocelot_setup_tc_block() 170 flow_block_cb_add(block_cb, f); in ocelot_setup_tc_block() 171 list_add_tail(&block_cb->driver_list, f->driver_block_list); in ocelot_setup_tc_block() 174 block_cb = flow_block_cb_lookup(f->block, cb, priv); in ocelot_setup_tc_block() 175 if (!block_cb) in ocelot_setup_tc_block() 178 flow_block_cb_remove(block_cb, f); in ocelot_setup_tc_block() 179 list_del(&block_cb->driver_list); in ocelot_setup_tc_block()
|
/Linux-v5.10/net/sched/ |
D | cls_api.c | 643 static void tc_block_indr_cleanup(struct flow_block_cb *block_cb) in tc_block_indr_cleanup() argument 645 struct tcf_block *block = block_cb->indr.data; in tc_block_indr_cleanup() 646 struct net_device *dev = block_cb->indr.dev; in tc_block_indr_cleanup() 647 struct Qdisc *sch = block_cb->indr.sch; in tc_block_indr_cleanup() 652 block_cb->indr.binder_type, in tc_block_indr_cleanup() 657 list_del(&block_cb->driver_list); in tc_block_indr_cleanup() 658 list_move(&block_cb->list, &bo.cb_list); in tc_block_indr_cleanup() 1445 struct flow_block_cb *block_cb, *next; in tcf_block_bind() local 1450 list_for_each_entry(block_cb, &bo->cb_list, list) { in tcf_block_bind() 1451 err = tcf_block_playback_offloads(block, block_cb->cb, in tcf_block_bind() [all …]
|
/Linux-v5.10/drivers/net/ethernet/broadcom/bnxt/ |
D | bnxt_tc.c | 1893 void (*cleanup)(struct flow_block_cb *block_cb)) in bnxt_tc_setup_indr_block() argument 1896 struct flow_block_cb *block_cb; in bnxt_tc_setup_indr_block() local 1911 block_cb = flow_indr_block_cb_alloc(bnxt_tc_setup_indr_block_cb, in bnxt_tc_setup_indr_block() 1915 if (IS_ERR(block_cb)) { in bnxt_tc_setup_indr_block() 1918 return PTR_ERR(block_cb); in bnxt_tc_setup_indr_block() 1921 flow_block_cb_add(block_cb, f); in bnxt_tc_setup_indr_block() 1922 list_add_tail(&block_cb->driver_list, &bnxt_block_cb_list); in bnxt_tc_setup_indr_block() 1929 block_cb = flow_block_cb_lookup(f->block, in bnxt_tc_setup_indr_block() 1932 if (!block_cb) in bnxt_tc_setup_indr_block() 1935 flow_indr_block_cb_remove(block_cb, f); in bnxt_tc_setup_indr_block() [all …]
|
/Linux-v5.10/net/dsa/ |
D | slave.c | 1168 struct flow_block_cb *block_cb; in dsa_slave_setup_tc_block() local 1185 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in dsa_slave_setup_tc_block() 1186 if (IS_ERR(block_cb)) in dsa_slave_setup_tc_block() 1187 return PTR_ERR(block_cb); in dsa_slave_setup_tc_block() 1189 flow_block_cb_add(block_cb, f); in dsa_slave_setup_tc_block() 1190 list_add_tail(&block_cb->driver_list, &dsa_slave_block_cb_list); in dsa_slave_setup_tc_block() 1193 block_cb = flow_block_cb_lookup(f->block, cb, dev); in dsa_slave_setup_tc_block() 1194 if (!block_cb) in dsa_slave_setup_tc_block() 1197 flow_block_cb_remove(block_cb, f); in dsa_slave_setup_tc_block() 1198 list_del(&block_cb->driver_list); in dsa_slave_setup_tc_block()
|