X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fip_pipeline%2Fpipeline%2Fpipeline_flow_actions_be.c;h=33f1c411349c9772976e06a23ddcf070b5cec6c6;hb=0fe99cf73eec0426ef9cb5eb71c1b8b4de40162c;hp=11fcbb764e3062660c4c3d0ba8784cafab5de12d;hpb=760064838ec06cbdbe96375930237510e260d09e;p=dpdk.git diff --git a/examples/ip_pipeline/pipeline/pipeline_flow_actions_be.c b/examples/ip_pipeline/pipeline/pipeline_flow_actions_be.c index 11fcbb764e..33f1c41134 100644 --- a/examples/ip_pipeline/pipeline/pipeline_flow_actions_be.c +++ b/examples/ip_pipeline/pipeline/pipeline_flow_actions_be.c @@ -1,34 +1,5 @@ -/*- - * BSD LICENSE - * - * Copyright(c) 2010-2016 Intel Corporation. All rights reserved. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2016 Intel Corporation */ #include @@ -140,6 +111,7 @@ static pipeline_msg_req_handler custom_handlers[] = { */ struct meter_policer { struct rte_meter_trtcm meter; + struct rte_meter_trtcm_profile meter_profile; struct pipeline_fa_policer_params policer; struct pipeline_fa_policer_stats stats; }; @@ -156,8 +128,15 @@ flow_table_entry_set_meter(struct flow_table_entry *entry, { struct rte_meter_trtcm *meter = &entry->mp[meter_id].meter; struct rte_meter_trtcm_params *meter_params = ¶ms->m[meter_id]; + struct rte_meter_trtcm_profile *meter_profile = + &entry->mp[meter_id].meter_profile; + int status; - return rte_meter_trtcm_config(meter, meter_params); + status = rte_meter_trtcm_profile_config(meter_profile, meter_params); + if (status) + return status; + + return rte_meter_trtcm_config(meter, meter_profile); } static void @@ -231,11 +210,14 @@ pkt_work( enum rte_meter_color color = p->dscp[dscp].color; struct rte_meter_trtcm *meter = &entry->mp[tc].meter; + struct rte_meter_trtcm_profile *meter_profile = + &entry->mp[tc].meter_profile; struct pipeline_fa_policer_params *policer = &entry->mp[tc].policer; struct pipeline_fa_policer_stats *stats = &entry->mp[tc].stats; /* Read (entry), compute */ enum rte_meter_color color2 = rte_meter_trtcm_color_aware_check(meter, + meter_profile, time, total_length, color); @@ -313,42 +295,54 @@ pkt4_work( enum rte_meter_color color3 = p->dscp[dscp3].color; struct rte_meter_trtcm *meter0 = &entry0->mp[tc0].meter; + struct rte_meter_trtcm_profile *meter0_profile = + &entry0->mp[tc0].meter_profile; struct pipeline_fa_policer_params *policer0 = &entry0->mp[tc0].policer; struct pipeline_fa_policer_stats *stats0 = &entry0->mp[tc0].stats; struct rte_meter_trtcm *meter1 = &entry1->mp[tc1].meter; + struct rte_meter_trtcm_profile *meter1_profile = + &entry1->mp[tc1].meter_profile; struct pipeline_fa_policer_params *policer1 = &entry1->mp[tc1].policer; struct pipeline_fa_policer_stats *stats1 = &entry1->mp[tc1].stats; struct rte_meter_trtcm *meter2 = &entry2->mp[tc2].meter; + struct rte_meter_trtcm_profile *meter2_profile = + &entry2->mp[tc2].meter_profile; struct pipeline_fa_policer_params *policer2 = &entry2->mp[tc2].policer; struct pipeline_fa_policer_stats *stats2 = &entry2->mp[tc2].stats; struct rte_meter_trtcm *meter3 = &entry3->mp[tc3].meter; + struct rte_meter_trtcm_profile *meter3_profile = + &entry3->mp[tc3].meter_profile; struct pipeline_fa_policer_params *policer3 = &entry3->mp[tc3].policer; struct pipeline_fa_policer_stats *stats3 = &entry3->mp[tc3].stats; /* Read (entry), compute, write (entry) */ enum rte_meter_color color2_0 = rte_meter_trtcm_color_aware_check( meter0, + meter0_profile, time, total_length0, color0); enum rte_meter_color color2_1 = rte_meter_trtcm_color_aware_check( meter1, + meter1_profile, time, total_length1, color1); enum rte_meter_color color2_2 = rte_meter_trtcm_color_aware_check( meter2, + meter2_profile, time, total_length2, color2); enum rte_meter_color color2_3 = rte_meter_trtcm_color_aware_check( meter3, + meter3_profile, time, total_length3, color3);