Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Why the classic “switch vs bridge” explanation breaks down in Linux — and how DSA merges both into a single model.
If you search for “switch vs bridge vs router”, you’ll find hundreds of articles explaining the differences.
And almost all of them are technically correct.
And almost all of them are useless once you touch a modern Linux-based router.
Because in Linux, the line between switching and bridging is not just blurry — it is intentionally merged.
The textbook definition says:
That’s fine — in isolation.
But modern Linux networking doesn’t follow this clean separation anymore.
In modern Linux (especially with DSA), everything revolves around the bridge.
br-lan ├── lan1 ├── lan2 └── wlan0
This looks like software glue — but it’s actually the central networking model.
Linux does not expose a “switch API”.
Instead, it says:
“Describe your Layer 2 topology using a bridge.”
The switch still exists.
It’s just no longer the thing you configure directly.
With DSA:
This leads to a surprising conclusion:
You are always configuring a bridge — even when you think you are configuring a switch.
At first glance, it looks like Linux is doing everything in software.
But when things are working correctly:
The bridge is not forwarding packets.
It is describing how they should be forwarded.
The illusion disappears when something cannot be offloaded.
For example:
Now traffic goes through the CPU — and suddenly your “switch” behaves like a very slow software bridge.
This is where many users think:
“Linux networking is slow.”
It isn’t.
You just fell off the hardware fast path.
Misunderstanding this model leads to:
Especially on small routers, where CPU resources are limited, staying in the hardware path is critical.
Instead of exposing every possible configuration, RouterWRT takes a different approach:
The goal is simple:
Make the “right” configuration also the fast one.
The question “switch vs bridge” made sense when hardware and software were separate worlds.
In modern Linux networking, they are not.
The bridge is the control plane.
The switch is the dataplane.
And if everything is configured correctly, they work together so seamlessly that you don’t notice the difference.
Until you do.
Understanding that boundary is the difference between a network that just works — and one that constantly fights you.