irnet - IrNET protocol device
File /dev/irnet is used to access and configure the IrNET protocol part
of the Linux-IrDA stack.
IrNET is a protocol allowing to create TCP/IP connections between two
IrDA peers in an efficient fashion, and generally to enable standard
networking over IrDA. It is a thin layer, passing PPP packets to IrTTP
and vice versa. It uses PPP in synchronous mode, because IrTTP offer a
reliable sequenced packet service (as opposed to a byte stream). In
fact, you could see IrNET as carrying TCP/IP in a IrDA socket, using
PPP to provide the glue.
The main difference with traditional PPP over IrCOMM is that it avoids
the framing and serial emulation which are a performance bottleneck. It
also allows multipoint communications in a sensible fashion. And
finally, it can automatically handle incomming connections through
The main difference with IrLAN is that we use PPP for the link
management, which is more standard, interoperable and flexible than the
IrLAN protocol. For example, PPP adds authentication, encryption,
compression, header compression and automated routing setup. And, as
IrNET let PPP do the hard work, the implementation is much simpler than
IrNET connections are initiated and managed with pppd(8). File
/dev/irnet also offer a control channel. Reads from /dev/irnet will
return various IrNET events. Write to /dev/irnet allow to configure
the IrNET connection.
If your system does not have /dev/irnet created already, it can be
created with the following commands:
mknod -m 644 /dev/irnet c 10 187
chown root:root /dev/irnet
You will also need to have IrNET support in your kernel or as module
and the Linux-IrDA stack installed and configured (see irattach(8)).
File /dev/irnet is supposed to only be used with the PPP line
discipline or for accessing the control channel, other use are
unsupported. IrNET support multiple concurent connections (limited by
the IrDA stack), all those connections are multiplexed on a single
/dev/irnet device (as opposed to IrCOMM which as one device per
Writing commands to /dev/irnet allow to configure the IrNET connection
being made. This need to be done through pppd(8) (see below for
examples). Commands are separated by comas.
Connect to the IrDA device which IrDA nickname is <peer>. The
IrDA nickname is a string up to 31 characters.
Connect to the IrDA device which IrDA address is <peer>. The
IrDA address is a 32 bits hexadecimal number.
Restrict connections to the local IrDA interface which IrDA
address is <port>. The IrDA address is a 32 bits hexadecimal
Reading from /dev/irnet will show various IrNET events. This is
usually done with the command cat /dev/irnet.
Found Dump of the current IrNET discovery log.
New IrNET device discovered.
Previously discovered IrNET device no longer present.
This computer successfully established an IrNET connection to a
A peer successfully established an IrNET connection to this
A peer attempted to connect to this computer, but no IrNET
connection was waiting for it.
This computer attempted to connect to a peer, but no IrNET
connection was waiting for it.
Blocked link with
The IrDA link of the IrNET connection is currently blocked.
A peer successfully terminated an IrNET connection with this
This computer successfully terminated an IrNET connection with a
File /proc/net/irda/irnet will also show the current state of the
various IrNET connections.
Start a IrNET server accepting any incomming connection:
pppd /dev/irnet 9600 local noauth nolock passive
Start a IrNET client connecting to any IrDA peer:
pppd /dev/irnet 9600 local noauth nolock
Start a IrNET client connecting to the IrDA peer called MyIrDANode:
pppd /dev/irnet 9600 local noauth nolock connect "echo name
Start a IrNET server accepting incomming connection from peer with IrDA
address 0x12345678 only on IrDA port 0x87654321:
pppd /dev/irnet 9600 local noauth nolock passive connect "echo
daddr 0x12345678 , saddr 0x87654321"
Jean Tourrilhes - email@example.com
irda(7), irnetd(8), pppd(8), irattach(8), irdadump(8).