Skip to content

Upgrade SONiC to Debian 9

lguohan edited this page Nov 29, 2017 · 2 revisions

Upgrading SONiC to Debian 9 Stretch

Motivation

Debian 9 was released in June 17, 2017. The main motivations for upgrade SONiC to Debian 9 are:

  • Debian 9 use 4.9 kernel which supports VRF-lite
  • Debian 9 supports overlayfs which is used by default starting from docker 17.09.0-ce

Approach

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

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

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

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

Both approach meet the above motivations. Approach 2 seems 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.

Progress

What has been done so far

  • Developed a stretch-based sonic-slave build environment
  • Build Debian 4.9 kernel and some kernel modules in stretch-based sonic-slave
  • Upgrade sonic base image to Debian 9
  • Switch to use overlayfs for docker
  • Build broadcom ASIC kernel module for 4.9 kernel
  • A working sonic image has been built on Broadcom platform and pass basic tests such as BGP, FIB.

Source code and Image

  • Stretch-based SONiC branch is at here.
  • Stretch-based SONiC image is at here. (Broadcom-only)

Limitation

  • None of current sonic kernel patch is ported to 4.9 kernel.
  • Only broadcom ASIC driver is ported to 4.9 kernel.
  • None of platform drivers has been ported to 4.9 kernel.
  • User need to manually specify the Build env for a specific module.

Timeline

  • Allow user to specify the build environment in Build system on Jan 15th, 2018.
  • Plan to merge Debian 9 based SONiC to master on Feb 15th, 2018.
  • Plan to relase Debian 9 based SONiC March 15th, 2018.

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 (1~2 weeks) rebased to Azure:master to sync with latest development.

Call for Action

  • Porting 29 kernel patches to 4.9 kernel

    • Microsoft will port generic kernel patches to 4.9
    • Platform vendors will need to port their own patches to 4.9
  • Porting ASIC drivers to 4.9 kernel

    • ASIC vendors will need to port their ASIC drivers to 4.9 kernel
  • Platform drivers

    • Platform vendors will need to port their platform drivers to 4.9 kernel
Clone this wiki locally