Index: sys/net/if_ethersubr.c =================================================================== --- sys/net/if_ethersubr.c (revision 24) +++ sys/net/if_ethersubr.c (working copy) @@ -205,7 +205,11 @@ unsigned etype; struct ifqueue * (*input_func)(struct ifnet *ifp, struct mbuf *m); } *etype_list_head; + +#ifdef PFIL_HOOKS +struct pfil_head eth_input_pfil_hook; #endif +#endif static struct timeval bigpktppslim_last; static int bigpktppslim = 2; /* XXX */ static int bigpktpps_count; @@ -719,6 +723,13 @@ return; } +#if defined(__QNXNTO__) && defined(PFIL_HOOKS) + if (pfil_run_hooks(ð_input_pfil_hook, &m, ifp, PFIL_IN) != 0) + return; + if (m == NULL) + return; +#endif + #ifdef MBUFTRACE m_claimm(m, &ec->ec_rx_mowner); #endif Index: lib/socket/public/net/if.h =================================================================== --- lib/socket/public/net/if.h (revision 24) +++ lib/socket/public/net/if.h (working copy) @@ -975,6 +975,7 @@ extern struct ifnet *lo0ifp; extern size_t if_indexlim; +extern struct pfil_head eth_input_pfil_hook; void ether_input(struct ifnet *, struct mbuf *); void if_alloc_sadl(struct ifnet *);