“The chip is the heart of a switch.” This is already known to us. But a chip cannot work alone to allow the operation of a switch. Other familiar parts include the noisy fans that often reminds us the switches are working hard, and the power supplies that power up the switch. Then what about the operating systems? What else does an Ethernet switch consist of?
If taking an Ethernet switch apart as small as possible in mechanical level, there can be hundreds and thousands of components. But it is not the purpose of this post. In a simple way a switch basically consists of six components. See the table below:
Table: switch components in a simple way.
|Chassis||The metal part that contains other components. Have personal color and assembly options.|
|Power Supplies||1+1 redundant. They light up the switch.|
|Fans||There should be enough fans to cool down and they are also the evidence that the switch is alive.|
|Fan control PCBA||PCBA (Printed Circuit Board Assembly) where fans are connected.|
|CPU PCBA||The x86 or Power PC or ARM based processors that has it’s RAM, FLASH and PCIe that runs the switch OS.|
|Switch main board PCBA||The board that hosts the main switch silicon, interface cages, CPLDs (Complex Programmable Logic Devices) and PHYs (in case of RJ45 interfaces), this PCB is between 16 to 22 layers.|
Here is the top & front view of a Nephos NPS4806 48x10G & 6x40G switch for illustration. You can easily found the six basic components. It is based on MediaTak/Nephos Aries MT3258 silicon, which is protected by the middle fat heat sink. These Application Specific Integrated Circuits (ASICs) are packaged into ball grid array (BGA) and are normally large in size, because they have many interface pins underneath the silicon.
The CPLDs are responsible for system startup, managing the LEDs, fans and temperature sensors. The diagram of the main PCB board shows how different components are connected in the switch. The CPLDs are connected back to the CPU through the UART (Universal Asynchronous Receiver/Transmitter) or I2C (IC to IC Interconnect) bus.
Looking at the CPU that is based on Intel’s Atom C2538 and the MT3258 chip, there is a direct PCIe connection between them. This connection requires a Driver. You can try using OF-DPA (OpenFlow Data Plane Abstraction) on ONL (Open Network Linux) to drive this connection. Most of today’s switches are based on Broadcom chip, and the Driver is provided by the Broadcom SDK to the NOS (Network Operating System) vendors that they can include in their OS.
There are three CPLDs on this switch. The CPLD on the top controls the fans, temperature and LEDs. This CPLD has an expose I2C interface which is connected to the CPU board. The CPLD2 & CPLD3 are for controlling the SFPs. This switch has no on-board PHY interface, and uses the 10/1G SFP1 for interfaces. The CPLD2 &CPLD3 control the SFPs, TX Fault, TX Disable, RX LOSS and Mode. Each controls 24 SFPs.
Though there are certain components that are fixed in all switches, you will find that switches from different manufacturers have both many similarities and differences. They may be using the same Broadcom chips of Strata XGS Family or Strata DNX Family, however, their CPU board, CPLDs, and also commands used to read and write the I2C bus are different. That’s why porting the NOS between platforms is not easy and usually requires extensive testing. In short, the CPLD commands and I2C addresses might be different between such platforms.
Here are some pictures of several 10G, 25G, 40G and 100G switches based on Broadcom chips. The main difference that can be visually is the layout and the components used.
Juniper OCX1100-48SX is a 48x10G and 6x40G switch. It follows standard layout. And the left pic just presents some major components and the right pic displays some more details of the PCBAs.
Edge-Core AS6712 with 32x40G ports.
Edgecore Networks AS7300-54X with 48x25G and 6x100G ports.
Alpha Networks SNH-60×0-320F switch with 32x100G ports.
Of course an Ethernet switch is not complete with only hardware. The NOS installed also makes a difference. Some switches support only a certain type of NOS while some switches are “open”. These switches support an environment called ONIE (Open Network Installation Environment) and are known as white-box switches. An open networking switch support several compatible NOS over ONIE, such as Cumulus Linux, IP Infusion, Pica8, Open Network Linux, etc. With both the hardware and software ready, the switch can begin its work.
Now you can say that, well, making an Ethernet switch is just as simple as a BB8 model from Star Wars. You can complete one by yourself with ready-made materials. And if you are a master about switch, you may do better than just combining them together. This post is just for sharing some basic knowledge about switch. More technical knowledge about Ethernet switch can be obtained via firstname.lastname@example.org if you’re interested.