Project

General

Profile

Task #1922

Updated by Junxiao Shi over 9 years ago

EthernetFace obtains a file descriptor from `pcap_get_selectable_fd` API, and passes it to Boost.Asio.   
 On OS X and FreeBSD, Boost.Asio uses kqueue as an alternate to `poll` syscall, in order to gain better performance. 

 Since Boost 1.56, Boost.Asio's usage of kqueue becomes incompatible with libpcap's file descriptor. 
 Attempting to create an EthernetFace causes runtime error.   
 Although it's possible to disable kqueue and revert to `poll` syscall, the performance would be worse than using kqueue.   
 Therefore, EthernetFace is forcibly disabled on platforms with kqueue, when NFD is compiled with Boost 1.56 or above. 

 This Task is to find a workaround, so that EthernetFace can work with kqueue and Boost 1.56.0.

Back