Unable to get Filtering reports on Filter Control Provider.

On the filter Data provider, based on certain conditions I either allow or drop the packets. I've set the "shouldReport" field to true.

On the filter control provider, I do override the handleReport function.

When I drop the packet in handleInboundComplete, with the following line :

result = NEFilterDataVerdict.drop() 
return result

The flow is getting dropped as expected. I also expect that handleReport, inside FilterControlProvider to get called with the report stating whether the flow was dropped or allowed. But this does not happen.

Any ideas, why?

Is there a better way for Filter Control provider to know about the verdict made by Filter Data Provider, about a flow?

Answered by Systems Engineer in 679741022

Is there a better way for Filter Control provider to know about the verdict made by Filter Data Provider, about a flow?

You can try setting the shouldReport flag for either NEFilterControlVerdict or for NEFilterDataVerdict and then adding an override for handle(_ report: NEFilterReport) in either provider. This should allow you to get the filter report for each provider.

Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com
Accepted Answer

Is there a better way for Filter Control provider to know about the verdict made by Filter Data Provider, about a flow?

You can try setting the shouldReport flag for either NEFilterControlVerdict or for NEFilterDataVerdict and then adding an override for handle(_ report: NEFilterReport) in either provider. This should allow you to get the filter report for each provider.

Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com
Unable to get Filtering reports on Filter Control Provider.
 
 
Q