I have added a second dedicated network card to my Snake-oil computer so that the CPU of this computer doesn't have to bother about handling network traffic. Besides providing a better sound quality this additional network card also gives the option to configure the Snakeoil machine as a bridge between the NAS and a renderer like pictured below.
NAS --> Switch/FMC --> Snakeoil machine (LMS) --> Renderer
According to posts on forums having a direct connection between the server and the client might have benefits for the sound. However when trying to setup this bridge via bridge-utils and runnning the "brctl addbr br0" command I get the message "add bridge failed: Package not installed”.Does this mean that in the current kernel of Snakeoil this function has been disabled so that bridging is not supported?
Sorry for the late reply. Didn't see this pop up in new messages for some reason.
(01-Apr-2017, 07:51 AM)Leonard Wrote: [ -> ]According to posts on forums having a direct connection between the server and the client might have benefits for the sound. However when trying to setup this bridge via bridge-utils and runnning the "brctl addbr br0" command I get the message "add bridge failed: Package not installed”.Does this mean that in the current kernel of Snakeoil this function has been disabled so that bridging is not supported?
Yes, bridging is disabled in the kernel.
Bridging is actually not a good option in terms of latency because the packets have to be "copied" twice. This is an expensive CPU operation, and best done on a switch with very fast forwarding speed. If you add a bridge in a network that's full of traffic, then the whole thing gets bogged down with your bridge PC becoming the bottleneck.
Setting up a different IP network to forward packets from one NIC to another is also a waste of computer resources, worse if using low end cards (e.g. Realtek).
NIC are not designed to forward traffic. Most PC network cards do not (some even do checksums in software which makes it worse). But good network switches are.
If you want good networking performance, these are some suggestions:
- Use Intel network cards
- Use jumbo frames (not sure what size is optimal, so you can have a play with that)
- Use a good network switch. I use HP ProCurve Layer 2 switch because they are fanless, but any layer 2 or 3 switch from Cisco, Juniper, etc should work also.
- Use high quality network cables, how the wires are unwound before terminated affects the bandwidth of these cables. Again not sure what is optimal, just have to keep doing trial and error on this.
In the future Snakeoil OS will support LACP trunking. What does this is use "team" NIC up into a "single" connection, e.g. combining 2x 1 Gbps NIC into a 2 Gbps link back to your switch. This reduces latency because usually one network card is used to send data out to the switch, and the other network card receives data from the switch. You'd need at least a layer 2 switch to do this.
Give these a go and tell me how you find it.