Subject: Re: supported harware for zeroconf
To: Silvio Valenti <silvio.valenti@gmail.com>
From: Greg Troxel <gdt@ir.bbn.com>
List: tech-net
Date: 07/04/2005 10:39:03
  I was wondering what kind of data link hardware I shall support.
  Shall I also support IEEE80211? If it is the case, the bpf interface
  is compatible with that? Because I read it currently works only with
  Ethernet.

See /usr/include/net/dlt.h.  Data link type DLT_EN10MB
 is used for all
Ethernets, regardless of speed, since they have the same MAC format.
802.11 has a different MAC format, but our net80211 layer translates
from 802.11 MAC to Ethernet, so that packets arriving and being sent
to 802.11 drivers appear as Ethernet.  They use the common ARP code,
and DLT_EN10MB sig is the default DLT for tcpdump.   So, programs like
dhclient work with no special 802.11 support.

See src/sys/net80211/ieee80211_input.c, function ieee80211_decap, for
the inbound conversion.  But, it isn't necessary to understand this.

802.11 interfaces support additional DLTs, including for 802.11
frames, and 802.11 "radiotap" format to get per-packet detailed radio
information.  I don't see zeroconf support for these as useful.

PPP, PPPOE, GIF, and other interfaces use other DLTs.  It is perhaps
useful to use zeroconf on these, but it is not immediately apparent
that this would be common.

I suggest that your implementation be prepared to support multiple
interface types, perhaps passing IP packets and address objects to
output methods, but that you just do Ethernet (and hence also 802.11)
for the beginning.


-- 
        Greg Troxel <gdt@ir.bbn.com>