Skip to content

Add SONiC VPP platform support - #301

Draft
l0wl3vel wants to merge 22 commits into
masterfrom
feat/sonic-vpp
Draft

Add SONiC VPP platform support#301
l0wl3vel wants to merge 22 commits into
masterfrom
feat/sonic-vpp

Conversation

@l0wl3vel

@l0wl3vel l0wl3vel commented May 20, 2026

Copy link
Copy Markdown
Contributor

Description

Use Sonic VPP image to emulate switch behaviour more accurately

What works

  • SONiC image building (locally)
  • Static breakout configuration (Dynamic breakouts are not supported)
  • SONiC config_db.json generation and loading

Outstanding issues

mini-lab

sonic-vpp related

  • isc/pixiecore do not receive DHCP requests from machine PXE because of an upstream issue with VLANs/Bridged Interfaces/L2 broadcasts. Change has been proposed and merged by a cisco engineer upstream.
  • unnumbered bgp sessions do not come up between leaf switches and exit nodes due to IPv6 RAs not getting relayed to host interfaces on the host switch, leaving the BGP session idle on the switch, while the exit node tries to unsuccessfully establish a session.
    • adding a missing host punt for a few IPv6 ICMPv6 messages to https://github.com/sonic-net/sonic-sairedis and rebuilding a SONiC image to allow the switch to aquire a link-local IPv6 address required for unnumbered BGP (@l0wl3vel has a working build setup and to-be-tested punt fix)

There is a build image with the required unnumbered BGP work, EVPN control-plane patches here: https://github.com/l0wl3vel/sonic-buildimage/tree/vpp-integration
Upstreaming these changes would be great from a maintenance perspective.

The three forked sonic repos should be moved into the metal-stack org if we want to offer this as an official flavor because they currently are located in @l0wl3vel s github profile and the base image on a personal docker-hub account.

closes: #300

Used AI-Tools ✨

  • Claude Opus used as research buddy/stand-in in for missing SONiC documentation

@l0wl3vel
l0wl3vel force-pushed the feat/sonic-vpp branch 4 times, most recently from c6d9d31 to 8446f3c Compare May 29, 2026 13:48
@l0wl3vel
l0wl3vel force-pushed the feat/sonic-vpp branch 2 times, most recently from 279b19f to 4c21015 Compare July 10, 2026 16:26
@l0wl3vel
l0wl3vel force-pushed the feat/sonic-vpp branch 3 times, most recently from 71f821f to 661a283 Compare July 26, 2026 10:29
@l0wl3vel l0wl3vel changed the title Use Sonic VPP image Add SONiC VPP platform support Jul 27, 2026
@l0wl3vel
l0wl3vel force-pushed the feat/sonic-vpp branch 2 times, most recently from a895dde to eb1e374 Compare July 27, 2026 11:48
@l0wl3vel l0wl3vel added the triage This should be talked about in the next planning. label Jul 27, 2026
@simcod simcod moved this to Upcoming in Development Jul 27, 2026
@metal-robot metal-robot Bot removed the triage This should be talked about in the next planning. label Jul 27, 2026
l0wl3vel added 11 commits July 28, 2026 12:25
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
includes
sonic-net/sonic-platform-vpp#212
and sonic-net/sonic-platform-vpp#220
for troubleshooting reasons

Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Removed hacks, that just about worked in sonic-vs but broke in sonic-vpp
- sonic-vpp requires first time init to generate
  VPP config files from hwsku lanemap and port
  config. If skipped the syncd container, in which
  vpp runs, will crash immediately
- /etc/sonic/sonic-environment is generated on first boot from
  /usr/share/sonic/device/x86_64-kvm_x86_64-r0/default_sku,
  so writing it serves no purpose as we reenabled firstboot
- switch to telnetlib3, due to telnetlib being deprecated

Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
- Split pipelines to build sonic_vs and sonic_vpp images
- Rename sonic flavor to sonic_vs
- Add sonic-vpp as sonic_vpp flavor
- Run integration tests for sonic_vpp

Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
@l0wl3vel
l0wl3vel force-pushed the feat/sonic-vpp branch 9 times, most recently from 446e66a to d82236f Compare July 30, 2026 19:29
l0wl3vel added 11 commits July 31, 2026 10:05
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
fixes sonic_vs with older (202505) image

Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
does nothing anymore

Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
it is configured using the sonic startup config, we run lldp.service, so
we do not need it anymore

Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
This reverts commit c9e1837.

Management VRF requires some more work around bootstrapping the switch
@l0wl3vel
l0wl3vel force-pushed the feat/sonic-vpp branch 2 times, most recently from 25011bc to bb3badd Compare July 31, 2026 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Upcoming

Development

Successfully merging this pull request may close these issues.

Use sonic-vpp target for OSS SONiC images

3 participants