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 irnetd.
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 IrLAN.
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.
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 connection).
File /proc/net/irda/irnet will also show the current state of the various IrNET connections.
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 MyIrDANode
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