Title: Bluetooth Quality of Service
1Bluetooth Quality of Service
- A Comnet lab project by
- Omry Yeshurun 037606175
- Dotan Perry 037609708
- Supervisor Alex Sprintson
2Overview Quality of Service
Quality of Service (QoS) is a term relating to
the ability to differentiate between the service
given to certain entities (applications, devices,
flows etc.) For instance real-time applications,
that require a limit on delay time, would receive
higher priority over WWW browsing traffic that is
less sensitive to delay.
3Bluetooth Model Structure
Focus of Project
4Goals
- Implement QoS support into BlueZ stack (L2CAP
layer). - Improve support for Real-time application running
over Bluetooth. - Demonstrate improved performance in different
scenarios.
5Project Focus
- QoS is a very broad issue, including many
aspects, such as transmit and receive priorities,
drop precedence etc.. - We will focus only on transmit and receive
priorities. - BlueZ has many unresolved QoS issues awaiting
solution, in all layers. - We will focus on the L2CAP layer, specifically on
the transmitting and receiving queues to HCI
layer.
6Current Situation
- L2CAP packets are too big for HCI, and so they
are segmented into several HCI packets. The HCI
packets are enqueued and dequeued into the
transmitting and receiving queues sequentially. - When a high priority packet arrives, it has to
wait for previous packets to be transmitted. - Conclusion There is no provision for QoS support
in L2CAP.
Refer to www.dei.unipd.it/bigbig/quos/
Bluetooth_QoS_ING_A_part_I.pdf
7Current Situation Packet Structure
8The Single Buffer Solution
- When a high-priority packet arrives, it is
inserted into the transmit queue even if it is
transmitting a low-priority packet. - Upon receiving the first segment of the
high-priority packet, re-assembly will restart
and after the high-priority packet is
reassembled, the low-priority packet reassemble
will resume.
9Single Buffer - Example
Reassemble of low-priority packet completed
Reassemble of high-priority packet completed
f/x First segment out of x segments c
Continuation segment
10Single Buffer Packet Structure
11The Flush Problem
- Consider a case where two packets are in the
transmit queue. When the link fails and a flush
of the transmit buffer occurs, both packets are
lost ! - Alternative use two logical links.
12The Double Buffer Solution
- All packets are divided according to priority
between two transmit and receive queues. - All transmission and reception of packets from
different priorities would be independent, thus
creating a separate logical link for each
priority.
13Double Buffer - Implementation
14Double Buffer - Implementation
- Replace the existing single transmit receive
queues in L2CAP with two priority queues each. - Upon connection establishment and configuration,
auto-negotiate QoS compatibility on both sides
and enable QoS is possible, using reserved flags
in the auto-negotiation protocol. - Using Reserved fields in L2CAP packet, allow
for implementation of two classes of service.
15Double Buffer Packet Structure
16Double Buffer Implementation Details
- Packet modification (as shown before).
- Addition of a transmit and receive queue for the
high-priority logical link. - Setting an auto-negotiation routine to determine
QoS support in target device. - Establish a packet differentiation criteria.
17Schedule
18References
- http//www.dei.unipd.it/bigbig/quos/Bluetooth_QoS
_ING_A_part_I.pdf - http//www.ets-japan.com/new/Flow_Specification__
Flush_Timeout_v0-7d.pdf - http//www.ets-japan.com/new/L2CAP_Flow_and_Error_
Control_v0-7.pdf