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

Adding vpp platform #1424

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

yue-fred-gao
Copy link

why

VPP is a new platform of SONiC. Here is the HLD: https://github.com/sonic-net/sonic-platform-vpp/blob/main/docs/HLD/SONICVPP-HLD.md. Currently, VPP is built by patching itself on top of VS platform, which requires it carrying a lot of diffs. It is very difficult to upgrade SONiC because patch may have a lot of conflicts. We will make VPP a platform as any other platforms to avoid patching.

What this change is doing

VPP SAI layer is built on top of vslib. It uses some classes from sonic-sairedis/meta so we need to export the header files from libsaimetata-dev.
This PR also adds some vpp specific logic to syncd_init_common.sh before starting syncd.

@lguohan
Copy link
Contributor

lguohan commented Oct 1, 2024

lgtm. @kcudnik to check.

Comment on lines +3 to +9
meta/Meta.h usr/include/sai
meta/AttrKeyMap.h usr/include/sai
meta/MetaKeyHasher.h usr/include/sai
meta/OidRefCounter.h usr/include/sai
meta/PortRelatedSet.h usr/include/sai
meta/Notification*.h usr/include/sai
meta/Globals.h usr/include/sai
Copy link
Collaborator

Choose a reason for hiding this comment

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

not sure if this is good idea to make those headers part of this package

Copy link
Collaborator

Choose a reason for hiding this comment

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

why you need those headers be present here ?

Copy link
Author

Choose a reason for hiding this comment

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

sonic-vpp is morphed from sonic-vs. Similar to vs, it uses classes from sonic-sairedis/meta so we need to export the header files from libsaimetata-dev.

Copy link
Collaborator

Choose a reason for hiding this comment

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

ok, let see how it will go

Copy link
Author

Choose a reason for hiding this comment

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

Thanks. What's the next step for this PR?

Copy link
Collaborator

Choose a reason for hiding this comment

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

i signed off

Copy link
Author

Choose a reason for hiding this comment

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

Thanks!

@kcudnik
Copy link
Collaborator

kcudnik commented Oct 2, 2024

i will need some meeting to discuss vpp platform to understand what is the long term goal here

@yue-fred-gao
Copy link
Author

i will need some meeting to discuss vpp platform to understand what is the long term goal here

Sounds good. When will be a good time for you?

@lguohan
Copy link
Contributor

lguohan commented Oct 3, 2024

vpp sai is the same concept as dash sai, instead of bmv2 implementation, this is dataplane implementation on top of vpp. the difference between bmv2 v.s vpp is the vpp will implementation API more like traditional switches asic, while bmv2 is on the dpu.

https://github.com/sonic-net/DASH/tree/main/dash-pipeline/SAI/src

@kcudnik
Copy link
Collaborator

kcudnik commented Oct 3, 2024

it seems for me like vpp is concept of another virtual switch, my question is why we need another virtual switch next to sairedis-VS and DASH bmv2 implementation? why we need to keep track and maintain of 3 virtual switches ?

@yue-fred-gao
Copy link
Author

it seems for me like vpp is concept of another virtual switch, my question is why we need another virtual switch next to sairedis-VS and DASH bmv2 implementation? why we need to keep track and maintain of 3 virtual switches ?

vpp is a very popular data plane with rich features. I am not familiar with vs but Riff and Jing have done some research evaluating the vpp and vs platform. @r12f and @zjswhhh , can you please share your research? bmv2 is a completely different data plane. It implements DPU while vpp and vs implement NPU functionalities.

@kcudnik
Copy link
Collaborator

kcudnik commented Oct 3, 2024

This still sounds like maintaining 3 different virtual switches at the same time

@zjswhhh
Copy link
Contributor

zjswhhh commented Oct 3, 2024

Hi @kcudnik - sonic vs platform only supports control plane. We wanted to be able to do data plane validate with virtual testbeds too, that was the intention for adding vpp platform.

We can't hold feature development till hardware is ready. We need virtual testbeds to provide more.

I have presented a smartswitch test plan based on vpp platform in community meeting. This is one example of the use case of vpp platform.
sonic-net/sonic-mgmt#13042
sonic-net/sonic-mgmt#13043

i will need some meeting to discuss vpp platform to understand what is the long term goal here

Copy link
Contributor

@zjswhhh zjswhhh left a comment

Choose a reason for hiding this comment

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

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants