=== Multicast routing rework Contact: Wojciech Macek 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 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