Hi! First post here: my apologies if this is posted in the wrong part of the forum, or I’m asking something of a naive question.
I was curious to research how a CRS518 switch might fair in a relatively lightweight, ST 2110 + Dante setup, along with the different network architectures that one could implement with the device, and find myself diving into some of the documentation for the device.
In particular, I found myself looking through the documentation page on L3 Hardware Offloading — curious to understand what can (and can’t) be achieved at “near wire speed” in the RouterOS ecosystem, with regards to multicast traffic.
Whilst reading, I spotted this:
IPv4 Multicast Routing Support — CPU. The feature is supported, but performed by software (CPU).
I'd like to ensure I'm understanding what I've read correctly. Which of the following is correct — if either?
- To be routed between subnets, multicast data must flow through the CPU.
- Only multicast frames flowing through the same broadcast domain, “pruned” by IGMP Snooping (if required), can be directly forwarded by the switch chip.
- If a multicast packet must cross between subnets, it must flow through the CPU, be routed in software, and flow back out to the switch chip.
- Multicast data can be routed between VLANs, within the switch chip, at near-wire speed — once the CPU has "helped" to set things up.
- The multicast routing (MRIB) is set-up by the CPU, but the actual L3 routing happens within the switch chip.
- IGMP and PIM packets need to be forwarded to the CPU to maintain the MRIB — but
- the multicast data itself does not need to be forwarded to the CPU for onward routing.
For clarity, I was reading the documentation with regards to aCRS518-16XS-2XQswitch, with a Marvell 98DX8525switch chip as the installed ASIC — but I am ultimately curious as to how this applies across all products.
TD;DR: At present, is routed multicast always limited by the CPU’s throughput in the MikroTik ecosystem? Is there any hardware acceleration at all, or is the process purely a software routine?
Thanks in advance for reading — please do share any wisdom you may have! ![]()