From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B7BEE43D1E; Fri, 22 Mar 2024 06:26:04 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4C3FE42DF1; Fri, 22 Mar 2024 06:26:04 +0100 (CET) Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by mails.dpdk.org (Postfix) with ESMTP id 804CF42DE9 for ; Fri, 22 Mar 2024 06:26:01 +0100 (CET) Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-29de2dd22d8so1069601a91.2 for ; Thu, 21 Mar 2024 22:26:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1711085160; x=1711689960; darn=dpdk.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=5QMNyRFwWipomMY45Oqar7OrxE1o0+7buh+TeFTjUN0=; b=ZTwliMSNQQMBZrtr/SatDQSN+jaubDJFb3zV1nhuINbhL+ppEKjW9owjSighOEW5pd jsdXRC4D8+wd+g/35EIxIGM++uOWHSYTNk/Uhp5eStXRyE350l85rHiQInq12V6SPLlm Pyj/0v3fEI9BhfxyJic+I43NW3l1O79ihK43M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711085160; x=1711689960; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5QMNyRFwWipomMY45Oqar7OrxE1o0+7buh+TeFTjUN0=; b=RhTObMTbTBt3ZrHhHy6DwrVfeXasd5c3y1agHYLPdDpF1OYc0vPIzbj0pkSi3Ct8e4 DY7qGKNFLL63JTxhlPZReVU5hLAouTRh35GXD70OnxapeS2pExtwFNB97WXDuuZtbzAk WVCNmS2FG1PNoeEjzlQlfFvD/ft837Fd7A4WGnrAzSicaCOW5a1f9UdB8F+z6+hrlLyS jTSvZwKohyRFpbbVQAW7UozFMnGLcTAoWEMACplRCxaDLxyQyis5rmsnI3brq18JQh0W B1XQAJmN/ls8qKYncDc9ZCb0V4Sru1s+RiKovKsNIoih2fma8QBlN1KinaZOQxzeiWQj j7WQ== X-Forwarded-Encrypted: i=1; AJvYcCWpH/HJeFemBlFVCWfBkch+bNee1WNAGMBcIVy+6muw0Vsv+4MHDtEJ4lpFuZjOErztyW5OcBNiLjlBEFs= X-Gm-Message-State: AOJu0YwUfulCcxrZ/ycnqLZjX0lBY6qlBt8gOOQACij5O6vT8X/stkme 4qqMJqzg5RbVe4FE6sP+D2iCENa+ux9aus07/9TCli8dnDKKg5ElEAOvgy7ZAmHUhwWi+b0azZj LLUHfAdEjwncfkkEhaSW9zd4gm0+JL12FvAfU X-Google-Smtp-Source: AGHT+IF1DngV8Pg4S52JNajxpLAhHx+e3PbwV7FmmNmfvwAAwYalP6nHeVOXuIj0lV581aNaxFPNDair9oeEU6YKgzA= X-Received: by 2002:a17:90b:3d1:b0:29e:e0a:e8c8 with SMTP id go17-20020a17090b03d100b0029e0e0ae8c8mr1528920pjb.5.1711085160478; Thu, 21 Mar 2024 22:26:00 -0700 (PDT) MIME-Version: 1.0 References: <20240312075238.3319480-1-huangdengdui@huawei.com> <21ed4b3f-348b-4cf8-91d3-8d42874d7d35@huawei.com> <28052301.gRfpFWEtPU@thomas> <6f93a427-303f-472b-862c-0a65ee7837c9@huawei.com> In-Reply-To: From: Ajit Khaparde Date: Thu, 21 Mar 2024 22:25:42 -0700 Message-ID: Subject: Re: [PATCH 0/3] support setting lanes To: Jerin Jacob Cc: huangdengdui , Thomas Monjalon , Damodharam Ammepalli , Ferruh Yigit , dev@dpdk.org, aman.deep.singh@intel.com, yuying.zhang@intel.com, andrew.rybchenko@oktetlabs.ru, liuyonglong@huawei.com, fengchengwen@huawei.com, haijie1@huawei.com, lihuisong@huawei.com Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000003295890614390f56" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --0000000000003295890614390f56 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Mar 21, 2024 at 9:39=E2=80=AFPM Jerin Jacob = wrote: > > On Fri, Mar 22, 2024 at 7:58=E2=80=AFAM huangdengdui wrote: > > > > > > > > On 2024/3/21 16:28, Thomas Monjalon wrote: > > > 21/03/2024 03:02, huangdengdui: > > >> > > >> On 2024/3/20 20:31, Ferruh Yigit wrote: > > >>> On 3/18/2024 9:26 PM, Damodharam Ammepalli wrote: > > >>>> On Mon, Mar 18, 2024 at 7:56=E2=80=AFAM Thomas Monjalon wrote: > > >>>>> > > >>>>> 12/03/2024 08:52, Dengdui Huang: > > >>>>>> Some speeds can be achieved with different number of lanes. For = example, > > >>>>>> 100Gbps can be achieved using two lanes of 50Gbps or four lanes = of 25Gbps. > > >>>>>> When use different lanes, the port cannot be up. > > >>>>> > > >>>>> I'm not sure what you are referring to. > > >>>>> I suppose it is not PCI lanes. > > >>>>> Please could you link to an explanation of how a port is split in= lanes? > > >>>>> Which hardware does this? > > >>>>> > > >>>> This is a snapshot of 100Gb that the latest BCM576xx supports. > > >>>> 100Gb (NRZ: 25G per lane, 4 lanes) link speed > > >>>> 100Gb (PAM4-56: 50G per lane, 2 lanes) link speed > > >>>> 100Gb (PAM4-112: 100G per lane, 1 lane) link speed > > >>>> > > >>>> Let the user feed in lanes=3D< integer value> and the NIC driver d= ecides > > >>>> the matching combination speed x lanes that works. In future if a = new speed > > >>>> is implemented with more than 8 lanes, there wouldn't be a need > > >>>> to touch this speed command. Using separate lane command would > > >>>> be a better alternative to support already shipped products and on= ly new > > >>>> drivers would consider this lanes configuration, if applicable. > > >>>> > > >>> > > >>> As far as I understand, lane is related to the physical layer of th= e > > >>> NIC, there are multiple copies of transmitter, receiver, modulator = HW > > >>> block and each set called as a 'lane' and multiple lanes work toget= her > > >>> to achieve desired speed. (please correct me if this is wrong). > > >>> > > >>> Why not just configuring the speed is not enough? Why user needs to= know > > >>> the detail and configuration of the lanes? > > >>> Will it work if driver/device configure the "speed x lane" internal= ly > > >>> for the requested speed? > > >>> > > >>> Is there a benefit to force specific lane count for a specific spee= d > > >>> (like power optimization, just a wild guess)? > > >>> > > >>> > > >>> And +1 for auto-negotiation if possible. > > >> > > >> As you said above,=EF=BC=8Cmultiple lanes work together to achieve d= esired speed. > > >> For example, the following solutions can be used to implement 100G: > > >> 1=E3=80=81Combines four 25G lanes > > >> 2=E3=80=81Combines two 50G lanes > > >> 3=E3=80=81A single 100G lane > > >> > > >> It is assumed that two ports are interconnected and the two ports su= pport > > >> the foregoing three solutions. But, we just configured the speed to = 100G and > > >> one port uses four 25G lanes by default and the other port uses two = 50G lanes > > >> by default, the port cannot be up. In this case, we need to configur= e the > > >> two ports to use the same solutions (for example, uses two 50G lanes= ) > > >> so that the ports can be up. > > > > > > Why this config is not OK? How do we know? > > > Really I have a very bad feeling about this feature. > > > > > > > > Sorry, I don't quite understand your question. > > Are you asking why cannot be up when one port uses four 25G lanes and t= he other port uses two 50G lanes? > > > > 100GBASE-SR2 (two 50G lanes) and 100GBASE-SR4 (four 25G lanes) have dif= ferent standards at the physical layer.[1] > > So it's not possible to communicate. Configuring lanes can help the dri= ver choose the same standard. > > Typically, low-level drivers like FW configure this. > > For example, If FW configures, 100G port as 100GBASE-SR2 then two > ethdev(port 0 and port1) will show up. > Now, assume if we expose this API and Can end user configure port 1 as > 25G lines if so, > a) What happens to port0 and it states? There should be no impact to port0. > b) Will port2, port3 will show up after issuing this API(As end user > configured 25Gx4 for 100G)? Will application needs to hotplug to get > use ports. No. The port count does not change. Nor does the number of PCI functions seen by the host. Unless designed otherwise. Changing the lane count does not change anything in physical terms. What changes is the modulation or the signaling scheme. The number of lanes which can be supported is determined by the PHY itself and the cables used and needs to be negotiated appropriately with the remote partner - which is just like using forced Ethernet Speed instead of auto-negotiated speeds. I tried to search for some links, but it has not been easy. So let me try to put something down. Sorry for the long mail. In the above example, if the 100G port is configured for 2 lanes, the SerDes in the PHY is configured such that each lane communicates at 50G with the remote partner. If the port is configured for 4 lanes, the internal SerDes is programmed to use a lower 25G signaling scheme. Each lane provides a parallel data transmission path and are typically implemented using multiple pairs of copper wires or optical fiber= s. When the lane configuration of the Ethernet port is changed, the port speed does not change. But the PHY FW uses a suitable modulation scheme to achieve the total aggregate port speed. The choice of modulation schemes include NRZ and PAM4. Typically 100G uses four lanes at 25 Gbps each and happens to be NRZ. For higher Ethernet speeds, the shift has been to use PAM4 signaling which allows twice the transmission rates compared to NRZ signaling. So the same 100G port can be configured to send signals to the remote partner using two lanes at 50G + 50G, or just 1 lane operating at 100G. It gets interesting as the speeds increase. 200G can be achieved with 4 lanes at 50G or 2 lanes at 100G. PAM4 offers improved bandwidth efficiency by encoding two bits per symbol compared to NRZ's one bit per symbol. The Ethernet standards committee I think has already completed work on 200G speed per lane. BTW - PAM4 stands for 4-Level Pulse Amplitude Modulation. NRZ stands for Non-Return-to-Zero. Thanks Ajit > > > https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=3D&arnumber=3D9844436 --0000000000003295890614390f56 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 pZEyqKnwS1lKCzjX7mV5W955rFsFxChdAKfw0HilwtqdY24mhy62+GeaEkD0gYIj1tCmw9gnQToc K+0s7xEunfR9pBrzmOwS3OQbcP0nJ8SmQ8R+reroH6LYuFpaqK1rgQIDAQABo4IB2zCCAdcwDgYD VR0PAQH/BAQDAgWgMIGjBggrBgEFBQcBAQSBljCBkzBOBggrBgEFBQcwAoZCaHR0cDovL3NlY3Vy ZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3J0MEEG CCsGAQUFBzABhjVodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWdu MmNhMjAyMDBNBgNVHSAERjBEMEIGCisGAQQBoDIBKAowNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93 d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wCQYDVR0TBAIwADBJBgNVHR8EQjBAMD6gPKA6 hjhodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwLmNy bDAlBgNVHREEHjAcgRphaml0LmtoYXBhcmRlQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEF BQcDBDAfBgNVHSMEGDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUbrcTuh0mr2qP xYdtyDgFeRIiE/gwDQYJKoZIhvcNAQELBQADggEBALrc1TljKrDhXicOaZlzIQyqOEkKAZ324i8X OwzA0n2EcPGmMZvgARurvanSLD3mLeeuyq1feCcjfGM1CJFh4+EY7EkbFbpVPOIdstSBhbnAJnOl aC/q0wTndKoC/xXBhXOZB8YL/Zq4ZclQLMUO6xi/fFRyHviI5/IrosdrpniXFJ9ukJoOXtvdrEF+ KlMYg/Deg9xo3wddCqQIsztHSkR4XaANdn+dbLRQpctZ13BY1lim4uz5bYn3M0IxyZWkQ1JuPHCK aRJv0SfR88PoI4RB7NCEHqFwARTj1KvFPQi8pK/YISFydZYbZrxQdyWDidqm4wSuJfpE6i0cWvCd u50xggJtMIICaQIBATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNh MTEwLwYDVQQDEyhHbG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwM2Vrj 4nZK0WWosNswDQYJYIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIJk/Jh1H9YELh016tBnO Nivxzqi9Da1oUb/rrQnjnYeTMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF MQ8XDTI0MDMyMjA1MjYwMFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUD BAEWMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsG CWCGSAFlAwQCATANBgkqhkiG9w0BAQEFAASCAQBKslnO5kgnDyaxR33V+grWoxy+D1RiYLqMzcYp 9OkOatbtFCuB+5oKcZQOsMqTVMH5jFZRIBdEuiDQj9u6MQ/0lGeYES9B4xpuvtfJOnGtkuY3TxEm 2L6E7FrB+BGZdJsSdQDbJoi4Z1/zUNBEfzIsPASfqRanuhXZvsgYQskGy75rrVY+KjEiVYxKXvZ5 VORdO4Q+eG783K+IvPxUMnnzMGURtUzCVFoKs6SEzAjYCi21HW/pWUI5IqIir4/6JFyjNu9BRxan dyl7drK/ccvuUdA0b9Oke9++RCBMecbpgzOhGV/TuhwhkzeYfZn+kIMYh7sV24W9L0kJQoEbqEgA --0000000000003295890614390f56--