Hi Jerin and folks, any update on this one? Thanks, Cristian

> -----Original Message-----
> From: Dumitrescu, Cristian <cristian.dumitre...@intel.com>
> Sent: Tuesday, March 1, 2022 5:48 PM
> To: sk...@marvell.com; Thomas Monjalon <tho...@monjalon.net>; Yigit,
> Ferruh <ferruh.yi...@intel.com>; Andrew Rybchenko
> <andrew.rybche...@oktetlabs.ru>; Ray Kinsella <m...@ashroe.eu>
> Cc: dev@dpdk.org; Jerin Jacob <jer...@marvell.com>
> Subject: RE: [PATCH v3 1/1] ethdev: mtr: support input color selection
> 
> HI Jerin,
> 
> Thanks for your patch! I think we are making great progress, here are a few
> more comments:
> 
> <snip>
> 
> > +/**
> > + * Input color method
> > + */
> > +enum rte_mtr_input_color_method {
> 
> We should clean up the names of these methods a bit: we should not mix
> header names (VLAN, IP) with header field names (DSCP, PCP), in the sense
> that to me METHOD_VLAN_DSCP should be replaced with either:
> * METHOD_OUTER_VLAN_IP :shorter name, as only the headers are
> mentioned (my preference, but I am OK with both)
> * METHOD_OUTER_VLAN_PCP_IP_DSCP: longer name, as both the headers
> and the header fields are mentioned
> 
> Please put a blank line in between these methods to better readability.
> 
> I see some issues in the list of methods below, I am trying to do my best to
> catch them all:
> 
> > +   /**
> > +    * The input color is always green.
> > +    * The default_input_color is ignored for this method.
> > +    * @see struct rte_mtr_params::default_input_color
> > +    */
> > +   RTE_MTR_INPUT_COLOR_METHOD_COLOR_BLIND  = RTE_BIT64(0),
> 
> OK.
> 
> > +   /**
> > +    * If the input packet has at least one VLAN label, its input color is
> > +    * detected by the outermost VLAN DEI(1bit), PCP(3 bits)
> > +    * indexing into the struct rte_mtr_params::vlan_table.
> > +    * Otherwise, the default_input_color is applied.
> > +    * @see struct rte_mtr_params::default_input_color
> > +    * @see struct rte_mtr_params::vlan_table
> > +    */
> > +   RTE_MTR_INPUT_COLOR_METHOD_VLAN = RTE_BIT64(1),
> 
> OK.
> Does your HW use PCP+DEI , or just PCP?
> 
> > +   /**
> > +    * If the input packet is IPv4 or IPv6, its input color is detected by
> > +    * the outermost DSCP field indexing into the
> > +    * struct rte_mtr_params::dscp_table.
> > +    * Otherwise, the default_input_color is applied.
> > +    * @see struct rte_mtr_params::default_input_color
> > +    * @see struct rte_mtr_params::dscp_table
> > +    */
> > +   RTE_MTR_INPUT_COLOR_METHOD_DSCP = RTE_BIT64(2),
> 
> OK.
> Please change name to METHOD_IP.
> Description: Change the "outermost DSCP" to "the DSCP field of the outermost
> IP header".
> I would move this up on the second position (to follow immediately after the
> color blind method).
> 
> > +   /**
> > +    * If the input packet has at least one VLAN label, its input color is
> > +    * detected by the outermost VLAN DEI(1bit), PCP(3 bits)
> > +    * indexing into the struct rte_mtr_params::vlan_table.
> > +    * If the input packet is IPv4 or IPv6, its input color is detected by
> > +    * the outermost DSCP field indexing into the
> > +    * struct rte_mtr_params::dscp_table.
> > +    * Otherwise, the default_input_color is applied.
> > +    * @see struct rte_mtr_params::default_input_color
> > +    * @see struct rte_mtr_params::vlan_table
> > +    * @see struct rte_mtr_params::dscp_table
> > +    */
> > +   RTE_MTR_INPUT_COLOR_METHOD_VLAN_DSCP = RTE_BIT64(3),
> 
> OK.
> Please change name to METHOD_VLAN_IP.
> This should follow immediately after the METHOD_VLAN.
> Description: please use "Otherwise" before "if the input packet is IP"; please
> replace "outermost DSCP" as above.
> Is your HW using DEI + PCP or just PCP?
> 
> > +   /**
> > +    * If the input packet has at least one VLAN label, its input color is
> > +    * detected by the innermost VLAN DEI(1bit), PCP(3 bits)
> > +    * indexing into the struct rte_mtr_params::vlan_table.
> > +    * Otherwise, the default_input_color is applied.
> > +    * @see struct rte_mtr_params::default_input_color
> > +    * @see struct rte_mtr_params::vlan_table
> > +    */
> > +   RTE_MTR_INPUT_COLOR_METHOD_INNER_VLAN = RTE_BIT64(4),
> 
> OK.
> Is your HW using DEI + PCP or just PCP?
> 
> > +   /**
> > +    * If the input packet is IPv4 or IPv6, its input color is detected by
> > +    * the innermost DSCP field indexing into the
> > +    * struct rte_mtr_params::dscp_table.
> > +    * Otherwise, the default_input_color is applied.
> > +    * @see struct rte_mtr_params::default_input_color
> > +    * @see struct rte_mtr_params::dscp_table
> > +    */
> > +   RTE_MTR_INPUT_COLOR_METHOD_INNER_DSCP = RTE_BIT64(5),
> 
> This is very confusing to me, I don't get what this one is about: The "inner" 
> word
> in the name suggests that inner VLAN is attempted first, then IP DSCP (if no
> VLAN is present), but the description only talks about IP.
> 
> > +   /**
> > +    * If the input packet has at least one VLAN label, its input color is
> > +    * detected by the innermost VLAN DEI(1bit), PCP(3 bits)
> > +    * indexing into the struct rte_mtr_params::vlan_table.
> > +    * If the input packet is IPv4 or IPv6, its input color is detected by
> > +    * the innermost DSCP field indexing into the
> > +    * struct rte_mtr_params::dscp_table.
> > +    * Otherwise, the default_input_color is applied.
> > +    * @see struct rte_mtr_params::default_input_color
> > +    * @see struct rte_mtr_params::vlan_table
> > +    * @see struct rte_mtr_params::dscp_table
> > +    */
> > +   RTE_MTR_INPUT_COLOR_METHOD_INNER_VLAN_DSCP =
> > RTE_BIT64(6),
> 
> OK.
> Description fixes: Use "otherwise" before "if IP"; replace innermost DSCP with
> "DSCP field of the outermost IP header".
> 
> <snip>
> 
> Regards,
> Cristian

Reply via email to