Lines Matching refs:sample_flow

342 add_post_rule(struct mlx5_eswitch *esw, struct mlx5e_sample_flow *sample_flow,
374 sample_flow->post_attr = post_attr;
391 sample_flow->post_rule = mlx5_eswitch_add_offloaded_rule(esw, spec, post_attr);
392 if (IS_ERR(sample_flow->post_rule)) {
393 err = PTR_ERR(sample_flow->post_rule);
407 del_post_rule(struct mlx5_eswitch *esw, struct mlx5e_sample_flow *sample_flow,
413 mlx5_eswitch_del_offloaded_rule(esw, sample_flow->post_rule, sample_flow->post_attr);
414 kfree(sample_flow->post_attr);
477 struct mlx5e_sample_flow *sample_flow;
488 sample_flow = kzalloc(sizeof(*sample_flow), GFP_KERNEL);
489 if (!sample_flow)
492 sample_attr->sample_flow = sample_flow;
506 err = add_post_rule(esw, sample_flow, spec, attr, &default_tbl_id);
512 sample_flow->sampler = sampler_get(tc_psample, sample_attr->rate, default_tbl_id);
513 if (IS_ERR(sample_flow->sampler)) {
514 err = PTR_ERR(sample_flow->sampler);
517 sample_attr->sampler_id = sample_flow->sampler->sampler_id;
532 sample_flow->restore = sample_restore_get(tc_psample, obj_id, mod_acts);
533 if (IS_ERR(sample_flow->restore)) {
534 err = PTR_ERR(sample_flow->restore);
552 pre_attr->modify_hdr = sample_flow->restore->modify_hdr;
563 sample_flow->pre_rule = mlx5_eswitch_add_offloaded_rule(esw, spec, pre_attr);
564 if (IS_ERR(sample_flow->pre_rule)) {
565 err = PTR_ERR(sample_flow->pre_rule);
568 sample_flow->pre_attr = pre_attr;
570 return sample_flow->pre_rule;
575 sample_restore_put(tc_psample, sample_flow->restore);
579 sampler_put(tc_psample, sample_flow->sampler);
581 if (sample_flow->post_rule)
582 del_post_rule(esw, sample_flow, attr);
584 kfree(sample_flow);
593 struct mlx5e_sample_flow *sample_flow;
603 sample_flow = attr->sample_attr.sample_flow;
604 mlx5_eswitch_del_offloaded_rule(esw, sample_flow->pre_rule, sample_flow->pre_attr);
606 sample_restore_put(tc_psample, sample_flow->restore);
608 sampler_put(tc_psample, sample_flow->sampler);
609 if (sample_flow->post_rule)
610 del_post_rule(esw, sample_flow, attr);
612 kfree(sample_flow->pre_attr);
613 kfree(sample_flow);