From owner-freebsd-hackers Mon Feb 12 17:27:12 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id RAA19250 for hackers-outgoing; Mon, 12 Feb 1996 17:27:12 -0800 (PST) Received: from cs.pdx.edu (root@cs.pdx.edu [131.252.20.183]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id RAA19028 for ; Mon, 12 Feb 1996 17:22:54 -0800 (PST) Received: from sirius.cs.pdx.edu (root@sirius.cs.pdx.edu [131.252.20.199]) by cs.pdx.edu (8.7.3/CATastrophe-2/10/96-P) with ESMTP id RAA17982; Mon, 12 Feb 1996 17:20:55 -0800 (PST) for Received: from localhost (jrb@localhost [127.0.0.1]) by sirius.cs.pdx.edu (8.7.3/CATastrophe-9/18/94-C) with ESMTP id RAA14975; Mon, 12 Feb 1996 17:20:54 -0800 (PST) for Message-Id: <199602130120.RAA14975@sirius.cs.pdx.edu> To: freebsd-hackers@freebsd.org Subject: mobile-ip/icmp router advertisements Date: Mon, 12 Feb 1996 17:20:53 -0800 From: Jim Binkley Sender: owner-hackers@freebsd.org Precedence: bulk I'm starting to work on a mobile-ip implementation for FreeBSD. One of the features needed is that "mobility agents" are supposed to send out ICMP router advertisement messages periodically. It would probably be easier and preferable if the agent could be a user process as opposed to a chunk of kernel code. However the IETF mobile-ip draft states that the router advertisements need to be sent to either the multicast all hosts address (224.0.0.1) for multicast capable interfaces OR to the limited broadcast address, 255.255.255.255. The last time I looked doing the latter was a tad tough on bsd-based boxes; i.e., it wasn't possible for an application to send limited bcast packets out interfaces other than the 1st. You had to use directed broadcast so that IP would have a route. Maybe this isn't true any more? The last time I looked was during the Reno/Tahoe era. Is there some scheme for allowing an application to send packets directly out a given interface? It seems like multicasting apps would be able to do this, but maybe not. If there is no such scheme, I'm thinking about doing something like this: Alter ifconfig so that you can set a BEACON flag and network address (either multicast or limited broadcast). Have the daemon walk the interfaces to see who has BEACON capability. (Or call is RADVERT) Use a raw/icmp socket and sendto with a new flag along with ROUTETOIF and then check for that flag in the "route to if" code in ip_output. If found, access the interface and get the BEACON address and change the dst address accordingly. You could use the directed broadcast address to make the packet routeable, I presume. Better schemes gratefully accepted. regards, Jim Binkley jrb@cs.pdx.edu