[dpdk-dev] [PATCH 1/3] app/testpmd: metering and policing CLI clean up

Singh, Jasvinder jasvinder.singh at intel.com
Mon Jan 8 11:25:21 CET 2018



> -----Original Message-----
> From: Wu, Jingjing
> Sent: Sunday, January 7, 2018 2:25 PM
> To: Singh, Jasvinder <jasvinder.singh at intel.com>; dev at dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu at intel.com>; Mcnamara, John
> <john.mcnamara at intel.com>
> Subject: RE: [PATCH 1/3] app/testpmd: metering and policing CLI clean up
> 
> 
> 
> > -----Original Message-----
> > From: Singh, Jasvinder
> > Sent: Tuesday, November 21, 2017 12:39 AM
> > To: dev at dpdk.org
> > Cc: Dumitrescu, Cristian <cristian.dumitrescu at intel.com>; Wu, Jingjing
> > <jingjing.wu at intel.com>; Mcnamara, John <john.mcnamara at intel.com>
> > Subject: [PATCH 1/3] app/testpmd: metering and policing CLI clean up
> >
> > This patch updates the metering and policing CLIs as follows:
> > - change name of set port meter CLI to create port meter and add meter
> >   enable option, dscp table entries arguments, action mask, policer actions
> >   and previous meter color option as an input color
> > - set the right metering algorithm in add meter profile CLIs related to
> >   srtcm(rfc2697) and trtcm(rfc2698,rfc4115)
> > - change clear flag type from uint32_t to string in show meter stats
> > CLI
> >
> > Signed-off-by: Jasvinder Singh <jasvinder.singh at intel.com>
> Acked-by: Jingjing Wu <jingjing.wu at intel.com>
> 
> With minor comment:
> 
> > +static int
> > +parse_dscp_table_entries(char *str, enum rte_mtr_color *dscp_table) {
> > +	char *token;
> > +	int i = 0;
> > +
> > +	token = strtok_r(str, PARSE_DELIMITER, &str);
> > +	if (token == NULL)
> > +		return 0;
> > +
> > +	/* Allocate memory for dscp table */
> > +	dscp_table = (enum rte_mtr_color
> *)malloc(MAX_DSCP_TABLE_ENTRIES *
> > +		sizeof(enum rte_mtr_color));
> > +
> > +	while (1) {
> > +		if (strcmp(token, "G") == 0 ||
> > +			strcmp(token, "g") == 0)
> > +			dscp_table[i++] = RTE_MTR_GREEN;
> > +		else if (strcmp(token, "Y") == 0 ||
> > +			strcmp(token, "y") == 0)
> > +			dscp_table[i++] = RTE_MTR_YELLOW;
> > +		else if (strcmp(token, "R") == 0 ||
> > +			strcmp(token, "r") == 0)
> > +			dscp_table[i++] = RTE_MTR_RED;
> > +		else {
> > +			free(dscp_table);
> > +			return -1;
> > +		}
> > +		if (i == MAX_DSCP_TABLE_ENTRIES)
> > +			break;
> Is that meaning the size dscp table must be 64, can it be less than 64?

The DSCP field is represented by 6 bits in the byte long TOS field of the IP header. Therefore, DSCP table should be have 64 entries for the packets classification.

> Thanks
> Jingjing


More information about the dev mailing list