This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Temporary IP address assignment trick


On Thu, Mar 20, 2003 at 11:36:37AM +0000, Jonathan Larmour wrote:
> Grant Edwards wrote:

> > I've noticed that a couple embedded devices I've played with
> > allow you to assign an IP address temporarily using an arp
> > trick...
> > 
> > If the device starts up with no IP address, and it subsequently
> > receives an Ethernet frame with its MAC address, the IP stack
> > will adopt the IP address in that frame as its own.  Typically
> > one then points a telnet client or web browser at the device
> > and configures its IP address permanently.
> [snip]
> > This is a very handy way to get a brand-new-out-of-the-box
> > embedded device up and running without requiring a DHCP server.
> > 
> > How hard would it be to get either of the eCos stacks to behave
> > like that?
> 
> This looks very similar to Reverse ARP, or RARP:
> <http://www.networksorcery.com/enp/rfc/rfc903.txt>. This
> technique is older than BOOTP I believe. Looking at the man
> page for rarpd, I see it has a -A option that's probably what
> you're seeing.

It's not RARP.  RARP requires that the device broadcast a RARP
request and then a server replies to that request (much like
BOOTP).  The devices I'm playing with just sit there silently
and if they receive _any_ non-broadcast IP packet with their
MAC address, they'll accept the IP address as their own.  It
can be an ICMP ping, a TCP SYN, anything.

> As for getting the stacks to do it - I'd have thought it would be pretty 
> simple - you only need to change init_all_network_interfaces.

Is there a way to tell the stack to receive and turn over to
the application any packet with a matching MAC address?

-- 
Grant Edwards
grante at visi dot com

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]