From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 18E1B1B61D for ; Fri, 13 Oct 2017 04:33:11 +0200 (CEST) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga105.jf.intel.com with ESMTP; 12 Oct 2017 19:33:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,369,1503385200"; d="scan'208";a="138003022" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga004.jf.intel.com with ESMTP; 12 Oct 2017 19:33:10 -0700 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 12 Oct 2017 19:33:10 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 12 Oct 2017 19:33:10 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.98]) with mapi id 14.03.0319.002; Fri, 13 Oct 2017 10:33:08 +0800 From: "Wu, Jingjing" To: "Singh, Jasvinder" , "dev@dpdk.org" CC: "Dumitrescu, Cristian" , "De Lara Guarch, Pablo" , "Pei, Yulong" Thread-Topic: [PATCH v7 2/3] app/test-pmd: add CLI for shaper and wred profiles Thread-Index: AQHTQnFIRcu5D2eVpUaT7ikeLLA6kKLhEOQw Date: Fri, 13 Oct 2017 02:33:07 +0000 Message-ID: <9BB6961774997848B5B42BEC655768F810E94668@SHSMSX103.ccr.corp.intel.com> References: <20171009190750.6697-1-jasvinder.singh@intel.com> <20171011092612.13369-1-jasvinder.singh@intel.com> <20171011092612.13369-2-jasvinder.singh@intel.com> In-Reply-To: <20171011092612.13369-2-jasvinder.singh@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v7 2/3] app/test-pmd: add CLI for shaper and wred profiles X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Oct 2017 02:33:12 -0000 > +/* *** Add Port TM Node WRED Profile *** */ struct > +cmd_add_port_tm_node_wred_profile_result { > + cmdline_fixed_string_t add; > + cmdline_fixed_string_t port; > + cmdline_fixed_string_t tm; > + cmdline_fixed_string_t node; > + cmdline_fixed_string_t wred; > + cmdline_fixed_string_t profile; > + uint16_t port_id; > + uint32_t wred_profile_id; > + cmdline_fixed_string_t color_g; > + uint16_t min_th_g; > + uint16_t max_th_g; > + uint16_t maxp_inv_g; > + uint16_t wq_log2_g; > + cmdline_fixed_string_t color_y; > + uint16_t min_th_y; > + uint16_t max_th_y; > + uint16_t maxp_inv_y; > + uint16_t wq_log2_y; > + cmdline_fixed_string_t color_r; > + uint16_t min_th_r; > + uint16_t max_th_r; > + uint16_t maxp_inv_r; > + uint16_t wq_log2_r; > +}; > + > +cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_add =3D > + TOKEN_STRING_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, add, > "add"); > +cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_port =3D > + TOKEN_STRING_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, port, > "port"); > +cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_tm =3D > + TOKEN_STRING_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, tm, "tm"); > +cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_node =3D > + TOKEN_STRING_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, node, > "node"); > +cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_wred =3D > + TOKEN_STRING_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, wred, > "wred"); > +cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_profile > =3D > + TOKEN_STRING_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + profile, "profile"); > +cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_port_id > =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + port_id, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_wred_profile_id =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + wred_profile_id, UINT32); > +cmdline_parse_token_string_t > cmd_add_port_tm_node_wred_profile_color_g =3D > + TOKEN_STRING_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + color_g, "G#g"); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_min_th_g =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + min_th_g, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_max_th_g =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + max_th_g, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_maxp_inv_g =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + maxp_inv_g, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_wq_log2_g =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + wq_log2_g, UINT16); > +cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_y > =3D > + TOKEN_STRING_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + color_y, "Y#y"); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_min_th_y =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + min_th_y, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_max_th_y =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + max_th_y, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_maxp_inv_y =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + maxp_inv_y, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_wq_log2_y =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + wq_log2_y, UINT16); > +cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_r > =3D > + TOKEN_STRING_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + color_r, "R#r"); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_min_th_r =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + min_th_r, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_max_th_r =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + max_th_r, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_maxp_inv_r =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + maxp_inv_r, UINT16); > +cmdline_parse_token_num_t > cmd_add_port_tm_node_wred_profile_wq_log2_r =3D > + TOKEN_NUM_INITIALIZER( > + struct cmd_add_port_tm_node_wred_profile_result, > + wq_log2_r, UINT16); > + > + > +static void cmd_add_port_tm_node_wred_profile_parsed(void *parsed_result= , > + __attribute__((unused)) struct cmdline *cl, > + __attribute__((unused)) void *data) > +{ > + struct cmd_add_port_tm_node_wred_profile_result *res =3D > parsed_result; > + struct rte_tm_wred_params wp; > + enum rte_tm_color color; > + struct rte_tm_error error; > + uint32_t wred_profile_id =3D res->wred_profile_id; > + portid_t port_id =3D res->port_id; > + int ret; > + > + if (port_id_is_invalid(port_id, ENABLED_WARN)) > + return; > + > + memset(&wp, 0, sizeof(struct rte_tm_wred_params)); > + > + /* WRED Params (Green Color)*/ > + if ((strcmp(res->color_g, "G") =3D=3D 0) || > + (strcmp(res->color_g, "g") =3D=3D 0)) { > + color =3D RTE_TM_GREEN; > + wp.red_params[color].min_th =3D res->min_th_g; > + wp.red_params[color].max_th =3D res->max_th_g; > + wp.red_params[color].maxp_inv =3D res->maxp_inv_g; > + wp.red_params[color].wq_log2 =3D res->wq_log2_g; > + } else { > + printf("WRED profile error(G or g for green color)!\n"); > + return; > + } > + No need to check the res->color_g, because it already be checked by cmdline= . Because you defined it like cmd_add_port_tm_node_wred_profile_color_g =3D TOKEN_STRING_INITIALIZER( struct cmd_add_port_tm_node_wred_profile_result, color_g, "G#g"); You can just assign wp.red_params[RTE_TM_GREEN] directly. The similar as color_y, color_r. And is that possible for you to set WERD with less than 3 colors? If so, yo= u may need to change your command definition.=20 Thanks Jingjing