On 3/22/2024 7:09 AM, Dengdui Huang wrote: > At the physical layer, multiple lanes are often used to work together > to achieve higher speeds. So a speeds can be achieved with different > number of lanes. For example, the following solutions can be used to > implement 100G: > 1. Combines four 25G lanes > 2. Combines two 50G lanes > 3. A single 100G lane > > It is assumed that two ports are interconnected and the two ports support > the above 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 configure the > ports to use the same solutions (for example, uses two 50G lanes) so that > the ports can be up. > > This patch set add support setting lanes for ethdev. application can use > this feature to configure lanes to help select the same solutions. >
Hi Dengdui, Damodharam, As details of the implementation under discussion, I have a high level question. Why/when an application need to configure the lanes explicitly? In above description, it mentions if one port is configured as 4x25G and other 2x50G, port can't be up. How do you end up being in this situation? Lets assume first port is configured as 100G, and FW configured it as 4x25G, and again user configured second port as 100G, why FW can't detect this and configure ports with correct lane configuration? In this case, if we push the responsibility to the user, when user is configuring the second port how she will know what is the lane configuration for first port, and what is the proper lane configuration for the second port? Instead of pushing this configuration to user, why it can't be handled internally? As long as user requested speed configured by device, the lane configuration has no impact to the user, right? Is there a case/reason user need to explicitly set, lets say PAM4 against NRZ? Thanks, ferruh