Hello. I’m running SwOS 2.18 on a CSS318-16G-2S+ switch.
I’m trying to understand why the default flow control settings are set as they are. For all ports: TX (transmit) is enabled by default; RX (receive) is off.
One of the 10 Gbps ports is being used as the core switch uplink.
The second 10 Gbps port is being used for VM/LXC traffic by a Proxmox node.
My upstream switch is my core switch; it’s a QNAP 16 port 10 Gbps switch. By default, flow control is off on all its ports. This is the recommended setting in the QNAP manual; they advise not enabling flow control unless something isn’t working when it’s disabled.
My past experience with 10 Gbps traffic tells me I should turn flow control completely off–at least on the Proxmox node and the uplink trunk port. But before I just YOLO it, I’d like to understand why it’s on to begin with.
Is the switch chip in this switch so lightweight that it needs to be able to throttle outgoing traffic? Something else?
Put another way, is there a good reason NOT to turn off flow control? I assume if I turn it off and don’t start seeing errors in its stats, then the switch is still happy?
I know I don’t have actual QoS toggles on this switch, but the most important traffic on the switch for me is the 10 Gbps Proxmox node link, if that makes a difference.
Thanks!
The default settings of TX enabled and RX disabled are likely due to a few reasons:
- Hardware limitations: You’re correct that the switch chip in this device might not be as powerful or sophisticated as other switches, which could lead to limitations on handling high-speed traffic without flow control.
- Prevent overloading: By having TX flow control enabled, the switch can slow down outgoing traffic when it’s congested, preventing a flood of packets from overwhelming the network. This is particularly useful in cases where there are multiple devices connected and competing for bandwidth.
- Legacy compatibility: Flow control has been around since the days of Gigabit Ethernet (1000BASE-X). To ensure backwards compatibility with older switches or devices that might not support 10Gbps speeds, the default settings might be set to provide a fallback mechanism.
Now, regarding your specific use case:
- For the Proxmox node and uplink trunk port, turning off flow control entirely is likely safe. Since you’re using a QNAP switch with flow control disabled by default, it’s probable that the network can handle high-speed traffic without issues.
- However, keep in mind that disabling RX flow control on the receiving end (your Proxmox node) might lead to packet drops or errors if the switch becomes overwhelmed. You’ll need to monitor the switch’s statistics and your network’s performance to ensure there are no issues.
If you decide to disable flow control, start by monitoring the switch’s error counters and your network’s overall health. If everything looks good, it’s likely safe to keep flow control off.
To summarize: while there might be some historical or legacy reasons for having flow control enabled, disabling it in your specific use case (with a QNAP upstream switch) is unlikely to cause issues. Just be prepared to monitor and adjust as needed!