aboutsummaryrefslogtreecommitdiff
path: root/website/content/en/status/report-2021-04-2021-07/multicast.adoc
blob: 8cc0481aa5dae1e78621c83dd39f6a092b1748aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
=== 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 constructions, BW-meter API refactored to work in a single context and routing hot path was identified and made to work efficiently.
All these fixes helped achieve over 5x speed boost in multicast routing.

The newly introduced rework includes:

* mroute: fix race condition during mrouter shutting down link:https://cgit.freebsd.org/src/commit/?id=65634ae748e7f6b7b9f11e8838c65060c3f31347[race condition]
* mrouter: do not loopback packets unconditionally link:https://cgit.freebsd.org/src/commit/?id=0b103f72376b5ec7c9a9d574c976e42805ae88a4[loopback]
* ip_mroute: refactor bw_meter API link:https://cgit.freebsd.org/src/commit/?id=741afc6233915ba33156c2221aa80d2dd2b76b9c[bw_meter]
* ip_mroute: rework ip_mroute link:https://cgit.freebsd.org/src/commit/?id=d40cd26a86a79342d175296b74768dd7183fc02b[locking]

Sponsor: Stormshield