Let's imagine a network device with a built-in switch chip, configured to manage traffic between multiple ports. To isolate certain ports from each other, ports have been created several bridges.
The functionality of hardware offload on these bridges with the goal of improving performance by allowing the switch chip itself to handle traffic, instead of using the device's CPU.
At the end of the article you will find a small test that will allow you assess the knowledge acquired in this reading
Configuration
/interface bridge
add name=bridge1
add name=bridge2
/interface bridge port
add bridge=bridge1 interface=ether1
add bridge=bridge1 interface=ether2
add bridge=bridge2 interface=ether3
add bridge=bridge2 interface=ether4
Problem
After carrying out performance tests, significant inconsistencies are observed in the data transmission speed between the different bridges. While the first bridge is capable of handling traffic at the maximum cable speed, subsequent bridges show considerably lower performance.
Additionally, packets that need to be routed experience considerably high latency.
When inspecting the system status, it is discovered that the CPU is operating at its maximum capacity. Checking the hardware offload status reveals that only the first bridge has this functionality enabled.
This means that all traffic passing through subsequent bridges is handled through the CPU, creating a bottleneck and resulting in suboptimal performance.
[admin@MikroTik] > /interface bridge port print
Flags: X - disabled, I - inactive, D - dynamic, H - hw-offload
# INTERFACE BRIDGE HW
0 H ether1 bridge1 yes
1 H ether2 bridge1 yes
2 ether3 bridge2 yes
3 ether4 bridge2 yes
The root cause of this issue is that the device in question does not support port isolation on its switch chip. On devices that do not have this capability, only one bridge can benefit from the hardware offload functionality.
This results in high CPU utilization for traffic passing through the other bridges, leading to decreased performance and latency issues.
Symptoms:
- Absence of the “H” flag (hardware offload indicator) on the ports of subsequent bridges.
- Low data transmission speed on bridges that are not the first.
- High CPU usage.
- High latency for packets that need to be routed across bridges without hardware offload.
The problem lies in the device's limitations in handling multiple bridges with hardware offload enabled, due to the lack of support for port isolation.
This issue leads to inconsistent and potentially unacceptable network performance in environments that require a high degree of isolation and efficiency.
Possible consequences:
1. Inconsistent Performance:
The first and most obvious consequence would be inconsistently low performance for different segments of your network, which could be especially problematic if a constant level of performance is expected for critical applications or services.
2. CPU Overload:
Constantly high CPU usage not only affects the performance of traffic passing through the bridges, but could also have an impact on other functions and services running on the same device.
3. Latency Problems:
In applications or services that are sensitive to latency, such as VoIP or online gaming, the consequences could be even more serious, reaching the point of making those services practically unusable.
4. Hidden Costs:
The need to change or upgrade hardware to resolve this issue could result in additional unanticipated costs. Additionally, the time and resources spent identifying and solving problems represent other hidden costs.
Suggested Solutions:
1. Hardware Change:
The most direct way to solve the problem is to switch to a device that supports port isolation on multiple bridges with hardware offload.
2. Configuration Optimization:
Although not ideal, you can manually assign hardware offload functionality to the bridge that handles the most critical or voluminous traffic, thereby reducing the load on the CPU.
/interface bridge port set [find where bridge=bridge1] hw=no
/interface bridge port set [find where bridge=bridge2] hw=yes
3. Implementation of VLANs:
Using VLANs to segregate network traffic can be a more efficient alternative to using multiple bridges, especially if current hardware does not support multiple instances of hardware offload.
4. Firmware/Software Update:
In some cases, firmware or software updates could enable additional features that help mitigate or resolve the issue, although this is less likely if it is a hardware limitation.
5. Monitoring and Analysis:
Monitoring tools can help identify bottlenecks and provide insights into how to reconfigure the network to optimize performance, although this would not solve the underlying problem.
In conclusion
Limiting hardware offload on multiple bridges is a serious problem that can have multiple negative consequences on the performance and efficiency of a network.
Identifying and understanding the problem is the first step in finding the most appropriate solution, which could range from a simple reconfiguration to a complete hardware change.
Brief knowledge quiz
What do you think of this article?
Do you dare to evaluate your learned knowledge?
Recommended book for this article
Switching and Bridging RouterOS v7 Book
Study material for the MTCSWE Certification Course updated to RouterOS v7