Failed to see any ICMP data flow from the remote machine within NEFilterDataProvider

Hi Experts,

When experimenting with NEFilterDataProvider, I observed that whole ICMP data flows are visible on the local machine when pinging a remote machine from it. However, no ICMP data flows are observed on the local machine when the remote machine pings it.

Below is the rule for filtering any protocol with any direction.

NEFilterRule(networkRule: .init(
                                             remoteNetwork: nil,
                                             remotePrefix: 0,
                                             localNetwork: nil,
                                             localPrefix: 0,
                                             protocol: .any,
                                             direction: .any), action: .filterData)

There is no issue for TCP/UDP. May I know it's a bug or by design?

Failed to see any ICMP data flow from the remote machine within NEFilterDataProvider
 
 
Q