THE IRDA LINK MANAGEMENT PROTOCOL (IRLMP)
IrLMP is responsible for providing upper layers
with a multiplexing scheme over IrLAP, a Link
Control (LCon) mechanism and a service discovery
mechanism.
IrLMP is separated in two logical
entities:
the Link Management Multiplexer (LMMUX)
and the Information Access Service (IAS)
[7].
The LM-MUX entity implements frame
multiplexing
by means of Logical Service Access
Points (LSAPs), which operate similarly to TCP
ports. Each upper layer application is assigned a
unique LSAP identifier (i.e., a LSAP-selector, or
LSAP-sel). Applications utilize their LSAP-sels
to establish IrLMP connections. A source-destination
LSAP-sel pair defines a unique IrLMP
connection
and creates communication endpoints
required for demultiplexing frames inside
LSAPs.
IrLMP frames carry the source-destination
LSAP-sels on their headers to indicate the
IrLMP
connection they belong to. LM-MUX
also
supports an exclusive mode of operation to
facilitate
LCon.
Whenever set to exclusive mode,
LM-MUX
does not provide multiplexing but is
fully
commanded by a single upper-layer application.
Exclusive mode is primarily aimed for lowlatency
applications or ones that require
self-control
over the link.
Service discovery is performed in the IAS entity.
This consists of two separate components: a local
database that stores the associations between
applications with LSAP-sels, and an Information
Access Protocol (IAP) that communicates the
database entries between IrLMP peers. The local
database stores registered applications in the form
of objects associated with a class (application)
name, a unique identifier and several attributes,
including LSAP-sel. Remote applications may
access the database and retrieve these objects
through the command/response capabilities provided
by IAP. IAP utilizes its own operation frames
encapsulated
in the payloads of IrLMP frames, to
communicate
queries and responses. For implementation
purposes, LM-MUX regards IAS as an
upper-layer
application with a “well-known” LSAPsel
value of (0×00),
so that all remote connections
have
a common access reference.