Bluetooth Network Service

Description

The Bluetooth network service provides an interface to setup Bluetooth Personal Area Networks (PAN) that support common networking protocols such as IPv4, IPv6, IPX, and other existing or emerging networking protocols. Completely un-modified Ethernet payloads can be transmitted using the Bluetooth Network Encapsulation Protocol (BNEP) to exchange packets between Bluetooth devices.

Bluetooth Network API

The most up-to-date version of the currently implemented network service D-Bus API can be found in network/network-api.txt (bluez-utils source tree).

PAN user (PANU)

Client of a NAP or client-type member of a GN (see below)

Group ad-hoc Network (GN) controller

Forwarding node in a peer-to-peer style network (Bluetooth Piconet). Interconnects up to 7 (active) PANUs to a real peer-to-peer network.

Network Access Point (NAP)

Acts as proxy, router or bridge between an existing network infrastructure (typically LAN) and (up to 7 active) wireless clients (PANUs).

Topology

Network Topology
Infrastructured network normally has a NAP server that can router packages to another network.
(1)Be aware that the current implementation does not router when enabling a NAP server.
Ad hoc network also connects multiples PANU clients with GN server.
Both topologies made possible to interact with any node as in a LAN environment.

Network Objects

Network Objects

bluez/utils/network

manager.c -- contains the methods to create new Server/Connection objects.
connection.c -- contains the functions to retrieve the NAP/GN properties and control the connections.
server.c -- contains the functions to manage the server properties
bridge.c -- contains the functions to enable routing between PANUs and from the NAP/GN to other network(Internet, Local, ...)
common.c -- TBD

Service File

The service file defines some service properties. When the BlueZ daemon starts all services(.service) files under "/etc/bluetooth" are loaded.
Network service file(network.service) example:

[Bluetooth Service]
Identifier=network
Name=Network service
Description=Bluetooth Personal Area Network service
Autostart=false

Configuration File

Configuration file is normally installed in "/etc/bluetooth/network.conf", there it can disable interfaces and configure scripts to be run:

# Configuration file for the network service

# This section contains options which are not specific to any
# particular interface
[General]

# If we want to disable support for specific services
# Defaults to supporting all implemented services
#Disable=Connection,Server

# Disable link encryption: default=false
#DisableSecurity=true

[PANU Role]

# Network interface name for PANU for connections. default:bnep%d
# (up to 16 characters)
#Interface=

# PAN user connection interface up script. default:none
Script=avahi-autoipd

[GN Role]

# Network Interface name for Group Network server. default:pan0
#Interface=

# Group Network connection interface up script. default:none
Script=avahi-autoipd

[NAP Role]

# Network Interface name for Network Access Point server. default:pan1
#Interface=

# Network Access Point connection interface up script. default:none
Script=dhclient

Message flow: Connection Creation

Network CreateConnection

Step 1: Device Discovery Procedure must be done before or after the service activation in order to have host information.
Step 2: ActivateService? activates the service and return its unique id.
Step 3: CreateConnection? attempt to create a network connection object if the given host support given uuid.
Step 4: Connect connects to host.

Related Documents

Attachments