Skip to content
Yanzhao Zhang edited this page Oct 25, 2022 · 22 revisions

Q: What is SONiC?

A: SONiC is a collection of networking software components required to have a fully functional L3 device. It is designed meet the requirements of a cloud data center. It is fully open-sourced at OCP.


Q: What is SAI? What's the relationship between SONiC and SAI?

A: SAI stands for "Switch Abstraction Interface". It is a common API that is supported by many switch ASIC vendors. SONiC uses SAI to program the ASIC. This enabled SONiC to work across multiple ASIC platforms naturally.


Q: Is SONiC a Linux distribution?

A: No. SONiC is Linux-based, but is not a distribution by itself. Today, SONiC runs on Debian Jessie. SONiC has also been ported to Ubuntu (as a snap).


Q: How can I get SONiC?

A: If you clone the sonic-buildimage repo and follow the instructions there, you should be able to produce the SONiC image yourself. Our Jenkins server also produces a regular build. So you can download the image there as well. The list of supported devices and ASICs are maintained here.


Q: How can I get the SONiC source code?

A: SONiC is fully open-sourced on GitHub, and distributed under Apache License. It is maintained as multiple repositories instead of a single big repo for manageability reasons. The list of SONiC source code repos is maintained here.


Q: Why are certain SAI implementations only distributed in binary form?

A: SAI defines the common API supported by multiple ASIC vendors. The SAI implementation depends on each individual vendor's SDK, which may not be open-sourced itself. Therefore, depending on the vendor's license model, SONiC may or may not be allowed to open source the SAI implementation.


Q: Does SONiC offer Linux options, and/or can it be customized?

A: Today (March, 2017) SONiC requires Linux kernel 3.16. We built and tested on Debian Linux, but theoretically any distribution could be supported. It is fully open sourced and can be customized by users. A contributor’s guide is posted to cover how to add documentation and code as well as report and fix bugs.


Q: Which hardware platforms and ASIC chipsets are you running SONiC on?

A: SONiC supports all the ASICs that are supported by SAI. Those ASICs are available via various switch hardware through both ODMs and OEMs. Currently, SONiC focuses on single ASIC devices.

You can find a full list of supported devices and platforms here.


Q. Does SONiC have its own hardware?

A. No. SONiC is purely a software solution.


Q. How can I port SONiC to a new device?

A. Please follow the porting guide.


Q. Is SONiC deployed in Microsoft data centers today?

A. Yes, SONiC is deployed in Microsoft production data centers.


Q. How many devices are running SONiC?

A. The deployment is growing from one data center to cross regions. We plan to rapidly expand SONiC deployment over the coming months.


Q. How is SONiC supported?

A. SONiC is a community supported product. Microsoft is committed to engage with the community to keep SONiC relevant, reliable and stable. We use it in our own production network.

Microsoft has no plans to sell SONiC to customers or provide any network engineering or development support.


Q. What is the relationship between Azure Cloud Switch and SONiC?

A. Azure Cloud Switch was the previous project name of SONiC. That name has been deprecated.


Q. How can I contribute to SONiC?

A. SONiC welcome collaboration with the community in many different capacities. Please check the contributor's guide for details: https://github.com/Azure/SONiC/wiki

Q. How can I rerun a build for my PR?

A. In your PR, add "/azpw run Azure.sonic-buildimage" as comments, it will trigger a new build.

Clone this wiki locally