Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B498CC61DA4 for ; Thu, 16 Feb 2023 15:22:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229806AbjBPPWX (ORCPT ); Thu, 16 Feb 2023 10:22:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229550AbjBPPWV (ORCPT ); Thu, 16 Feb 2023 10:22:21 -0500 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9B7B5598; Thu, 16 Feb 2023 07:22:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676560940; x=1708096940; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=IhQhjKTBN8OuwRiNe52SsGkYcEwnZ87/CPVKU7TKL1I=; b=hBWVwEosscGXqm2zLFVqRDHNWLM6D3dKKwvtq4DfS9APId8PtXAkNDJJ dE6OObQeELiBEOsA5yRevDy88vcCk+lazrXU83tLOjgfnGGdCTlJxSscg QyfGj09Z/aPln+dSN2SXm+SDqOLeK62eAapx5Z6iCTzPNXF49VFC0yFCz 0z/66l62mxjVrrvJFhzeVhW12/D2hedoCAL+yzPIfZtZ/EAuwt/4MXhpR 051876d819WEMs8X2LRgN9JXl5Kgigayyp7cNseqwngTFso5V76i+6H4s cqn5v3kf2qkMiOa494NvaWp3QHbg617blorX2IAXi6/YAUHpfKyoFrA4k g==; X-IronPort-AV: E=McAfee;i="6500,9779,10623"; a="331738998" X-IronPort-AV: E=Sophos;i="5.97,302,1669104000"; d="scan'208";a="331738998" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Feb 2023 07:22:19 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10623"; a="702583718" X-IronPort-AV: E=Sophos;i="5.97,302,1669104000"; d="scan'208";a="702583718" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga001.jf.intel.com with ESMTP; 16 Feb 2023 07:22:19 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 16 Feb 2023 07:22:19 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Thu, 16 Feb 2023 07:22:19 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.176) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Thu, 16 Feb 2023 07:21:25 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=diU4cY2gP5fy90fNfB3z6F2P2c3yAXjycXclLmhX7Rt1VsYZ1rEJX+9P6mSwTxmfDN/laEKhDWO0tVfjCPXSotqfqHFgMHUQbIQgs2Bb2tslC99KTEG7Y0xyg613zVSFHEgJXGPrv0D/Z+J+fhpokXv1HGfk28ns0BnT/BCffF3t2iDu3tTccUvaRAxMwYx9H92le80eMCHcre9nyavxmk5nCrmp/4sRfYn3GAZD/SOZoFC2sftRA5OtKQbTHALU1bmO1vDRujFL+2u9z0dW8Dq4o+yi5j1W1X3UKHjbc64oUuN3mmUYx8WahGHdL4Efa1y1JIvD9gHCQIrGfACBgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UTWCESckhiv+L1xERBsTV3w/t7vw8uNKVxcs+PZy9uU=; b=SbzEBceyC3uNytWHk7a/Fq67UMHpBwSTVAXa6ysxtDP8HeHBjx8SdGFMquzs0cCGjeoVwyZeTj05y5nX2HEcT9h/25PRFg8UaJrpNT7HpCmusvWMnBlDa/i+jkUsIPgYniU5lC+m3pNSiTb9J0mrjoxR6S1aZs2ZPiWBDYKbqbFOpnmgDEJokwYUxNLq879lIvQuuq8hmxe2MnHMiuNBoNU2+hjOOOFhzL/PEIfIT5wELmeEI79Z6AOnTc33r1npQ6gT2l4Nu/K/iDvIw02rFEKPdaCzzK9I7lvrmRjZAe9phW4/dEUjLtdKJ9P2S106SWwWMUM6YafJqTVDgA3Ugw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) by DS7PR11MB7834.namprd11.prod.outlook.com (2603:10b6:8:ed::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.26; Thu, 16 Feb 2023 15:21:24 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::3ff6:ca60:f9fe:6934]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::3ff6:ca60:f9fe:6934%4]) with mapi id 15.20.6086.026; Thu, 16 Feb 2023 15:21:23 +0000 Message-ID: Date: Thu, 16 Feb 2023 16:19:53 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH net-next v1 3/3] net/mlx5e: TC, Add support for VxLAN GBP encap/decap flows offload Content-Language: en-US To: Gavin Li CC: , , , , , , , , , Roi Dayan , Maor Dickman , Saeed Mahameed References: <20230214134137.225999-1-gavinl@nvidia.com> <20230214134137.225999-4-gavinl@nvidia.com> <711630a2-b810-f8b0-2dcf-1eb7056ecf1d@intel.com> <231a227d-dda6-fe15-e39a-68aee72a1d59@nvidia.com> <92d83584-2238-f8e8-3ed6-f292223e4061@nvidia.com> <76b74086-ea65-7bb3-1eb0-391f79d1c615@nvidia.com> From: Alexander Lobakin In-Reply-To: <76b74086-ea65-7bb3-1eb0-391f79d1c615@nvidia.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-ClientProxiedBy: FR2P281CA0102.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9c::16) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR11MB3625:EE_|DS7PR11MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: 0fbf796a-de5a-4848-55f5-08db103176cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Bo5h97Mh4BTUmNMuPiGrckV6ftkRd7YvZKHIEJzyFB8Lb/KjSd04LXlBXmmpma3YL89clt5XreYqIeXWLu20pgBHJ5XjKCJrW7w3v8V5Uw2Onu2hdWc0mWpjdA+MW+6GExU/07Tzb3M41N6VWdZJvoEew3u0mq3YtEx+mw6lbNUQZ+Px76/1Yb4vMaZWVFA8wKZNEm4CyIr25flrB+BY8yt7p6WkReMtqnNAo8wEz3cXDhLYBOz2XPzQc+0IRUZ4jiQE8/48qin3ZEf5yNbrA50pooJ+nZDiGQfzL5almNGSvTg9sqnHH9dRduwW2TAdsHa6ncUC70NOlAAriLvSDou1CKZjCpp/B5DdPlVEfU5xecMaov6ZwcO/+YbdtHR3sqh47oWSYbp3Y6Jqw7U/bAiDSimz7Xfuz3MtMvIUez4CQ//2rrBqlFv++AYysqZB04Nc+vj6TV7F8ObwYGoEAH+LaGk99brjFRPSjoppJZwTj8711GSelnPZY/bfrahuEKa58kFBSWXzOkZaomTEyKDjr2slg8svNwtUKd9XVubgRUzZMjfnPTy2ibJw6ND7l/81cGrTBhw8bwGnJ0sZEYcVq5+RTsXeJiqjNxrodfXyRhY5i+psJICzJUOq9u7OWiD+KgtQ5XVCafGIwtE2GFHlWmwtDPzqUKtTWomiij18ue2/mR905XrPpEx4K7/62AIfAtY0Z5wJ8uPOeUcd8IzbjXoETwIuPGXHzLN5DVgwhlJMmtPlTP9PXrO/q6uqq6rPKyqtH0X2veoOtdC15A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3625.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(39860400002)(346002)(376002)(396003)(136003)(366004)(451199018)(2906002)(966005)(31696002)(2616005)(83380400001)(6512007)(8676002)(82960400001)(316002)(66476007)(66946007)(54906003)(86362001)(66556008)(5660300002)(8936002)(7416002)(38100700002)(6916009)(53546011)(6486002)(6506007)(41300700001)(6666004)(478600001)(36756003)(186003)(4326008)(26005)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N1VoQzBaL2dBWnNRQVFjWDhoTHB4VnV0K0tURU5HczNRZ2tDbXFqblhpbysw?= =?utf-8?B?bDcwaExsY1pQcEhFUmNKVzhmUDhjNi81aDlHMDVOcXN0d0lRMEptTU9SS21H?= =?utf-8?B?K0lSeU5WY0Z4RHZlWEllNVBzME14ODZKOWFLZlE2R2YwdjF5ak84T3c2ZlBu?= =?utf-8?B?OCs0WDFLM1hzRDd1cU1tTDNycUc0amQyUmV0K3lWVEFkOGdkRUpxRW5jREJM?= =?utf-8?B?aGQ1QUZDemlCY1pBQ1RZZlZqbjVzUndhb1o1VjVWS1VULzNPU1htc0RRUklq?= =?utf-8?B?bDVHUHdScUpOYWx1UUFVZ3BQeXdGL2ZqRDFjRkVqL2tFcDRvTGZPY3QvUWxs?= =?utf-8?B?VHZkZk5BbTkyQ0ZERkJEYTRydlA3azN2clk1RFhFMDN0dnIwdEZiRm1rMXlt?= =?utf-8?B?ZlhJekVRTjBsZmRWN0FWUXFRVXU4elpvY2pYUjFETGdzWUZSN1ZiWDZFN215?= =?utf-8?B?OFR2N256RjhZd25laG5YdHJhL0VPUUVqaWlMS2UrSzhoTjVEYThmbkFsR2Mr?= =?utf-8?B?WDlSVUh0WlRwRWVndm0xb3N1ZkF4ek9OcXZOd0tUVksrZURMY1BFTDFVVzJ1?= =?utf-8?B?QTVJOXordzYrbVFFU1E2bjVRdGtRNXplaUdjL1RnWTVRajNoNVJVSUwyZlFK?= =?utf-8?B?ZDdpNm5EYmJ1dDlGNXNqTHkyZm0zbTh1RVNpdTMyVTBrdGtnS0FtNGhqZjN3?= =?utf-8?B?NWNMcEhFOXd4dmtVL3RIY1gxZ2RTNEc0MDI4M3BFTVJwWjN1NmRvRFVFVTk4?= =?utf-8?B?b0JFNnJ5SzVwcmExVGpGSWw1dTl5cno5VEVHQzBFM2RlWVVkRjVWeWdOR3pC?= =?utf-8?B?YnQxKzZudlBTdFJST2NwOU1BUUZFY21EVjBjVis3Q2dIVWZPc0pFeE9CbHlP?= =?utf-8?B?dVZBSjkyMy9aUENGTHlzYjNNcUhFRlJ4Z1drdWpndmtsSEdXNnNOWjlWTlRr?= =?utf-8?B?UE9MRFRRTjNHRWxESmk4OHU5SWk3NGZxR0VRemdTQW04c2VSMFZnd3ovSUY1?= =?utf-8?B?RzlnVjc5WE5ZVGNyekxhWEFyN2I1MDNyZDhUSzY4NnhiTHNublJtZ0lmMWVC?= =?utf-8?B?Um5GeVJzMk9yWCtuZnZ3WHI3aVY2dDhIMGF3cU5LZFpRQ1pFU2pBM09XbFIr?= =?utf-8?B?VFRyK2p4ZlRCM0NOeTNKeUZUdis3SXZXeFk4emNHTnhSd1pvai9ZNHNzaVdw?= =?utf-8?B?VUZzU1RCcVE0RmJkZ09acHRnSml0aGM0YXBaU1M4K3JDTnJHQmFkYmEvWmNJ?= =?utf-8?B?b3R1ZXBTQTFqd2pmNGFZblEvTFViMXZrcld2dzU5WWRaU3haNDNFbWttTUYr?= =?utf-8?B?STJuVTFYT3pTRVlCQllWTkJsUERQRHhYRGJ6L1F5aHpVaG5aK3Bwcnh0TkRu?= =?utf-8?B?RDM2V0lNSkpFR1M3UjBmTzNtOVNUK0lKYlMydVF4eTlkdTVlN1FFSUxWMi9n?= =?utf-8?B?THBZaTFrcXY2eFpSdUZTOXhlSGJMN2xhWDF6QXBhbDkwR0sxeENGMWF0UjAr?= =?utf-8?B?RkxEN1pmWFpJbm9PaWd1b3JSSmRBV0FFUDE5eUN0b0h0R3dRK3ZWOWU5QkJB?= =?utf-8?B?WHV4S29QdjJqMzJkd1JkQWprYVh0WnhoMHBrR2VwL2J3SDVjVlFBUE16ZGRO?= =?utf-8?B?Y3Jac09lY2ltVndGSWlFTW9EYWFtN3djTGZYdzkrK0pYeTZSU3hSeXRVeEc3?= =?utf-8?B?R2k4cnNzbnRQTkhkUHJoNWNZaERlWEZjanE1ZGxjK01acUNaakxwT3JXK1ZR?= =?utf-8?B?RW1YMmJ0K2U2WElNcjZmenZ5UlVjU1ZQa21vYXdBdCtMSkxNS2hSV0J5aE5B?= =?utf-8?B?UUFTdWMzVWZMVmM3Tkh0QU14N2FvZE5EbnNyemNOS1JHQko1OThsa3haaHFz?= =?utf-8?B?YXdJRWVnbTltNXNxTzFtVDhQZDhnbzNvY3NValllYzBJWXNKUlJPZERNMFJr?= =?utf-8?B?L3lMTjdQNWJlWFlhZnJ4QXFLWVlaV2h5SldjeUw1eWppWTNaK1lTTG5xbFhm?= =?utf-8?B?NVVGZ1FoTUYwbEJ0VVFvRFVwQTIvOTd2WXN4S2V5SFp1cFBYbEFuRkZDQ2F0?= =?utf-8?B?MmFrSVZhMEEyQStvVW44cFdYSmZFUFdObkZsY21mUXJneFd0K0JjWFFnZFBP?= =?utf-8?B?SS83TjlDQ2F2NGp3QVBFQmZlbVMvdVlqTjN5aDM4VmcvMDlFNzZ1aGx4VUhO?= =?utf-8?Q?tVdaoXLkQlEGpNgllZss9lc=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: 0fbf796a-de5a-4848-55f5-08db103176cb X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3625.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2023 15:21:23.8817 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bOeAHZVoE1I59JBWAHDxLdKARsZu77aDhEYsMIzZnP8AaR7oYWl9SNx3eQzv2g8h6NPLA7C099lgPWUSsATrHCPv/CUwFfmn7rMnuaNDuFo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB7834 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gavin Li Date: Thu, 16 Feb 2023 16:40:33 +0800 > > On 2/16/2023 1:01 AM, Alexander Lobakin wrote: >> External email: Use caution opening links or attachments >> >> >> From: Gavin Li >> Date: Wed, 15 Feb 2023 16:30:04 +0800 >> >>> On 2/15/2023 11:36 AM, Gavin Li wrote: >>>> External email: Use caution opening links or attachments >>>> >>>> >>>> On 2/14/2023 11:26 PM, Alexander Lobakin wrote: >>>>> External email: Use caution opening links or attachments >>>>> >>>>> >>>>> From: Gavin Li >>>>> Date: Tue, 14 Feb 2023 15:41:37 +0200 >> [...] >> >>>>>> @@ -96,6 +99,70 @@ static int mlx5e_gen_ip_tunnel_header_vxlan(char >>>>>> buf[], >>>>>>         udp->dest = tun_key->tp_dst; >>>>>>         vxh->vx_flags = VXLAN_HF_VNI; >>>>>>         vxh->vx_vni = vxlan_vni_field(tun_id); >>>>>> +     if (tun_key->tun_flags & TUNNEL_VXLAN_OPT) { >>>>>> +             md = ip_tunnel_info_opts((struct ip_tunnel_info >>>>>> *)e->tun_info); >>>>>> +             vxlan_build_gbp_hdr(vxh, tun_key->tun_flags, >>>>>> +                                 (struct vxlan_metadata *)md); >>>>> Maybe constify both ip_tunnel_info_opts() and vxlan_build_gbp_hdr() >>>>> arguments instead of working around by casting away? >>>> ACK. Sorry for the confusion---I misunderstood the comment. >>> This ip_tunnel_info_opts is tricky to use const to annotate the arg >>> because it will have to cast from const to non-const again upon >>> returning. >> It's okay to cast away for the `void *` returned. >> Alternatively, use can convert it to a macro and use >> __builtin_choose_expr() or _Generic to return const or non-const >> depending on whether the argument is constant. That's what was recently >> done for container_of() IIRC. > > I've fixed vxlan_build_gbp_hdr in V2. For ip_tunnel_info_opts, it's > confusing to me. > > It would be as below after constifying the parameter. > > static inline void *ip_tunnel_info_opts(const struct ip_tunnel_info *info) > { >     return (void *)(info + 1); > } > Is there any value gained by this change? You wouldn't need to W/A it each time in each driver, just do it once in the inline itself. I did it once in __skb_header_pointer()[0] to be able to pass data pointer as const to optimize code a bit and point out explicitly that the function doesn't modify the packet anyhow, don't see any reason to not do the same here. Or, as I said, you can use macros + __builtin_choose_expr() or _Generic. container_of_const() uses the latter[1]. A __builtin_choose_expr() variant could rely on the __same_type() macro to check whether the pointer passed from the driver const or not. > >> >>>>>> +     } >>>>>> + >>>>>> +     return 0; >>>>>> +} >> [...] >> >> Thanks, >> Olek [0] https://elixir.bootlin.com/linux/v6.2-rc8/source/include/linux/skbuff.h#L3992 [1] https://elixir.bootlin.com/linux/v6.2-rc8/source/include/linux/container_of.h#L33 Thanks, Olek