aboutsummaryrefslogtreecommitdiff
path: root/website/content/en/status/report-2021-04-2021-07/multicast.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'website/content/en/status/report-2021-04-2021-07/multicast.adoc')
-rw-r--r--website/content/en/status/report-2021-04-2021-07/multicast.adoc18
1 files changed, 18 insertions, 0 deletions
diff --git a/website/content/en/status/report-2021-04-2021-07/multicast.adoc b/website/content/en/status/report-2021-04-2021-07/multicast.adoc
new file mode 100644
index 0000000000..8cc0481aa5
--- /dev/null
+++ b/website/content/en/status/report-2021-04-2021-07/multicast.adoc
@@ -0,0 +1,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