7. IrDA Network Neighborhood

7.1. Laptop-Printer-PDA

You can take a little peek at Drag-n-drop stuff , so you will be able to drop files to your PDA (uses IrOBEX) or drop files to your printer (uses IrLPT) etc.

7.2. Bridging/Routing

James wrote: " ... there is a much better way of doing the bridging which is routing. This is entirely user land and requires no kernel patches. But the IrLAN protocol is no longer maintained by the Linux/IrDA core team.

It's in two parts (you may only need one your milage may vary...) the first called irdaipcfg does the following:

1) First part is executed as irdaipcfg ifeth ifirlan daemonizes, then looks for ARP packets on ifirlan, checks that the arp was not generated by the machine on which it is running. The arp contains the ip address of the machine on the other end of the irlan (it was generated by the gratuatous arp in the irlan code). The program then sets up a host route to this ip address via ifirlan, adds a proxy arp to ifeth for it and generates a gratuatous arp on ifeth. It writes the ip address of the client in /var/run/host.ifirlan so you can easily undo all of this from a script.

2) Second part is executed as gratarp ifirlan. Sometimes the gratuatous arp seems to get lost in the pipe work, gratarp daemonizes and spits out a whole stream of the things...

I use them as follows: (you can use them to do whatever you like)

On my host (the machine bolted to my local net) irlanx is brought up as 10.192.0.1 with a netmask of 255.255.255.255 and a broadcast of 10.192.0.1 by my ifup script from /etc/irda/network by irattach. /etc/irda/network then runs irdaipcfg eth0 irlanx and this does the routing.

From /etc/irda/network

"start")
    echo 1 >/proc/sys/net/ipv4/conf/all/forwarding
    ./ifup ifcfg-${device}
    /sbin/irdaipcfg ${localnet} ${device}
    ;;
"stop")
    host=`cat /var/run/host.${device}`
    if [ .$host != . ]; then
      /sbin/arp -d ${host} dev ${localnet}
      /sbin/route delete ${host} dev ${device}
    fi
    ./ifdown ifcfg-${device}
    /sbin/ifconfig ${device} down
    ;;

on the client I set up IrLAN to use an address on my normal subnet 10.32.32.51 but with netmask 255.255.255.255 (not my usual netmask) I have some static routes which are host 10.192.0.1 dev irlan, and net default gw 10.192.0.1 dev irlan. I run gratarp from the /etc/irda/network, and I can wander arround my house and not lose telnet and ssh sessions ..."

7.3. IPv6

As far as I know IPv6 has neighbor discovery mechanism, but I don't have information about Linux/IrDA used with IPv6. Please see the mailing list archive for a discussion of this topic under the subject :"patch-2.2.7-ac1-irda4".

7.4. DHCP

I have got reports that it is possible to use dhcpcd with IrLAN. Please use latest DHCP software. But currently the IrLAN protocol is no longer maintained by the Linux/IrDA core team.