Skip to content

Ethernet Switch OS

Proof of concept

Ethernet Switch OS is a proof of concept, built with the help of AI. It has not been thoroughly reviewed or hardened. Do not use it in production.

Ethernet Switch OS is a small Linux system for managed Ethernet switches. The whole configuration of the switch is described by YANG data models, mostly OpenConfig. You can change it in three ways:

Interface Where What for
Web UI https://<switch-ip>/ Status and the everyday settings. See Using the web UI.
CLI ssh <username>@<switch-ip> Every setting, interactively. See Using the CLI.
RESTCONF https://<switch-ip>/restconf Every setting, from scripts and tools. See Using RESTCONF.

All three work on the same configuration. A change made through one is visible in the others. Each feature page describes the feature and then how to configure it in each of the three.

What the switch can do

  • VLANs: IEEE 802.1Q access and trunk ports, or simple port-based groups without tags.
  • Management IP address: static IPv4 addresses and/or a DHCP client, on one or more VLANs.
  • Spanning tree: STP, RSTP and MSTP.
  • LLDP: the switch announces itself and shows the neighbors of each port.
  • SNMP: a read-only SNMPv3 agent (system group, IF-MIB, BRIDGE-MIB, Q-BRIDGE-MIB, RSTP-MIB, LLDP-MIB).
  • Firmware update through a web page, curl or the swupdate command, with the configuration kept. The Raspberry Pi and QEMU x86-64 switches have two firmware slots (A/B) and roll back a failed update by themselves. The Zyxel GS1900-8 and the Albrecht test switch have only one: read Firmware update before their first update.

What it cannot do (yet) is listed under Limitations. Read that page before you rely on the switch for anything. How it compares to the firmware the Zyxel GS1900-8 is sold with, and to the Teltonika TSW202, is in Comparison with other firmware.

Supported hardware

Hardware SoC Ports Status Board file
Zyxel GS1900-8 (rev A1) Realtek RTL8380 lan1 … lan8, Gigabit Ethernet Supported. See Installation. zyxel-gs1900-8-a1
Albrecht RTL8382MI test switch Realtek RTL8382M 20 × Gigabit Ethernet Experimental. See Installation. albrecht-rtl8382mi-test
Raspberry Pi Zero with the 4-port managed switch HAT Realtek RTL8367S, Broadcom BCM2835 4 × Gigabit Ethernet Experimental. See Installation. rpi-managed-switch-rpi0
Zyxel GS1900-8 emulated in QEMU (rtl838x-qemu) Realtek RTL8380 (emulated) lan1 … lan8 Supported. Same image as the real switch, with an emulated flash that keeps the configuration in a file. See Zyxel GS1900-8 in QEMU. zyxel-gs1900-8-a1
Switch emulated in QEMU x86-64 x86-64 (emulated) lan1 … lan8 Experimental. A board of its own, with two firmware slots and rollback; the configuration is kept on a virtual disk. See QEMU x86-64 switch. qemux86-64-switch

The board file is what you name when you build the firmware.

Where to start

  1. Installation: downloading the images and getting Ethernet Switch OS onto the switch, or the emulated Zyxel GS1900-8 or QEMU x86-64 switch to try it without one.
  2. Getting started: factory settings, how to connect, and how the web UI, the CLI and RESTCONF work. Read about saving the configuration before the feature pages.
  3. The feature pages: system information, management IP address, ports, VLANs, spanning tree, LLDP, SNMP, password and factory reset.