Skip to content

Upgrade SONiC to Debian 10

lguohan edited this page Feb 10, 2020 · 5 revisions

Upgrading SONiC to Debian 10 Stretch

Motivation

Debian 9 was released in July 6, 2019. The main motivations for upgrade SONiC to Debian 10 are:

  • Debian 10 use 4.19 kernel
  • Debian 10 use Python3 as the default

Approach

SONiC uses Debian 10 for both base image and containers. There are two approaches to upgrade SONiC to Debian 10.

  • Approach 1: Upgrade both base image and containers to Debian 10

    • Pros: minimum changes to current build system.
    • Cons: Every container needs to be upgraded.
  • Approach 2: Upgrade only base image to Debian 10

    • Pros: Container is not changed.
    • Cons: Need to support two build environments.

Both approach meet the above motivations. Approach 2 looks favorable since we only need to upgrade the base images and containers are not affected. The upgrade work is mostly orthogonal to existing SONiC feature development. Later, we can then upgrade container one-by-one.

Development model

Before these two branches are merged into Azure:master repo, please generate PR against the above two repos.

These two branches will be periodically (per week) rebased to Azure:master to sync with latest development.

Source code and Image

  • Buster-based SONiC branch is at here.
  • Buster-based SONiC image is at Broadcom, vs

Timeline

  • Plan to merge Debian 10 based SONiC to master on April March 30th, 2020.
  • Plan to release Debian 10 based SONiC Jun 30th, 2020.

Progress

What has been done so far

  • Developed a stretch-based sonic-slave build environment

  • Build Debian 4.19 kernel and some kernel modules in buster-based sonic-slave

  • Upgrade sonic base image to Debian 4.19

  • Build broadcom ASIC kernel module for 4.19 kernel

  • A working sonic image has been built on Broadcom platform and pass basic tests such as BGP, FIB. (TBD)

  • Porting all kernel patches to 4.19 kernel

    • Microsoft ported generic kernel patches to 4.19
    • Platform vendors will need to port their own patches to 4.19
      • broadcom
      • mellanox
      • marvell
  • Porting ASIC drivers to 4.19 kernel

    • All ASIC vendors will need to port their ASIC drivers to 4.19 kernel
  • Platform drivers

    • Platform vendors will need to port their platform drivers to 4.19 kernel
  • Management vrf needs refactor due to removal of cgexec kernel patch. (dell)

  • Arm build support (marvel)

Clone this wiki locally