Subject: Re: adding an 802.11 data link type
To: None <matt@3am-software.com>
From: Atsushi Onoe <onoe@sm.sony.co.jp>
List: tech-net
Date: 08/08/2002 10:26:21
> I've been quiet on this for a while but no longer. :)

Thanks for appearing the stage:-)

> Since BPF gives the driver an opaque hook into the interface, if_bpf, there's
> no need to change that part of the driver interface.  What you really want
> are additional bpf calls,
> 
>          bpf_tap2(caddr_t if_bpf, caddr_t ptr, size_t len, int flags)
>          bpf_mtap2(caddr_t if_bpf, struct mbuf *m0, int flags)
> 
> We will define flags so the bottom 16 bits are reserved for passing an
> optional DLT type. Then if you need special processing, you can just do
>          bpf_map2(ifp->if_bpf, m0, DLT_IEEE80211B | DLF_RX);

This interface will introduce the exact problem which Bill pointed out.
How the driver reduces to pass the packet to bpf.
Since if_bpf is an opaque, the driver should call twice or three times to
pass the packet to bpf if the bpf listenr just want to DLT_EN10MB.

Atsushi Onoe