[dpdk-dev] [PATCH v1 3/5] net/fm10k: add ffu and statistics and config file functions

Wang, Xiao W xiao.w.wang at intel.com
Mon Mar 16 08:04:30 CET 2020


Hi,

Comments inline.

Best Regards,
Xiao

> -----Original Message-----
> From: Xiaojun Liu <xiaojun.liu at silicom.co.il>
> Sent: Friday, February 28, 2020 4:38 PM
> To: Wang, Xiao W <xiao.w.wang at intel.com>; Zhang, Qi Z
> <qi.z.zhang at intel.com>; Kwan, Ngai-mint <ngai-mint.kwan at intel.com>; Keller,
> Jacob E <jacob.e.keller at intel.com>
> Cc: dev at dpdk.org; Xiaojun Liu <xiaojun.liu at silicom.co.il>
> Subject: [PATCH v1 3/5] net/fm10k: add ffu and statistics and config file
> functions
> 
> Add ffu to support offload flow into HW.
> It supports forward, mirror, push VLAN, pop VLAN.
> It also supports flowset for a group flow definition.
> The config file can configure debug log, port speed,
> epl port mapping dpdk port, flowset. All these configuration
> will be used by switch management.
> Statistics includes epl port, ffu rule, dpdk port, and error.
> All these statistics data are read from HW.
> Modify switch header file to support getting logical port
> and glort and device info.
> 

If new features are added, please doc them in doc/guides/nics/features/fm10k.ini

> To enable the switch management, you need add
> CONFIG_RTE_FM10K_MANAGEMENT=y in
> config/common_linux when building.

[...]

> +
> +	/* GLORT_DEST_TABLE
> +	 * Field Name		Bit(s)	Type	Default
> +	 * DestMask			47:0	RW		0x0
> +	 * IP_MulticastIndex59:48	RW		0x0
> +	 * Reserved			63:60	RSV		0x0
> +	 */

Please fix the alignment issue around here.

> +	temp64 = sw->mcast_dest_table_idx;
> +	temp64 = temp64 << 48 | 1 << lport1 | 1 << lport2;
> +	fm10k_write_switch_reg64(sw,
> +			FM10K_SW_GLORT_DEST_TABLE
> +			(sw->glort_dest_table_idx), temp64);
> +	sw->glort_dest_table_idx++;
> +
> +	/* MCAST_DEST_TABLE
> +	 * Field Name		Bit(s)	Type	Default
> +	 * PortMask			47:0	RW		0x0
> +	 * LenTableIdx		61:48	RW		0x0
> +	 * Reserved			63:62	RSV		00b
> +	 */
> +	temp64 = sw->mcast_len_table_idx;
> +	temp64 = 1 << lport1 | 1 << lport2 | temp64 << 48;
> +	fm10k_write_switch_reg64(sw,
> +			FM10K_SW_SCHED_MCAST_DEST_TABLE
> +			(sw->mcast_dest_table_idx++), temp64);
> +
> +	/* MCAST_LEN_TABLE
> +	 * Field Name		Bit(s)	Type	Default
> +	 * L3_McastIdx		14:0	RW		0x0
> +	 * L3_Repcnt		26:15	RW		0x0
> +	 * Reserved			31:27	RSV		0x0
> +	 */
> +	temp64 =
> +		sw->mcast_vlan_table_idx | 1 << 15;
> +	fm10k_write_switch_reg64(sw,
> +			FM10K_SW_SCHED_MCAST_LEN_TABLE
> +			(sw->mcast_len_table_idx++), temp64);
> +
> +	/* MCAST_VLAN_TABLE
> +	 * Field Name		Bit(s)	Type	Default
> +	 * VID				11:0	RW		0x0
> +	 * DGLORT			27:12	RW		0x0
> +	 * ReplaceVID		28		RW		0b
> +	 * ReplaceDGLORT	29		RW		0b
> +	 * Reserved			31:30	RSV		00b
> +	 */
> +	temp64 = vlan1 |
> +			fm10k_switch_pf_glort_get
> +			(lport1) << 12 | 1 << 28 | 1 << 29;
> +	fm10k_write_switch_reg64(sw,
> +			FM10K_SW_MOD_MCAST_VLAN_TABLE
> +			(sw->mcast_vlan_table_idx++), temp64);
> +	temp64 = vlan2 |
> +			fm10k_switch_pf_glort_get
> +			(lport2) << 12 | 1 << 28 | 1 << 29;
> +	fm10k_write_switch_reg64(sw,
> +			FM10K_SW_MOD_MCAST_VLAN_TABLE
> +			(sw->mcast_vlan_table_idx++), temp64);
> +
> +	return dglort;

[...]

> +	for (i = 0;
> +			i < sizeof(rx_port_cnt_map_table) /
> +				sizeof(rx_port_cnt_map_table[0]);
> +			i++) {

The style looks strange. No need to switch to a new line as " for (i = 0;" is so short.
[...]


More information about the dev mailing list