-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DPB] Port Breakout issue on Mellanox SN2700 #9478
Comments
@tw0byt3 Can you provide more information like tech support and version where it is reported? |
@praveen-li @zhenggen-xu FYI can you please look? I believe it might be related to the DPB infra as I don't see it has anything to do with platform specific portion. |
@dgsudharsan The below is the output of show version SONiC Software Version: SONiC.ssdev2 Platform: x86_64-mlnx_msn2700-r0 Docker images: |
Thanks. Can you also add techsupport information? |
@dgsudharsan I am sorry but I was unable to share the .zip file over here. Can you let me know what is needed and how I can share the same with you? |
@tw0byt3 Can you then attach your configuration file here? We will try to recreate locally. |
@tw0byt3 Looks like many others with different platforms are reporting the same. @zhenggen-xu @praveen-li I believe this is a generic DPB infra related issue. Could you please help here? |
Kindly provide the config. |
I was trying to do DPB on the sonic was built two days ago with my fix PR #9418 and it works correctly. |
The problem is fixed by adding sonic-types to sonic-flex_counter yang model: |
@dgsudharsan @praveen-li Output of Breakout : root@localhost:~# config interface breakout Ethernet0 4x10G[25G] -f -v -y Running Breakout Mode : 1x100G[50G,40G,25G,10G] Ports to be deleted : After running Logic to limit the impact Final list of ports to be deleted : |
@tw0byt3 Is this some other issue? Why logs is different? |
@mykolaxgerasymenko This is the same issue, but the output differs when -v is used for verbose output |
What is the sonic version did you use for show last logs? |
@mykolaxgerasymenko Platform: x86_64-mlnx_msn2700-r0 Docker images: |
@tw0byt3 Could you please try DPB on the latest SONiC image to localize the problem you faced?
But please do not use -v (verbose) option, because with this option I have the same error you showed:
Without the -v mode, I got a successful result:
|
@mykolaxgerasymenko I tried the DPB on the latest SONiC image and applied the change from the PR #9487
The Output of the Breakout yet remains the same
I also see that a new_port_config.json file is created in the root user home directory post the command is entered and file includes this: |
I am having the same exact problem on a broadcom Celestica DX010. Should I open a new bug report or post mine here? I posted this on the Google Forum as well but no one answered from there
|
Same issue is seen in DellEMC Z9332f platform(ASIC: TH3) as well. root@sonic:~# config interface breakout Ethernet0 1x100G[40G] -y -f Running Breakout Mode : 1x400G Ports to be deleted : After running Logic to limit the impact Final list of ports to be deleted : |
There are 2 issues which are causing this.
Once these changes are made, the breakout works as expected, but I noticed that the swss container then starts to break. Trying to identify what exactly is causing this issue as of now. Any suggestions would be appriciated. |
config_db used in DellEMC Z9332f: |
@tw0byt3 lets have a quick call, sometime b/w 5-6 P.M or 9-10 P.M PST, We can discuss the code in question to help you debug it faster. It is generic python code and needed no expertise of networking feature as such. Thx. |
@tw0byt3 Please remove Ethernet4 from your configuration if you have to breakout Ethernet0 4x. In 2700 if you need to breakout the first or third port into 4x10G you need to disable the immediate port. Since DPB doesn't have an infra to handle this limitation, we can remove the port from config_db.json (Ethernet4) and perform breakout on Ethernet0. eg Ethernet0 0 10G 9100 N/A etp1a routed down down QSFP+ or later N/A |
@dgsudharsan |
@mbze430 This is a specific limitation for Mellanox SN2700 platform. |
@praveen-li Sure, we can schedule a call and work on it. You can reach out to me at [email protected] for further discussions. |
@dgsudharsan
just for fun I made them UPPER CASE. and did a config reload the result is still the same. Either lower case or upper case it won't breakout the port |
@mbze430 Might be a different problem them. @praveen-li Please help. |
@mbze430 Can you do breakout with verbose mode like |
admin@dx010:~$ sudo config interface breakout Ethernet0 4x10G[25G] -v admin@dx010:~$ cat /etc/sonic/config_db.json |
Hi Folks — Any update on this? We tried it on the latest 202106 Mellanox build but still no luck. Kindly see the version info and the error below: admin@r2:~$ show version SONiC Software Version: SONiC.202106.62230-1aa225cd0 Platform: x86_64-mlnx_msn2700-r0 Docker images: admin@bkc-r2:~$ sudo config interface breakout Ethernet0 4x10G[25G] Running Breakout Mode : 1x100G[50G,40G,25G,10G] Ports to be deleted : After running Logic to limit the impact Final list of ports to be deleted : |
@praveen-li will follow-up offline. |
Target to have an update next week |
that would be great. looking forward to it. Will it be going into only the master or it will fall on the older branches?
On Thursday, January 13, 2022, 12:11:02 PM CST, Yanzhao Zhang ***@***.***> wrote:
Target to have an update next week
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Confirmed also affecting Celestica DX010 on the latest build on the 202106 branch. |
device_metadata. libYang converts ietf yang types to lower case internally,which creates false config diff for us while DPB. This PR fixes the issue by not precessing false diff. Related issue" sonic-net/sonic-buildimage#9478 Signed-off-by: Praveen Chaudhary <[email protected]>
@praveen-li Can you provide an ETA for the fix? |
Need @praveen-li to fix the build failure of #2066 |
device_metadata. libYang converts ietf yang types to lower case internally,which creates false config diff for us while DPB. This PR fixes the issue by not precessing false diff. Related issue" sonic-net/sonic-buildimage#9478 Signed-off-by: Praveen Chaudhary <[email protected]>
device_metadata. libYang converts ietf yang types to lower case internally,which creates false config diff for us while DPB. This PR fixes the issue by not precessing false diff. Related issue" sonic-net/sonic-buildimage#9478 #### What I did fixes issue: sonic-net/sonic-buildimage#9478 #### How I did it libYang converts ietf yang types to lower case internally,which creates false config diff for us while DPB. Example: For DEVICE_METADATA['localhost']['mac'] type is yang:mac-address. Libyang converts from 'XX:XX:XX:E4:B3:DD' -> 'xx:xx:xx:e4:b3:dd' so args for function _recurCreateConfig in this case will be: diff = DEVICE_METADATA['localhost']['mac'] where DEVICE_METADATA': {'localhost': {'mac': ['XX:XX:XX:E4:B3:DD', 'xx:xx:xx:e4:b3:dd']}}} Note: above dict is representation of diff in config given by diffJson library. out = 'XX:XX:XX:e4:b3:dd' inp = 'xx:xx:xx:E4:B3:DD' I add a check to avoid processing of such config diff for DPB. #### How to verify it Added a unit test. Build time.
This issue regarding upper case MAC should be fixed with Praveen's changes getting merged in latest master branch. |
device_metadata. libYang converts ietf yang types to lower case internally,which creates false config diff for us while DPB. This PR fixes the issue by not precessing false diff. Related issue" sonic-net/sonic-buildimage#9478 #### What I did fixes issue: sonic-net/sonic-buildimage#9478 #### How I did it libYang converts ietf yang types to lower case internally,which creates false config diff for us while DPB. Example: For DEVICE_METADATA['localhost']['mac'] type is yang:mac-address. Libyang converts from 'XX:XX:XX:E4:B3:DD' -> 'xx:xx:xx:e4:b3:dd' so args for function _recurCreateConfig in this case will be: diff = DEVICE_METADATA['localhost']['mac'] where DEVICE_METADATA': {'localhost': {'mac': ['XX:XX:XX:E4:B3:DD', 'xx:xx:xx:e4:b3:dd']}}} Note: above dict is representation of diff in config given by diffJson library. out = 'XX:XX:XX:e4:b3:dd' inp = 'xx:xx:xx:E4:B3:DD' I add a check to avoid processing of such config diff for DPB. #### How to verify it Added a unit test. Build time.
@praveen-li will double check if this issue is fixed already by #2066. Thanks. |
this is done and close per YANG subgroup discussion. |
device_metadata. libYang converts ietf yang types to lower case internally,which creates false config diff for us while DPB. This PR fixes the issue by not precessing false diff. Related issue" sonic-net/sonic-buildimage#9478 #### What I did fixes issue: sonic-net/sonic-buildimage#9478 #### How I did it libYang converts ietf yang types to lower case internally,which creates false config diff for us while DPB. Example: For DEVICE_METADATA['localhost']['mac'] type is yang:mac-address. Libyang converts from 'XX:XX:XX:E4:B3:DD' -> 'xx:xx:xx:e4:b3:dd' so args for function _recurCreateConfig in this case will be: diff = DEVICE_METADATA['localhost']['mac'] where DEVICE_METADATA': {'localhost': {'mac': ['XX:XX:XX:E4:B3:DD', 'xx:xx:xx:e4:b3:dd']}}} Note: above dict is representation of diff in config given by diffJson library. out = 'XX:XX:XX:e4:b3:dd' inp = 'xx:xx:xx:E4:B3:DD' I add a check to avoid processing of such config diff for DPB. #### How to verify it Added a unit test. Build time.
root@localhost:~# config interface breakout Ethernet0 4x10G[25G]
Do you want to Breakout the port, continue? [y/N]: y
Running Breakout Mode : 1x100G[50G,40G,25G,10G]
Target Breakout Mode : 4x10G[25G]
Ports to be deleted :
{
"Ethernet0": "100000"
}
Ports to be added :
{
"Ethernet0": "10000",
"Ethernet1": "10000",
"Ethernet2": "10000",
"Ethernet3": "10000"
}
After running Logic to limit the impact
Final list of ports to be deleted :
{
"Ethernet0": "100000"
}
Final list of ports to be added :
{
"Ethernet0": "10000",
"Ethernet1": "10000",
"Ethernet2": "10000",
"Ethernet3": "10000"
}
Note: Below table(s) have no YANG models:
KDUMP, SNMP, SNMP_COMMUNITY, XCVRD_LOG,
Below Config can not be verified, It may cause harm to the system
{}
Do you wish to Continue? [y/N]: y
Create Config to load in DB, Failed
'str' object has no attribute 'append'
Config Diff Generation failed
'str' object has no attribute 'append'
'str' object has no attribute 'append'
Port Deletion Failed
[ERROR] Port breakout Failed!!! Opting Out
Failed to break out Port. Error:
Can someone help me identity there is this str object?
The text was updated successfully, but these errors were encountered: