© 2000 Ubicom, Inc. All rights reserved. - 16 - www.ubicom.com AN16 SX IrDA Virtual Peripheral Implementation 3. 4 LMP LAYER & IAS SERVER The    IrDA    Link-Management-Protocol    (IrLMP)    layer
serves to multiplex the IrLAP connection between a num-
ber of higher layers and/or applications using the reliable
service of the IrLAP layer. The LMP layer requires that a
LMP connection be created for every instance of a ser-
vice  or  application  that  wishes  to  communicate  across
the link so that all the data can be correctly multiplexed to
the
correct destination services/applications.                                                                                                              The
addressing is achieved by adding a one byte destination
Link-Service-Access-Point  (DLSAP)  address  and  a  one
byte source LSAP (SLSAP) to every reliable I frame.
The
Information-Access-Server (IAS) allows                                                                                                             IrDA
devices  to  get  specific  details  about  the  high  layer  ser-
vices the IrDA device offers. A request for information will
consist of a class-name in text form (e.g. IrDA:IrCOMM
for   IrComm)   and   a   attribute-name   in   text   form   (e.g.
Parameters for IrComm). If the IAS server has a entry of
the  correct  class-name  then  it  will  respond  by  returning
the data associated with the requested attribute. The text
names are generally ASCII but are considered to be lan-
guage-independent byte sequences and are case sensi-
tive  The  IAS  implementation  is  secondary  only  and  as
such  can  reply  to  requests  for  information  but  cannot
request information itself.
In  the  IrDA  Virtual  Peripheral  both  the  IrLMP  layer  and
the IAS have been implemented together in the one layer
referred to as the LMP layer.
3.4.1   LMP LSAP Addresses The following services are provided:
•    IAS server (LSAP = 0)
•    IrComm service (LSAP = 5)
3.4.2   LMP Behavior The IrComm service LMP state is remembered as either
connected or not connected by the use of the lmpAppL-
SAP variable. This variable holds the LSAP of the remote
service  that  opened  the  connection  to  the  IrComm  ser-
vice and if 0 the IrComm service is considered to be not
connected.
The IAS service LMP state is not stored. Any attempt to
open  the  IAS  service  is  accepted  and  any  attempt  to
close it is ignored.
Any attempt to access an unknown LSAP or the IrComm
LSAP while it is not connected will result in a  BadLSAP
Received Nr = NrNotAck Start WD Timer.
NrAck := NrAck – 1.
Inform LMP layer that transmitted data must be resent
if appropriate.
Jump to TestNs.
same Received Nr = other Send RD frame.
Start WD timer
SCLOSE     NRM
(TestNs)
Received Ns = Ns Ns := Ns + 1
Inform LMP layer that received data is valid if
appropriate.
Jump to SendData.
same Received Ns <> Ns Inform LMP layer that received data is valid if
appropriate.
Send S frame.
same Frame was a S frame Jump to SendData same        NRM
(SendData)
LMP layer has data to send Send I frame.
NrAck := NrAck + 1.
same LMP layer does not have data to
send
Send S frame. same SCLOSE uRDFrame Send UA response
Apply default connection parameters.
Indicate disconnect to LMP layer.
NDM All other frames (command, final) Send RD frame.
Start WD timer
SCLOSE Timeout Apply default connection parameters.
Indicate disconnect to LMP layer.
NDM Table 3-4.   LAP State Machine