Thanks for the detailed explanation and tips!
Could you please help with two architectural follow-up questions regarding the lifecycle and data flow:
Boot-time execution and User Sessions:
In Apple's examples, the Network Extension is initially installed and activated via a Container App running within a user session. However, the extension itself runs as root. Assuming the user has approved the extension and the configuration is saved, will macOS automatically bootstrap this Network Extension at boot-time (before any user logs in)? We need to ensure that our global launchd daemon and the Network Extension can establish this App Group-based XPC connection and start filtering traffic regardless of active user sessions.
Confirming the IPC Roles:
Given your suggestion to set the MachServices property in the launchd daemon, am I correct in assuming the recommended architecture is strictly:
Launch Daemon = XPC Listener / Server (handling complex analysis)
Network Extension = XPC Client (acting purely as a data provider pushing intercepted flows to the daemon)
Is there ever a valid use case where these roles should be reversed in a system-wide filtering context, or is the Daemon-as-Listener the absolute standard here?
Thanks a lot for your help!