From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id 471C81C744; Wed, 4 Apr 2018 17:30:34 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id C9A98140055; Wed, 4 Apr 2018 15:30:32 +0000 (UTC) Received: from [192.168.38.17] (84.52.114.114) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1044.25; Wed, 4 Apr 2018 16:30:27 +0100 To: Adrien Mazarguil , CC: , Roman Zhukov References: <20180323124725.15806-1-adrien.mazarguil@6wind.com> <20180404144805.11966-1-adrien.mazarguil@6wind.com> <20180404144805.11966-6-adrien.mazarguil@6wind.com> From: Andrew Rybchenko Message-ID: <83b6a6b0-2f97-0a24-d7dd-887ea4cdcd83@solarflare.com> Date: Wed, 4 Apr 2018 18:30:24 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180404144805.11966-6-adrien.mazarguil@6wind.com> Content-Language: en-GB X-Originating-IP: [84.52.114.114] X-ClientProxiedBy: ocex03.SolarFlarecom.com (10.20.40.36) To ukex01.SolarFlarecom.com (10.17.10.4) X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.100.1062-23762.003 X-TM-AS-Result: No--22.628800-0.000000-31 X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-MDID: 1522855833-gXGGzIZTOcLw Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH v2 05/13] net/sfc: fix endian conversions in flow API 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: Wed, 04 Apr 2018 15:30:34 -0000 Adrien, On 04/04/2018 05:57 PM, Adrien Mazarguil wrote: > These conversions do not use the adequate function. > > Fixes: a9825ccf5bb8 ("net/sfc: support flow API filters") > Fixes: 894080975e1e ("net/sfc: support VLAN in flow API filters") > Fixes: e2675132444e ("net/sfc: support TCP in flow API filters") > Fixes: e01f84f42cad ("net/sfc: support UDP in flow API filters") > Cc: stable@dpdk.org > Cc: Roman Zhukov > Cc: Andrew Rybchenko > > Signed-off-by: Adrien Mazarguil > --- > drivers/net/sfc/sfc_flow.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c > index fe4c0b0c5..9060fdc2f 100644 > --- a/drivers/net/sfc/sfc_flow.c > +++ b/drivers/net/sfc/sfc_flow.c > @@ -7,6 +7,7 @@ > * for Solarflare) and Solarflare Communications, Inc. > */ > > +#include > #include > #include > #include > @@ -315,7 +316,7 @@ sfc_flow_parse_eth(const struct rte_flow_item *item, > */ > if (mask->type == supp_mask.type) { > efx_spec->efs_match_flags |= EFX_FILTER_MATCH_ETHER_TYPE; > - efx_spec->efs_ether_type = rte_bswap16(spec->type); > + efx_spec->efs_ether_type = rte_be_to_cpu_16(spec->type); > } else if (mask->type != 0) { > goto fail_bad_mask; > } > @@ -370,7 +371,7 @@ sfc_flow_parse_vlan(const struct rte_flow_item *item, > * the outer tag and the next matches the inner tag. > */ > if (mask->tci == supp_mask.tci) { > - vid = rte_bswap16(spec->tci); > + vid = rte_be_to_cpu_16(spec->tci); > > if (!(efx_spec->efs_match_flags & > EFX_FILTER_MATCH_OUTER_VID)) { > @@ -654,14 +655,14 @@ sfc_flow_parse_tcp(const struct rte_flow_item *item, > */ > if (mask->hdr.src_port == supp_mask.hdr.src_port) { > efx_spec->efs_match_flags |= EFX_FILTER_MATCH_REM_PORT; > - efx_spec->efs_rem_port = rte_bswap16(spec->hdr.src_port); > + efx_spec->efs_rem_port = rte_be_to_cpu_16(spec->hdr.src_port); > } else if (mask->hdr.src_port != 0) { > goto fail_bad_mask; > } > > if (mask->hdr.dst_port == supp_mask.hdr.dst_port) { > efx_spec->efs_match_flags |= EFX_FILTER_MATCH_LOC_PORT; > - efx_spec->efs_loc_port = rte_bswap16(spec->hdr.dst_port); > + efx_spec->efs_loc_port = rte_be_to_cpu_16(spec->hdr.dst_port); > } else if (mask->hdr.dst_port != 0) { > goto fail_bad_mask; > } > @@ -735,14 +736,14 @@ sfc_flow_parse_udp(const struct rte_flow_item *item, > */ > if (mask->hdr.src_port == supp_mask.hdr.src_port) { > efx_spec->efs_match_flags |= EFX_FILTER_MATCH_REM_PORT; > - efx_spec->efs_rem_port = rte_bswap16(spec->hdr.src_port); > + efx_spec->efs_rem_port = rte_be_to_cpu_16(spec->hdr.src_port); > } else if (mask->hdr.src_port != 0) { > goto fail_bad_mask; > } > > if (mask->hdr.dst_port == supp_mask.hdr.dst_port) { > efx_spec->efs_match_flags |= EFX_FILTER_MATCH_LOC_PORT; > - efx_spec->efs_loc_port = rte_bswap16(spec->hdr.dst_port); > + efx_spec->efs_loc_port = rte_be_to_cpu_16(spec->hdr.dst_port); > } else if (mask->hdr.dst_port != 0) { > goto fail_bad_mask; > } efs_filter_spec_t members are little-endian (_not_ host-endian). At least comments say so and to be consistent we use rte_bswap*() functions intentionally. Yes, may be it is buggy in fact - I don't know. The code never worked on big-endian. So, we're aware and thanks for the reminder. We'd prefer to keep it as is if there is no strong reasons to change.