From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 40EAAA04B7; Tue, 13 Oct 2020 14:29:39 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 839C31DAC2; Tue, 13 Oct 2020 14:29:37 +0200 (CEST) Received: from nat-hk.nvidia.com (nat-hk.nvidia.com [203.18.50.4]) by dpdk.org (Postfix) with ESMTP id 84D031B696 for ; Tue, 13 Oct 2020 14:29:35 +0200 (CEST) Received: from HKMAIL104.nvidia.com (Not Verified[10.18.92.100]) by nat-hk.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Tue, 13 Oct 2020 20:29:33 +0800 Received: from HKMAIL101.nvidia.com (10.18.16.10) by HKMAIL104.nvidia.com (10.18.16.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 13 Oct 2020 12:29:29 +0000 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.175) by HKMAIL101.nvidia.com (10.18.16.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Tue, 13 Oct 2020 12:29:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OqJG2uRex3F7Yil2h+0w2tihIlmDMertRp1Hn71n+s6T2dk6r/vOeNcqT8rfBK487cXZ6Wv701wpOv5cBZu9xpNiQ4hKVShEADVNDvlOc7w1SwxFNyfZv4ZnRedhZGIi0Z6FWyss306Fn715xdKmDd++4z0Ccxcf0+UQHcJw5aCj9EAbZaoFJ+eM63x9bSyavrIfj/kBmuGtKRBF33egn5ViaLETsaXKzxHqZc4N9xdqrBTrUXnbxwn512V65B9UiJ2rqT0dvnHjDK77Na+xzmIUsQrcrJSj0X0XMjulWdSqLvDFMAQGmCUDp4LrYK6ixrgYBfKTdcUrNEt+PHTSDA== 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-SenderADCheck; bh=Mzy1+cztr2V3CAYVV9HHB+/kKsHbbg0OOwjG+iKYW6M=; b=NzxUGCicHzfjM2e49CCPOMnF0dVvyKDG01RwkymTS5ai6depeHliYdkIo1mfyQtuX8ZaO+pPXnVyWZJiK9BvQWoDtU1a9SepjHvGeUYvrmhpRvS59Sv/NaTAkaxOiswZG8BH+tB2nvvthmXKosmrCrAnfxcBIFKVZtiMb1vYpvo9ZbYuNj0pIfx7w2rh4vYbe9qUAztcbO4pLwXpS3pM/a2aTXGrUevENEk2aAMIyqxOd/0844xWK9qwOQb8r65nAYKvPNX2XIHkLhQY3+uvHkBHHXXfSMXmK80lkUBhEea157vKW1sqeovR934eaZeMr1fwKFkaR3u6oGxK0B0s4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none Received: from CY4PR1201MB0072.namprd12.prod.outlook.com (2603:10b6:910:1b::19) by CY4PR12MB1318.namprd12.prod.outlook.com (2603:10b6:903:38::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.26; Tue, 13 Oct 2020 12:29:27 +0000 Received: from CY4PR1201MB0072.namprd12.prod.outlook.com ([fe80::ade4:b300:381d:fe5c]) by CY4PR1201MB0072.namprd12.prod.outlook.com ([fe80::ade4:b300:381d:fe5c%10]) with mapi id 15.20.3477.020; Tue, 13 Oct 2020 12:29:27 +0000 From: Bing Zhao To: NBU-Contact-Thomas Monjalon CC: Ori Kam , "ferruh.yigit@intel.com" , "arybchenko@solarflare.com" , "mdr@ashroe.eu" , "nhorman@tuxdriver.com" , "bernard.iremonger@intel.com" , "beilei.xing@intel.com" , "wenzhuo.lu@intel.com" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v3 2/6] ethdev: add new attributes to hairpin config Thread-Index: AQHWoN/gbd3OX22cCESbCUMV5vGk5qmVVeRA Date: Tue, 13 Oct 2020 12:29:27 +0000 Message-ID: References: <1602147098-9768-1-git-send-email-bingz@nvidia.com> <1602158717-32038-1-git-send-email-bingz@nvidia.com> <1602158717-32038-3-git-send-email-bingz@nvidia.com> <2115353.iQtFZFVSCL@thomas> In-Reply-To: <2115353.iQtFZFVSCL@thomas> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [112.10.106.244] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b0c52be3-6261-4ed3-2c1f-08d86f73a074 x-ms-traffictypediagnostic: CY4PR12MB1318: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CKkG+bAE7Q2FY9foVWtdBI2stAH42bTKhaE5YFx3VXNEuexuMUDi4ZOBYStDqPZkl8GSQ8peRhP177451Ywbuw5Yoxn2vCJUH3qHvpCkvcS/5GQlZib0BfmZ0a3c3mWNd9pHYoU2+LNNLLwHUu0I1Huh0xS5afltbvQtRj5UmB7v4VJsN4+Kac5sqfzVgpSBIqFxeMyDtx+w8BA0HqfHvAMKwlO1bdfd/8Sw0eYcxnzTvlALcjHY87Mwo4OJzmUN9+x8eFLYqjv3b3/nOxQKVqZ4heqUuBQVwGPdtwHlkmBuSSJz+ubNskv0ZkgAMbVIgOhnpgT+KChYvpQZePoKzA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR1201MB0072.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39860400002)(346002)(396003)(376002)(366004)(66446008)(66556008)(66476007)(64756008)(6916009)(66946007)(86362001)(55016002)(186003)(26005)(76116006)(71200400001)(33656002)(478600001)(2906002)(53546011)(6506007)(83380400001)(316002)(52536014)(8676002)(54906003)(4326008)(7696005)(8936002)(9686003)(5660300002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 54EstzjEsBIPOUZnU56by97578rxKt1h9rkGu2AEJgsvCjAMgH6B+hJMT7w1+e/l+uNA6HApN5Bz73vN5tdHUk8zCJX6HJo+7qYDtOuYYXFW2nAJBFRn3njMf3Ct2RlctoVol9V7c1HLFlgfQMuFgGmV/TqEpVHztpJ6fdkCk8Qr3G+FVppTiFXQrNesqJBmNgho3JrZ4NBFHOXkWiJqy3hVudQHZQXbtihFnuPmY6YfdrE8XV4nEgKJhFF7+BqoJEQhIxjgfY7OgUOBeBsuvdBEoutpvG1rsEDwHfYaxPQNp2VlhcBADdwipLjN6qiD5ac7TKA0tTVHvMCviaUGjMBsVhZpo3ffNMuKt9yBNub8NCHj71PdADyHPXr0qu7ySbN0/TKpUiGjCRZAyPqJuP1ViMr476y1mWfl8ehoXEsQXkoUaz8cb6WufnyKPb9Njg40z2ZnVsr3Azn8TanJYHK/aiLfrBvHslAwzPnBvbxDM3z8HnoiNKmeAA45yfj8u+xJCvn85d0wklIL3Sbz4C8jPe9CHQO0tGfZRvEcb1Ez8paL2qY8IQFNeSw+vKXjOMBl1yLbTu/E090uLZq3SNeNg2OA7f3fqTIfpfEJj+tDbC8IB4zIe2h41ED12EAQD7hjag2vu2Seu+YCQAZcYA== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR1201MB0072.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b0c52be3-6261-4ed3-2c1f-08d86f73a074 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Oct 2020 12:29:27.5426 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: lKBy8lOKcGgSeBs2P0r4JcseO3pr4dOwv+VtOS0Q2uD+7s3CiKP2RH/HqWP4Ni9D7RIdy5xLW7Oj/e6O0CcAWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1318 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1602592173; bh=Mzy1+cztr2V3CAYVV9HHB+/kKsHbbg0OOwjG+iKYW6M=; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To: CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-ld-processed: x-ms-exchange-transport-forked:x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers:x-ms-exchange-senderadcheck: x-microsoft-antispam:x-microsoft-antispam-message-info: x-forefront-antispam-report:x-ms-exchange-antispam-messagedata: Content-Type:Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=Q+wyCDmz1HmSgde5DS0ICXZKt8IUigI30usWt+VfVsFXR+GbVUJlQEyWf2g0NzUuX 1Gr80Dn7STvrfuP/TDCHBVWOyTMpC1f56X6FaSpDecLHxf8aH6OCcc3OUob3Ag+3j2 EC+/HwugjAsLx91dnMgZTwtZCWWrYdqN1ovaLDBdB0oQEozbJLb4dT3S1usZqABgHR ArmhiDqSTqpE0qF7vwcfAMVRwJ5J0IIB1Sz+5w3L22229LtJQpfO+ic1Zks0hZamlG NnbDlzjgF4vnww0EZALAIsrFk2lcstzHsIQLFpUz+SEGLV1xq8m66q1PThcJfh/y5U c8AioejLKdIpg== Subject: Re: [dpdk-dev] [PATCH v3 2/6] ethdev: add new attributes to hairpin config 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Thomas, PSB > -----Original Message----- > From: Thomas Monjalon > Sent: Tuesday, October 13, 2020 5:37 AM > To: Bing Zhao > Cc: Ori Kam ; ferruh.yigit@intel.com; > arybchenko@solarflare.com; mdr@ashroe.eu; nhorman@tuxdriver.com; > bernard.iremonger@intel.com; beilei.xing@intel.com; > wenzhuo.lu@intel.com; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v3 2/6] ethdev: add new attributes to > hairpin config >=20 > External email: Use caution opening links or attachments >=20 >=20 > 08/10/2020 14:05, Bing Zhao: > > struct rte_eth_hairpin_conf { > > - uint16_t peer_count; /**< The number of peers. */ > > + uint32_t peer_count:16; /**< The number of peers. */ >=20 > Why not keeping uint16_t? The inside structure has a multiple of 4B, and the peer_count now only take= s about 2B. AFAIK, usually, the structure will have an aligned length/offse= t and there will be some padding between the 2B + (2B pad) + 4B * 32 or 2B = + (2B +2B) * 32 + 2B, depending on the compiler. I changed to bit fields of a u32 due to the two facts: 1. Using the 2B and keep the whole structure aligned. No waste except the r= eserved bits. 2. Only u32 with bit fields is standard. >=20 > > + uint32_t tx_explicit:1; /**< Explicit TX flow rule mode. */ > > + uint32_t manual_bind:1; /**< Manually bind hairpin queues. > */ >=20 > Please describe more the expectations of these bits: > What is changed at ethdev or PMD level? In ethdev level, there is almost no change. This attribute will be passed t= o PMD directly through the function pointer. In PMD level, these bits should be checked and better to be saved. And the = attribute fields should be checked for per queue pair and all the queues, a= nd each queue pair should have the same attributes configured to make the b= ehavior aligned. But it depends on the PMD itself to decide if all the queu= e pairs between a port pair should have the same attributes, or even all th= e queues from / to same port of all hairpin port pairs. If manual_bind is not set, then the PMD will try to bind the queues and ena= ble hairpin during device start stage and there is no need to call the bind= / unbind API. If tx_explicit is set, the application should insert the RX flow rules and = TX flow rules seperataly and connect the RX/TX logic connection together. > What the application is supposed to do? The application should specify the new two attributes during the queue setu= p. And also, it could leave it unset (0 by default) to keep the behavior co= mpatible with the previous release. If manual_bind is set, then it is the application's responsibility to call = the bind / unbind API to enable / disable the hairpin between specific port= s. If tx_explicit is set, as described above, the application should maintain = the flows logic to make hairpin work as expected, e.g., they can choose met= adata (not the only method), in the RX flow, the metadata is set and in the= TX flow, it is used for matching. Then even if the headers are changed wit= h NAT action or encap, the hairpin function could work as expected. > Why choosing one mode or the other? If the application wants to have the full control of hairpin flows, it coul= d chose the explicit TX flow mode. If two or more ports involved into the hairpin, it is suggested to use the = manual bind. Please note, the actual supported attributes denpend on the PMD and HW. >=20 Thanks