-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Upgrade SONiC to Debian 9
Upgrading SONiC to Debian 9 Stretch
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
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.
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.
- 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.
- 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.
- Build image repo and branch: https://github.com/lguohan/sonic-buildimage/tree/stretch
- Kernel image repo and branch: https://github.com/lguohan/sonic-linux-kernel/tree/stretch
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.
-
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
-
For Users
-
For Developers
-
Subgroups/Working Groups
-
Presentations
-
Join Us