Affix - Technical Documentation

Dmitry Kasatkin, Henri Ranki


Table of Contents
Preface
1. Revision history
2. Contact Information
3. Terms and Abbreviations
1. Introduction
1.1. Overview
2. General Architecture
2.1. Linux Core Concept
2.2. Affix Architecture
2.3. Bluetooth and Affix Security Models
3. Application Programming Interface
3.1. Affix API Components
3.2. Socket Interface
3.2.1. Data Structures
3.2.2. Function Set
3.2.3. Sample Code
3.2.4. Socket Options
3.2.5. Python Support
3.3. HCI API
3.3.1. Function Set
3.3.2. Data Structures
3.3.3. Sample Code
3.4. SDP API
3.4.1. Universally Unique Identifier
3.4.2. A Service Record
3.4.3. Service Attributes
3.4.4. Attribute API
3.4.5. Service Client SDP API
3.4.6. Service Provider SDP API
3.5. OBEX API
3.5.1. Data Structures
3.5.2. OBEX File API
3.5.3. Client API
3.5.4. Server API
3.6. PAN API
3.6.1. Traffic Filtering
3.6.2. Data Structures
3.6.3. Function API
3.7. Human Interface Device API
3.7.1. Basic Architecture
3.7.2. HID Profile
3.7.3. Affix HID API
3.8. Device Cache
3.9. Debugging Affix
3.9.1. Capturing Traffic
3.9.2. Kernel Variables
References
List of Tables
3-1. Affix header files
3-2. Affix libraries
3-3. Affix kernel modules
3-4. PF_AFFIX extra API
3-5. RFCOMM TTY API
3-6. Supported socket options
3-7. HCI API function set
3-8. HCI function set
3-9. UUID helper functions (defined in sdpclt.h)
3-10. Service record API
3-11. Universal service attributes
3-12. Service Attribute API
3-13. Functions to glue service attributes and records
3-14. Service client SDP API
3-15. Service provider SDP API
3-16. Service record manipulation functions
3-17. SDP server API for attribute manipulation
3-18. OBEX file API
3-19. OBEX client API
3-20. OBEX server API
3-21. Personal area network API
3-22. Filter types for ioctl() function
3-23. Values of the status bit mask in the hidp_ioc struct
3-24. Device cache API
3-25. List of possible modules and details
3-26. L2CAP 1.2 retransmission and flow control kernel variables
List of Figures
2-1. Linux networking architecture
2-2. Affix architectural model
2-3. Affix components
Affix - Open Source Bluetooth Protocol Stack for Linux