The Bluetooth PAN Profile API supports standard IP-based network services deployed over the Bluetooth transport layer.
The Personal Area Network (PAN) profile is designed to make a Bluetooth network simulate an ethernet, from an application's perspective. Symbian platform supports only one active PAN at a time. Each remote device that connects to the PAN device for networking purposes will be merged into the same active PAN.
Symbian platform provides support for a PAN agent to assume the role of PANU (User), PAN-GN (Group ad hoc Network) or PAN-NAP (Network Access Point).
The Symbian PAN implementation is integrated into the Symbian networking framework enabling IP applications to run on a Bluetooth network.
A PAN is an ad-hoc network of devices communicating on a standard network configuration, over a Bluetooth radio connection. A PAN may have anywhere from 2 to 8 participating member devices.
A PAN is not the same as a piconet. Where a piconet is any ad-hoc networking of devices over a Bluetooth connection for the purposes of sharing data or services, like when you pair your phone to your Bluetooth hands-free kit, a PAN deals specifically with networking resources.
The Bluetooth specification identifies several profiles including the Bluetooth Personal Area Networking (PAN) profile. The PAN profile simplifies the now deprecated Bluetooth LAN Access and Dial-up Networking profiles by reducing the number of layers in a network Bluetooth connection.
The PAN profile identifies certain configuration and setup details of a participant of the network, including the PAN host. If a device wants to join a PAN it must support and be able to be configured according to the requirements of the profile in use. For more general information about Bluetooth profiles see Introduction to Bluetooth Profiles.
Typical PAN profile roles include the following:
PANU (User) acts as a client member of a PAN-GN (Group ad hoc Network) or a PAN-NAP (Network Access Point). Any device in either the PAN-GN or the PAN-NAP role acts as a server.
The PAN Profile roles are described below:
PANU
A Bluetooth enabled device seeking entry into a network or participating in a peer-to-peer (one on one) connection assumes the PANU role, thus becoming a client member of the piconet.
PAN-GN
A PAN-GN device assumes the role of a forwarding node or host and the attached PANU devices act as clients, networking up to a maximum of seven PANUs. The wireless network is formed without the need of additional hardware like a hub or router as in the case of a conventional cabled network.
Group Ad-hoc Network (GN) is a temporary, ad hoc network of devices in proximity for sharing information and services. It is called ad hoc because of its on-the-fly or transient nature and can include up to eight (including the host) available Bluetooth-enabled devices in the immediate vicinity, that are willing to participate.
The device that initiates the network - in this case the PAN-GN - becomes the host or controller. Correspondence in a PAN between the clients is routed through the PAN-GN device (host) in both one-to-one and one-to-many cases.
PAN-NAP
A PAN-NAP device plays the role of a proxy, bridge, or a router between an existing network say a LAN or the Internet and Bluetooth-enabled devices. The PAN-NAP device takes up to seven active wireless clients. The NAP device acts as a bridge between PANU devices or bluetooth networks and other networks for routing ethernet packets. The Symbian platform PAN-NAP role allows only a single PANU client access to the uplink for the external network.
The following image shows a Bluetooth-enabled laptop accessing the Internet through a mobile handset that is acting as a PAN-NAP device. The Bluetooth handset may provide the uplink via GPRS, WIFI, dial-up, or in some other way.
For more information about please see the PAN NAP Role Guide.
The PAN Profile specification fits in between the application and the hardware abstraction layers. It is connected to and accessed through the Comms-Infras socket by the application.
Initially, the connection preferences are set in CommDB through the code. The Bluetooth stack is then initialized. An RConnection and RSocketServ instance are created as part of initiating an ESock session and the RConnection object opens the connection through the RSocketServ instance. RConnection::Control() allows configuration of certain aspects of the PAN, for instance adding and deleting devices to/from the PAN.
Intact ethernet payloads are transported with the BNEP (Bluetooth Network Encapsulation Protocol) underneath. The PAN profile interacts with the Bluetooth BB (baseband) and conveys the various roles that PAN network nodes would play.