Subject: Re: [PATCH 1/2] net: Use IPv6 flow label in flow_dissector

From: Sergei Shtylyov <[email-masked]>
Date: Mon, 28 Apr 2014 00:55:54 +0400

Hello.

On 04/27/2014 03:00 AM, Tom Herbert wrote:

> This implements the receive side to support RFC6438 which is to
> use the flow label as an ECMP hash. If an IPv6 flow label is set
> in a packet we can use this as input for computing an l4-hash.
> There should be no need to parse any transport headers in this
> case.

> Signed-off-by: Tom Herbert <[email-masked]>
> ---
>   net/core/flow_dissector.c | 16 ++++++++++++++++
>   1 file changed, 16 insertions(+)

> diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
> index 107ed12..1c37d7b 100644
> --- a/net/core/flow_dissector.c
> +++ b/net/core/flow_dissector.c
[...]
> @@ -89,6 +91,20 @@ ipv6:
>   		flow->src = (__force __be32)ipv6_addr_hash(&iph->saddr);
>   		flow->dst = (__force __be32)ipv6_addr_hash(&iph->daddr);
>   		nhoff += sizeof(struct ipv6hdr);
> +
> +		if ((flow_label = ip6_flowlabel(iph))) {

    This wouldn't pass scripts/checkpatch.pl -- assignments shouldn't be 
enclosed into the *if* statement's parens.

> +			/*
> +			 * Awesome, IPv6 packet has a flow label so we can
> +			 * use that to represent the ports without any
> +			 * further dissection.
> +			 */

    Multi-line comments in the networking code should look this way:

/* bla
  * bla
  */

This is also an issue that scripts/checkpatch.pl would complain about...

WBR, Sergei