Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Apr 1998 08:49:58 +0200 (MEST)
From:      Hans Huebner <hans@artcom.de>
To:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: FreeBSD HA configuration / Ethernet address takeover
Message-ID:  <Pine.BSF.3.96.980427082513.1674B-100000@transrapid.artcom.de>
In-Reply-To: <Pine.BSF.3.96.980426233709.21511D-100000@sasami.jurai.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 26 Apr 1998, Matthew N. Dodd wrote:
> I've got an ethernet card here that allows an arbitrary number (well
> arbitrary to no more than 16) number of MAC addresses.  Fairly nifty.

> I'm kind of puzzled at how this would be integrated with the
> SIOCGHWADDR/SIOCSHWADDR calls as you might also need a way of determining
> which hadware address to set/get :)
After thinking about this for a weekend, I've come to the conclusion that
multiple ethernet addresses for one logical ethernet interface would not
be a good idea:  Not only would it complicate many utility programs, it
would also add ambiguity to the many-to-one mapping of an IP address to an
Ethernet address.  If multiple logical Ethernet interfaces on one physical
interface would be needed, that should be implemented by adding the notion
of multiple logical interfaces attachable to one physical interface.

Solaris does it like that, and I found the approach consistent and
straightforward:  Instead of defining additional IP addresses for one
interface, you clone the primary interface and get an additional, logical
ethernet interface which can be configured using ifconfig similar to a
real interface.  Such a logical interface would also be the right place to
assign another hardware address to an IP address, if the ethernet adapter
supports that.  I'm unsure whether Solaris supports that, though.

This leaves the question whether the SIOC[GS]IFHWADDR ioctl's should be
implemented the way Linux does this, that is:

	unsigned char hwaddr[6];

set address:

	ioctl(sockfd, SIOCGIFHWADDR, hwaddr);

get address:

	ioctl(sockfs, SIOCSIFHWADDR, hwaddr);

Comments anyone?

-Hans

P.S.: Please people.  Stop trying to tell me that my approach is stupid.
      I know that there are application level redundancy mechanisms, and I
      also know how to configure some of them.  I still want to do it like
      this for several reasons, and others seem to be interested in a way
      to change hardware addresses as well.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980427082513.1674B-100000>