Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Mar 2008 10:55:12 -0500
From:      Brooks Davis <brooks@freebsd.org>
To:        Yehonatan Yossef <yoniy@mellanox.co.il>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Duplicate interface name
Message-ID:  <20080317155512.GB38485@lor.one-eyed-alien.net>
In-Reply-To: <6C2C79E72C305246B504CBA17B5500C9038B0EA3@mtlexch01.mtl.com>
References:  <200803171107.m2HB78ri055178@freefall.freebsd.org> <6C2C79E72C305246B504CBA17B5500C9038B0EA3@mtlexch01.mtl.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Mon, Mar 17, 2008 at 01:24:13PM +0200, Yehonatan Yossef wrote:
>  
> Hi,
> 
> I'm porting a 10GigE driver to FreeBSD 6.3. My card has 2 ports.
> Loading the driver brings up two new interfaces, problem is they have
> the same name.
> 
> How do I configure the interface numbering?

Generating the interface name is the driver's responsibility.  In a typical
hardware driver, this code is used:

if_initname(ifp, device_get_name(dev), device_get_unit(dev));

With a dual-ported card that has only one bus attachment, you can't do that
since you'll have to ifnets.  If the driver will only support cards that have
exactly two port, the easy solution would be to make the first if_initname
call:

if_initname(ifp, device_get_name(dev), device_get_unit(dev)*2);

and the second

if_initname(ifp, device_get_name(dev), (device_get_unit(dev)*2) + 1);

If the number of ports can potentially vary then the driver will need to
manage them internally.  The unit number allocation framework can take care of
this for you.  See alloc_unr(9).

-- Brooks

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (FreeBSD)

iD8DBQFH3pRfXY6L6fI4GtQRApMXAJ9xC4+/GcAQSemNdUH0ZdeBd3EO8gCgoM8D
2AdxnGoKSfZWMQc2Fa7kzSg=
=0Qax
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080317155512.GB38485>