The logic in looutput() that detects a write from BPF and
retrieves the address family from sa_data instead of sa_family
performs this detection by checking sa_family for AF_UNSPEC. This is
defeated when bd_hdrcmplt is set in the BPF instance that is doing the
writing, because in that case sa_family is set to pseudo_AF_HDRCMPLT.
Thus BPF writes to an if_loop instance fail with EAFNOSUPPORT when
bd_hdrcmplt is set. This currently happens, for example, when using
libpcap to write to lo0.
bd_hdrcmplt exists to provide an indication to the interface, when
set, that it should not modify the link-level header. Since if_loop
does not use link-level headers, it should work the same with BPF
regardless of the setting of bd_hdrcmplt.