Implementation of Flow Control in the Linux Bluetooth Stack BlueZ

  • Forschungsthema:Peer-to-peer Computing
  • Typ:Studienarbeit
  • Datum:01.10.2006
  • Betreuung:

    Prof. Dr. Frank Bellosa, Dr. Thomas Fuhrmann

  • Bearbeitung:Martin Röhricht
  • Links:PDF
  • Abstract:

    Bluetooth is going to be used as one of the major digital data transport protocols mainly for small and embedded devices. The focus was laid on small hardware development costs, low power consumption and a space-saving design. Bluetooth adapters are included nowadays in almost every new laptop and mobile phone. With the rising acceptance of this standard the needs to fulfill different tasks rised, as well. Besides the basic functionality of sending and receiving data from a technical point of view, it became urgent for companies to see some quality of service being specified by the Bluetooth Special Interest Group (SIG). One of these extensions is flow control mode. This mode is meant to prevent devices flooding the remote device with data, that is sent so quickly, that the receiving device is not able to process the incoming data faster than new data is passed into its buffer. Flow control instead provides mechanisms, that enable devices to negotiate appropriate values for their buffers to protect them from buffer overflows.

    The Linux kernel, which builds the heart of the GNU/Linux operating system, offers its users an existing implementation of the Bluetooth software stack, called BlueZ. This implementation is the equivalent to so many existing proprietary Bluetooth software stacks, but being open source and freely available by no costs makes Linux an ideal development platform.

    This thesis is about an implementation of Flow Control in the L2CAP layer for Linux’ Bluetooth subsystem BlueZ.


      author = {Martin R\"ohricht},
      title = {Implementation of Flow Control in the Linux Bluetooth Stack BlueZ},
      type = {Study Thesis},
      address = {System Architecture Group, University of Karlsruhe, Germany},
      month = oct # "~1",
      year = 2006,
      url = {}