Skip to content
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

[multi-asic][vs]: Add new multi-asic vs hwsku with four asics #6558

Merged
merged 6 commits into from
Feb 23, 2021

Conversation

SuvarnaMeenakshi
Copy link
Contributor

@SuvarnaMeenakshi SuvarnaMeenakshi commented Jan 25, 2021

- Why I did it

  • Current mutli-asic vs hwsku consists of 6 asics with each asic having 32 interfaces. When bringing this up, below issue was seen:
  • When all 32 interfaces(sonic interfaces and linux interface) are set to 9100 mtu, DMA error is seen "DMA: Out of SW-IOMMU space for 4096 bytes at device 0000:06:03.0" which can be fixed by updating swiotlb=65536 in /host/grub/grub.cfg .

In order to keep multi-asic VS lighter and easier to bring up and test, new hwsku 'msft_four_asic_vs' is added to represent 4-asic hwsku with 2 frontend asics and 2 backend asics and each asic having 8 interfaces interconnected by port-channels.

- How I did it

  • Add msft_four_asic_hwsku directory to have the right number of directories (4) and update port_config.ini and lanemap.ini files to include 8 ports information.
  • Add topology.sh script to create the internal asic-asic connectivity.

- How to verify it

  • Update asic.conf with the 4 asic information as below and build sonic-vs.img:
    NUM_ASIC=4
    DEV_ID_ASIC_0=0
    DEV_ID_ASIC_1=1
    DEV_ID_ASIC_2=2
    DEV_ID_ASIC_3=3
  • Modify sonic_multiasic.xml to have 8 front panel interfaces.
  • create virtual switch using "sudo virsh sonic_mutliasic.xml" command.
  • Start topology service and Load config_db files for switch and each asic.
  • Ensure that that all internal interfaces and port_channels are coming up.
    multi-asic vs testbed:
  • Bring up mutli-asic VS testbed with a multi-asic image(asic.conf updated to 4 asics) and using t1-lag topology.
    ./testbed-cli.sh -t vtestbed.csv -m veos_vtb -k ceos add-topo vms-kvm-four-asic-t1-lag password.txt
  • Load minigraph/config_dbs.
  • Ensure all internal and external interfaces come up.
  • No change on single asic vs.

- Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012

- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)

a four asic hwsku with 8 front panel interfaces.
This modification is done to keep the virtual switch
lighter than current six asic hwsku.

Signed-off-by: SuvarnaMeenakshi <[email protected]>
8 interfaces virtual switch instead of 64 interfaces.

Signed-off-by: SuvarnaMeenakshi <[email protected]>
@@ -0,0 +1,82 @@
#!/bin/bash
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can remove this file

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed this file.

sudo ip netns exec asic$ASIC ip link set dev eth$NUM down
sudo ip netns exec asic$ASIC ip link delete dev eth$NUM
echo "$ASIC: eth$NUM"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need this echo statement?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need this echo statement, removed echo statements added for debugging.

@judyjoseph
Copy link
Contributor

LGTM

Keep the msft_multi_asic vs hwsku with 6 asics configuration.

Signed-off-by: SuvarnaMeenakshi <[email protected]>
@SuvarnaMeenakshi SuvarnaMeenakshi changed the title [multi-asic][vs]: Modify multi-asic vs hwsku 'msft_multi_asic_vs' to four asic [multi-asic][vs]: Add new multi-asic vs hwsku with four asics Feb 16, 2021
Copy link
Contributor

@judyjoseph judyjoseph left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also to confirm the plan is to use the file sonic_multiasic.xml for both 4 and 6 ASIC vs

@SuvarnaMeenakshi
Copy link
Contributor Author

SuvarnaMeenakshi commented Feb 22, 2021

Also to confirm the plan is to use the file sonic_multiasic.xml for both 4 and 6 ASIC vs

sonic_mutliasic.xml in platform/vs directory supports 6 ASIC vs with 64 interfaces.
If we have to bring up 4 ASIC vs, this file has to be modified to have 8 external interfaces.
I have mentioned that point in the PR description, I will raise a separate PR to update README file to bring up 6-ASIC or 4-ASIC VS.

In sonic-mgmt, the xml file to create KVM is generated based on the number of front-panel interfaces.

Thanks, good to update the README.

@SuvarnaMeenakshi
Copy link
Contributor Author

Also to confirm the plan is to use the file sonic_multiasic.xml for both 4 and 6 ASIC vs

sonic_mutliasic.xml in platform/vs directory supports 6 ASIC vs with 64 interfaces.
If we have to bring up 4 ASIC vs, this file has to be modified to have 8 external interfaces.
I have mentioned that point in the PR description, I will raise a separate PR to update README file to bring up 6-ASIC or 4-ASIC VS.

In sonic-mgmt, the xml file to create KVM is generated based on the number of front-panel interfaces.

Thanks, good to update the README.

Have updated README here: #6867

@SuvarnaMeenakshi SuvarnaMeenakshi merged commit d88e8cf into sonic-net:master Feb 23, 2021
SuvarnaMeenakshi added a commit to sonic-net/sonic-mgmt that referenced this pull request Feb 25, 2021
…d 8 interfaces (#2858)

What is the motivation for this PR?
sonic-net/sonic-buildimage#6558 will add new hwsku msft_four_asic_vs which is a 4 asic hwsku with 8 front panel interfaces. With this change, add supporting files to sonic-mgmt so that the new 4 asic hwsku testbed can be brought up.
How did you do it?
Add new t1-lag topo file to support 8 front panel interfaces.
Modify sonic.xml.j2 file to use higher number of vcpus based on the multi-asic hwsku, 6 asic hwsku will require more vcpus.
Add new testbed for msft_four_asic_vs and new DUT vlab-08.
Add a new minigraph for mutli-asic vlab-08 DUT to come up with t1-lag topology.
Start topology service before load_minigraph for multi-asic vs platform.
How did you verify/test it?
Bring up multi-asic vs image with 4-asics testbed using add-topo:
./testbed-cli.sh -t vtestbed.csv -m veos_vtb -k ceos add-topo vms-kvm-four-asic-t1-lag password.txt
Copy the minigraph to virtual switch.
Start topology service (systemctl start topology.service)
load minigraph.
Ensure that all internal and external interfaces are up and all BGP sessions are up.
abdosi pushed a commit that referenced this pull request Feb 26, 2021
- Why I did it
Current mutli-asic vs hwsku consists of 6 asics with each asic having 32 interfaces. When bringing this up, below issue was seen:
When all 32 interfaces(sonic interfaces and linux interface) are set to 9100 mtu, DMA error is seen "DMA: Out of SW-IOMMU space for 4096 bytes at device 0000:06:03.0" which can be fixed by updating swiotlb=65536 in /host/grub/grub.cfg .In order to keep multi-asic VS lighter and easier to bring up and test, new hwsku 'msft_four_asic_vs' is added to represent 4-asic hwsku with 2 frontend asics and 2 backend asics and each asic having 8 interfaces interconnected by port-channels.
- How I did it
Add msft_four_asic_hwsku directory to have the right number of directories (4) and update port_config.ini and lanemap.ini files to include 8 ports information.
Add topology.sh script to create the internal asic-asic connectivity.
- How to verify it
Update asic.conf with the 4 asic information as below and build sonic-vs.img:
NUM_ASIC=4
DEV_ID_ASIC_0=0
DEV_ID_ASIC_1=1
DEV_ID_ASIC_2=2
DEV_ID_ASIC_3=3
Modify sonic_multiasic.xml to have 8 front panel interfaces.
create virtual switch using "sudo virsh sonic_mutliasic.xml" command.
Start topology service and Load config_db files for switch and each asic.
Ensure that that all internal interfaces and port_channels are coming up.
multi-asic vs testbed:
Bring up mutli-asic VS testbed with a multi-asic image(asic.conf updated to 4 asics) and using t1-lag topology.
./testbed-cli.sh -t vtestbed.csv -m veos_vtb -k ceos add-topo vms-kvm-four-asic-t1-lag password.txt
Load minigraph/config_dbs.
Ensure all internal and external interfaces come up.
No change on single asic vs.
carl-nokia pushed a commit to carl-nokia/sonic-buildimage that referenced this pull request Aug 7, 2021
…net#6558)

- Why I did it
Current mutli-asic vs hwsku consists of 6 asics with each asic having 32 interfaces. When bringing this up, below issue was seen:
When all 32 interfaces(sonic interfaces and linux interface) are set to 9100 mtu, DMA error is seen "DMA: Out of SW-IOMMU space for 4096 bytes at device 0000:06:03.0" which can be fixed by updating swiotlb=65536 in /host/grub/grub.cfg .In order to keep multi-asic VS lighter and easier to bring up and test, new hwsku 'msft_four_asic_vs' is added to represent 4-asic hwsku with 2 frontend asics and 2 backend asics and each asic having 8 interfaces interconnected by port-channels.
- How I did it
Add msft_four_asic_hwsku directory to have the right number of directories (4) and update port_config.ini and lanemap.ini files to include 8 ports information.
Add topology.sh script to create the internal asic-asic connectivity.
- How to verify it
Update asic.conf with the 4 asic information as below and build sonic-vs.img:
NUM_ASIC=4
DEV_ID_ASIC_0=0
DEV_ID_ASIC_1=1
DEV_ID_ASIC_2=2
DEV_ID_ASIC_3=3
Modify sonic_multiasic.xml to have 8 front panel interfaces.
create virtual switch using "sudo virsh sonic_mutliasic.xml" command.
Start topology service and Load config_db files for switch and each asic.
Ensure that that all internal interfaces and port_channels are coming up.
multi-asic vs testbed:
Bring up mutli-asic VS testbed with a multi-asic image(asic.conf updated to 4 asics) and using t1-lag topology.
./testbed-cli.sh -t vtestbed.csv -m veos_vtb -k ceos add-topo vms-kvm-four-asic-t1-lag password.txt
Load minigraph/config_dbs.
Ensure all internal and external interfaces come up.
No change on single asic vs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants