I have found a possible performance issue with the Network Extension related to NEFilterPacketProvider. When a packet filter is disabled, my Mac gets the expected Internet upload speed. When an NEFilterPacketProvider is enabled, outbound/upload throughput drops substantially. The interesting part is that this is reproducible with a deliberately minimal test provider.
The test provider only:
- receives packets;
- parses headers of several common protocols;
- writes diagnostic information using Unified Logging;
- allows all captured packets.
It does not intentionally delay, modify, or drop packets, and it does not perform any other heavy processing or network activity.
Reproduction
- Run a speed test at https://yandex.ru/internet/ with the packet filter disabled;
- Record the outbound/upload speed;
- Enable the NEFilterPacketProvider;
- Run the same test again;
- The outbound speed drops significantly;
- Disable the provider and repeat the test — the speed returns to the previous level;
The effect is particularly noticeable on the outbound/upload direction; download performance is much less affected.
For example:
Configuration Download Upload
Packet filter disabled ~700 Mbps ~600 Mbps
Packet filter enabled ~700 Mbps ~110 Mbps
I've submitted a Feedback Assistant report with a minimal reproducible sample - FB24686601. The sample is attached to the feedback.
Has anyone else observed a similar outbound throughput reduction when NEFilterPacketProvider is enabled? I'm particularly interested in whether this is expected overhead of the packet-filtering architecture, a known limitation, or a possible macOS/Network Extension regression.