Subject: Bluetooth Personal Area Networking
To: None <tech-net@netbsd.org>
From: Iain Hibbert <plunky@rya-online.net>
List: tech-net
Date: 11/22/2007 10:51:32
Hi,

I'm looking at a Bluetooth PAN daemon written for FreeBSD (see
http://btpand.beenic.net/) - I can make it build on NetBSD but its
not complete and in my specific case does not do what I need, which
is to connect my computer to the internet via my GPRS enabled phone.
Rather, he provides the opposite method where the phone could connect
to the network provided by my computer..

It seems to me that it is feasibly possible to make this tool
fully functional in both directions, and I'm working in that
direction but actually, I'm a bit of a networking novice (I've
only really used PPP, SLIP and fidonet :)

terminology they use

NAP - Network Access Point
	a network server with an external network connection

GN - Group ad-hoc Network
	a network server without external network connection

PANU - Personal Area Networking User
	a network client

I'm a little unclear on the best way to handle something. In the
Bluetooth PAN specification it mentions that a NAP (or GN) device
should forward packets between connected PANUs as necessary, and
the author of btpand has implemented this directly by using a single
network interface (via tap(4)) and copying packets to remote
destinations as required (he refers to this as being 'like a
minimalistic layer 2 switch')

What I'm uncertain about is, in my hazy vision of a btpand, I would
have done that by cloning a new tap(4) for each session and let the
system handle routing of packets. I think it would make btpand
somewhat simpler, but does it work that way?

Also, if that is the way to go, the Bluetooth Network Encapsulation
Protocol (BNEP) which the PAN profiles use allows filtering on protocol
types and/or according to multicast addresses. Can either one of these
be passed off to the kernel?

regards,
iain
(please Cc me on replies, I'm not connected to tech-net)