[DPB|master] Update Dynamic Port Breakout Logic for flexible alias support a…#6831
[DPB|master] Update Dynamic Port Breakout Logic for flexible alias support a…#6831lguohan merged 5 commits intosonic-net:masterfrom
Conversation
…nd related Test cases Signed-off-by: Sangita Maity <samaity@linkedin.com>
8e78a56 to
c536888
Compare
Signed-off-by: Sangita Maity <samaity@linkedin.com>
Signed-off-by: Sangita Maity <samaity@linkedin.com>
|
@samaity , what is the build issue? |
|
There seems to be a systematic error with the naming when breakout was done at half speeds (50G). E.g. when 2 interfaces break to 50G, the second interface should be Ethx/3 or etpxc This error is also noticed in PR comment. |
Actually according to this doc, which you submitted, it was etpxb instead of etpxc: :-) Anyway, this alias list is really for box vendor or user to define and we don't limit to anything as for the design. And for us, we prefer to have 1/1 and 1/2. and this is inline with one of the traditional vendors. |
|
To give a brief, we fixed the breakout numbering when a half-speed breakout Barefoot vs For other platforms, we are keeping it as it is. Kindly let us know if any modification is needed after the latest one. Thanks! |
…form Signed-off-by: Sangita Maity <samaity@linkedin.com>
ecc6dad to
a4e3c74
Compare
|
retest this please |
|
can you update the sonic utilties since the fix is merged? |
I have advanced the submodule further in my PR: #6874 |
|
@samaity: There are still build failures. Can you please check? |
a288629 to
4dbfef7
Compare
…pport a… (sonic-net#6831) To fix [DPB| wrong aliases for interfaces](sonic-net#6024) issue, implimented flexible alias support [design doc](sonic-net/SONiC#749) > [[dpb|config] Fix the validation logic of breakout mode](sonic-net/sonic-utilities#1440) depends on this 1. Removed `"alias_at_lanes"` from port-configuration file(i.e. platfrom.json) 2. Added dictionary to "breakout_modes" values. This defines the breakout modes available on the platform for this parent port, and it maps to the alias list. The alias list presents the alias names for individual ports in order under this breakout mode. ``` { "interfaces": { "Ethernet0": { "index": "1,1,1,1", "lanes": "0,1,2,3", "breakout_modes": { "1x100G[40G]": ["Eth1"], "2x50G": ["Eth1/1", "Eth1/2"], "4x25G[10G]": ["Eth1/1", "Eth1/2", "Eth1/3", "Eth1/4"], "2x25G(2)+1x50G(2)": ["Eth1/1", "Eth1/2", "Eth1/3"], "1x50G(2)+2x25G(2)": ["Eth1/1", "Eth1/2", "Eth1/3"] } } } ``` `config interface breakout` Signed-off-by: Sangita Maity <samaity@linkedin.com> device/mellanox/x86_64-mlnx_msn2700-r0/platform.json
…pport a… (sonic-net#6831) To fix [DPB| wrong aliases for interfaces](sonic-net#6024) issue, implimented flexible alias support [design doc](sonic-net/SONiC#749) > [[dpb|config] Fix the validation logic of breakout mode](sonic-net/sonic-utilities#1440) depends on this 1. Removed `"alias_at_lanes"` from port-configuration file(i.e. platfrom.json) 2. Added dictionary to "breakout_modes" values. This defines the breakout modes available on the platform for this parent port, and it maps to the alias list. The alias list presents the alias names for individual ports in order under this breakout mode. ``` { "interfaces": { "Ethernet0": { "index": "1,1,1,1", "lanes": "0,1,2,3", "breakout_modes": { "1x100G[40G]": ["Eth1"], "2x50G": ["Eth1/1", "Eth1/2"], "4x25G[10G]": ["Eth1/1", "Eth1/2", "Eth1/3", "Eth1/4"], "2x25G(2)+1x50G(2)": ["Eth1/1", "Eth1/2", "Eth1/3"], "1x50G(2)+2x25G(2)": ["Eth1/1", "Eth1/2", "Eth1/3"] } } } ``` `config interface breakout` Signed-off-by: Sangita Maity <samaity@linkedin.com> device/mellanox/x86_64-mlnx_msn2700-r0/platform.json
…pport a… (sonic-net#6831) To fix [DPB| wrong aliases for interfaces](sonic-net#6024) issue, implimented flexible alias support [design doc](sonic-net/SONiC#749) > [[dpb|config] Fix the validation logic of breakout mode](sonic-net/sonic-utilities#1440) depends on this #### How I did it 1. Removed `"alias_at_lanes"` from port-configuration file(i.e. platfrom.json) 2. Added dictionary to "breakout_modes" values. This defines the breakout modes available on the platform for this parent port, and it maps to the alias list. The alias list presents the alias names for individual ports in order under this breakout mode. ``` { "interfaces": { "Ethernet0": { "index": "1,1,1,1", "lanes": "0,1,2,3", "breakout_modes": { "1x100G[40G]": ["Eth1"], "2x50G": ["Eth1/1", "Eth1/2"], "4x25G[10G]": ["Eth1/1", "Eth1/2", "Eth1/3", "Eth1/4"], "2x25G(2)+1x50G(2)": ["Eth1/1", "Eth1/2", "Eth1/3"], "1x50G(2)+2x25G(2)": ["Eth1/1", "Eth1/2", "Eth1/3"] } } } ``` #### How to verify it `config interface breakout` Signed-off-by: Sangita Maity <samaity@linkedin.com>
Signed-off-by: Sangita Maity samaity@linkedin.com
Why I did it
To fix DPB| wrong aliases for interfaces issue, implimented flexible alias support design doc
How I did it
"alias_at_lanes"from port-configuration file(i.e. platfrom.json)How to verify it
config interface breakoutWhich release branch to backport (provide reason below if selected)