Provided by: irda-utils_0.9.18-14ubuntu2_amd64 bug

NAME

       irda - The Linux-IrDA protocol stack

SYNOPSIS

       #include <linux/irda.h>

       stream_s = socket(PF_INET, SOCK_STREAM, 0);
       seqpkt_s = socket(PF_INET, SOCK_SEQPACKET, 0);
       dgram_s = socket(PF_INET, SOCK_DGRAM, IRDAPROTO_UNITDATA);
       ultra_s = socket(PF_INET, SOCK_DGRAM, IRDAPROTO_ULTRA);

DESCRIPTION

       Linux-IrDA is a complete implementation of the various IrDA protocols and IrDA drivers for
       Linux.

       The configuration of the low level of the IrDA stack (IrDA ports)  and  the  various  IrDA
       drivers are described in irattach(8).

       The  usage  of  the higher layers of the IrDA stack (IrCOMM, IrLPT, IrNET, IrLAN, OBEX...)
       are described in their respective man pages.

       The core of the Linux-IrDA protocol stack is composed of the IrLAP, IrLMP, IrTTP and IrIAS
       protocols  and  is implemented as a kernel module. The programmer's interface for the IrDA
       stack is socket based. For more information on sockets, see socket(7).

       Note that higher level IrDA protocols may offer a different  programmer's  interface.  For
       example  IrCOMM  offers  a  TTY based interface and OBEX is available through a user space
       library.

SOCKETS TYPE

       The Linux-IrDA socket interface offers 4 types of sockets:

       Stream socket - SOCK_STREAM, 0
              Stream sockets provides a reliable, stream oriented, full duplex connection between
              two sockets on top of IrTTP, similar to TCP sockets. IrTTP guarantees that the data
              arrives in order and manages flow contol, IrLAP retransmits lost packets.
              Stream sockets does not preserve record boundaries.

       SeqPacket socket - SOCK_SEQPACKET, 0
              SeqPacket sockets provides a reliable, datagram oriented,  full  duplex  connection
              between  two  sockets  on  top of IrTTP.  IrTTP guarantees that the data arrives in
              order and manages flow contol, IrLAP retransmits lost packets.
              SeqPacket sockets preserve record boundaries. Large datagrams will be fragmented as
              needed.

       Datagram socket - SOCK_DGRAM, IRDAPROTO_UNITDATA
              SeqPacket  sockets  provides  a reliable, datagram oriented, full duplex connection
              between two sockets on top of IrLMP.  There is no guarantees that the data  arrives
              in order and there is no flow contol, however IrLAP retransmits lost packets.
              Datagram   sockets  preserve  record  boundaries.  No  fragmentation  is  provided,
              datagrams larger than the IrDA link MTU are truncated or discarded.

       Ultra socket - SOCK_DGRAM, IRDAPROTO_ULTRA
              Ultra sockets provides a connectionless, unreliable datagram packet service on  top
              of IrLAP-Ultra.  Ultra datagrams are sent and receive only when no IrLAP connection
              is established and otherwise discarded. They are always transmitted at 9600  bauds.
              Datagrams may be lost, reordered, and there is no flow control.
              Ultra  sockets  preserve record boundaries. No fragmentation is provided, datagrams
              larger than the Ultra MTU (382 bytes) are truncated or discarded.

ADDRESS FORMAT

       An IrDA socket address is defined as a combination of an  IrDA  interface  address  and  a
       service  name.   Service  names  are  automatically  resolved  to  lsap  through the IrIAP
       protocol.

           struct sockaddr_irda {
               sa_family_t sir_family;   /* AF_IRDA */
               __u8        sir_lsap_sel; /* LSAP selector */
               __u32       sir_addr;     /* Device address */
               char        sir_name[25]; /* Usually <service>:IrDA:TinyTP */
           };

       sin_family is always set to AF_IRDA.  sir_lsap_sel is usually not used.  sir_addr  is  the
       address  of  the  peer and optional (and that case the first peer discoverd will be used).
       sir_name is the service name of the socket.

SOCKET OPTIONS

       IrDA sockets supports  some  protocol  specific  socket  options  that  can  be  set  with
       setsockopt(2) and read with getsockopt(2).  The socket option level for IrDA is SOL_IRLMP.

       Options that can be set:

       IRLMP_IAS_SET
              Set an entry in the local IAS database.

       IRLMP_IAS_DEL
              Delete an entry from the local IAS database.

       IRLMP_MAX_SDU_SIZE
              Set maximum receive MTU for SeqPacket sockets.

       IRLMP_HINTS_SET
              Set IrDA hint bits to be advertised to peers.

       IRLMP_HINT_MASK_SET
              Set IrDA hint bits filter to be used when performing discovery.

       Options that can be get:

       IRLMP_ENUMDEVICES
              Perform link level discovery and return the content of the discovery log.

       IRLMP_MAX_SDU_SIZE
              Get maximum receive MTU.

       IRLMP_IAS_GET
              Get an entry from the local IAS database.

       IRLMP_IAS_QUERY
              Query an entry in IAS database of a peer using IrIAP.

       IRLMP_WAITDEVICE
              Block until a new device is discovered. Experimental feature, use with caution.

AUTHOR

       Jean Tourrilhes - jt@hpl.hp.com

SEE ALSO

       irattach(8), irdadump(8), irnet(4), irnetd(8).