Absolutely am finding the same need to filter at the packet level (NEFilterPacketProvider) and at the flow level (NEFilterDataProvider). And, the coding approach of devfunshark seems appropriate, which I replicated and am having the same issue of the app only filtering by Packets if I set providerConfiguration.filterPackets = true and only by Flows if I set providerConfiguration.filterSockets = true. And again only by Flows if I set both filterPackets and filterSockets to true.