syncronize FilterDataProvider and PacketTunnelProvider for a flow

Hi,


I have application on MacOS Catalina where we load 2 Network extension provider, FilterDataProvider and PacketTunnelProvider.

I believe they run on separate thread, so for a connection either flow can come first in FilterDataProvider or packet can come first in PacketTunnelProvider.


Is there way to synchronize these 2 providers for a connection like FilterDataProvider is called and once its done then packet of that connection should come to PacketTunnelProvider.


Thanks for your help

Kumar

Replies

Is there way to synchronize these 2 providers for a connection like FilterDataProvider is called and once its done then packet of that connection should come to PacketTunnelProvider.

Not within the NetworkExtension framework.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Hi,


Is there a way to identify same connection between FilterDataProvider and PacketTunnelProvider. ?

I am trying to solve syncronization problem between two providers as I need to get pid first in FilterDataProvider, then take some decision on it, and based on that decision , it will decide where first packet of that flow needs to go in PacketTunnelProvider.


I saw "Identifier" in NEFilterFlow and "filterFlowIdentifier" (available only in 10.15.4+) in NEPacket metadata, are they same for same connection ?


When I tested I am getting valid "identifier" and nil in "filterFlowIdentifier", is nil getting is valid ?


Please let me know if there is any identifier or something else to correlate same connection between FilterDataProvider and PacketTunnelProvider. ?


Thanks

Kumar

I saw

Identifier
in
NEFilterFlow
and
filterFlowIdentifier
… in
NEPacket
metadata, are they same for same connection ?

I don’t know )-: My advice here is that you open a DTS tech support incident so that I, or perhaps Matt, can take an in-depth look into your issue.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"