Multicast routing rework
Contact: Wojciech Macek <wma@semihalf.com>
The Semihalf team has been working on reworking the existing ip_mroute module. The previous implementation was over 20 years old and didn’t use modern kernel features.
A complete rework of locking mechanism was done to eliminate taking multiple locks for a single job. Some portions of code were modified to use lockless constructs, the BW-meter API was refactored to work in a single context and routing hot path was identified and made more efficient. All these fixes helped achieve over a 5x speed boost in multicast routing.
The newly introduced rework includes:
-
mroute: fix race condition during mrouter shutting down race condition
-
mrouter: do not loopback packets unconditionally loopback
-
ip_mroute: refactor bw_meter API bw_meter
-
ip_mroute: rework ip_mroute locking
Sponsor: Stormshield
Last modified on: September 19, 2021 by Brad Davis