In article 
<local.mail.freebsd-questions/[EMAIL PROTECTED]> 
you write:
>On Tue, Feb 18, 2003 at 11:02:30AM -0600, Terry Todd wrote:
>> On Mon, Feb 17, 2003 at 02:08:19PM +0100, Cliff Sarginson wrote:
>> > On Mon, Feb 17, 2003 at 01:30:09PM +0100, Andrea Franceschini wrote:
>> > > On Sat, Feb 15, 2003 at 08:28:35AM -0600, Terry Todd wrote:
>> > > > When you have more than one of the same type of NIC card in one
>> > > > machine is there a way to insure that the NIC numbering remains
>> > > > attached to the same card / MAC address if more cards are added or
>> > > > they are moved around?
>> > > > 
>> 
>> Here's an example.
>> 
>> The original setup:
>>  
>> $ ifconfig -a
>> rl0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
>>         ether 00:e0:29:85:49:b6
>>         media: Ethernet autoselect (10baseT/UTP)
>>         status: no carrier
>> rl1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
>>         ether 00:e0:29:85:49:d0
>>         media: Ethernet autoselect (10baseT/UTP)
>>         status: no carrier
>>  
>> After the cards are switched around in the PCI slots:
>>  
>> $ ifconfig -a
>> rl0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
>>         ether 00:e0:29:85:49:d0
>>         media: Ethernet autoselect (10baseT/UTP)
>>         status: no carrier
>> rl1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
>>         ether 00:e0:29:85:49:b6
>>         media: Ethernet autoselect (10baseT/UTP)
>>         status: no carrier
>>  
>> How can I keep rl0 associated with MAC 00:e0:29:85:49:b6 
>> and rl1 associated with MAC 00:e0:29:85:49:d0 and still
>> be able to add cards or move them around?
>
>About the best you can do is use ifconfig(8) to set the MAC address at
>the same time as you configure the interface:
>
>    ifconfig rl0 ether 00:e0:29:85:49:b6
>    ifconfig rl1 ether 00:e0:29:85:49:d0
>
>which will cause the MAC address to stick with the interface number,
>rather than the actual card.  That will work if you just keep the two
>cards as you've shown here, but if you add a new card that happens to
>end up as rl0 then you'll probably end up with a mess.
>
>As far as I know, there's no way of wiring down interface numbers to
>PCI bus slots, analogously to the way you can wire down SCSI devices
>by bus, target and LUN --- see the section on 'SCSI DEVICE
>CONFIGURATION' in LINT.  You'ld probably have to go a bit linux-ish
>and have, say, eth0 as the generic name for an ethernet interface
>independant of the actual chipset on the NIC in order to make the most
>sense of that sort of wiring-down idea.

Actually, this capability has been in 5.0 for a long time, but I don't
think that it was ever MFC'd to 4.x.  There are network aliases for the
actual physical devices, which appear as /dev/netN, where N is the 
index number used.  These can be wired either by name or ether number
at boot time:

   Allow wiring of net aliases in /boot/device.hints of the form:
        hint.net.1.dev="lo0"
           or
        hint.net.12.ether="00:a0:c9:c9:9d:63"


So for the original poster, you could do (in 5.0):

        hint.net.1.ether="00:e0:29:85:49:b6"
        hint.net.2.ether="00:e0:29:85:49:d0"

        > ifconfig net1 
        rl1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
                ether 00:e0:29:85:49:b6
                media: Ethernet autoselect (10baseT/UTP)
                status: no carrier

        > ifconfig net2
        rl0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
                ether 00:e0:29:85:49:d0
                media: Ethernet autoselect (10baseT/UTP)
                status: no carrier

And the 'net1','net2' aliases will remain bound to whichever driver has
those actual ethernet addresses, regardless of PCI ordering.
--
Jonathan

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-questions" in the body of the message

Reply via email to