Subject: Re: adding an 802.11 data link type
To: None <dyoung@pobox.com>
From: Atsushi Onoe <onoe@sm.sony.co.jp>
List: tech-net
Date: 08/05/2002 14:54:06
> I would like to add an 802.11 DLT to NetBSD so that I can observe 802.11
> mgmt/ctl frames through bpf.

Sorry for lazy activities on this topic...

> In the discussion on the 802.11 DLT in May, it appears that a rough consensus
> was reached, namely that
> 
>  0) DLTs DLT_802_11, DLT_PRISM_802_11, DLT_AIRONET_802_11 are desirable
>     in addition to DLT_EN10MB.

I think it would be better if we define DLT_DRVSPEC for all driver specific
raw format, since I don't want to implement DLT_AIRONET_ for 'wi' driver.

>  1) A driver supporting more than one DLT will call bpf with a new
>     procedure, bpfattach_multidlt, passing bpfattach_multidlt a mask
>     describing the DLTs the driver supports.

Since the number of supported DLTs for a driver would be limited,
multiple calls to bpfattach_dlt() may be accepted.
This would help to implement streight forward implementation which splits
bpf_if for each DLT.

>  2) 802.11 interfaces will default to handing up 802.3 frames to bpf,
>     so that dhclient, tcpdump, etc. do not break.

>  3) Two new ioctl's list/choose the DLT used by bpf:
> 
>       BIOCGDLTS -- returns a bit vector. "Lit" bits indicate supported DLTs.
>                    For example, on an 802.11 interface, the DLT_EN10MB'th
>                    bit and the DLT_802_11'th bit will be set.

It seems that the range of the value for DLT is not defined. BIOCGDLT
just uses u_int to pass it.  So returning array of supported DLTs would
be better.

>       BIOCSDLT  -- change the DLT for the bpf socket to one of the supported
>                    types

>  4) a driver will only build frames that listeners want
> 
> If this is not substantially how people desire for the 802.11 DLT to work,
> let me know.
> 
> If somebody has already begun to program this feature, stop me.

I'll search the code once I've implemented from my backups.

Atsushi Onoe