Sorry for the late reply.
I think that the problem is that the data-link for the physical links
are created in the post-attachment of the device (in softmac_create()),
and it does have the assumption that there is 1-1 mapping between the
data-link and the dev_info.
The pseudo devices is different since each pseudo driver (aggr, VNIC
etc) calls the dls_devnet_create() function explicitly.
In order for your case to work, some changes must be made on how
data-link is created for physical links.
Thanks
- Cathy
So I've done some more digging.
Turns out that the problem is now that the dld_str_open() is returning
back ENOENT for the 2nd port on my card. I've tracked this down (I
think) to
dev = makedevice(dsp->ds_major, (minor_t)ppa + 1);
if ((err = dls_devnet_hold_by_dev(dev, &ddp)) != 0)
goto failed;
(in dld_str.c).
which ultimately winds up doing:
rw_enter(&i_dls_devnet_lock, RW_WRITER);
if ((err = mod_hash_find(i_dls_devnet_hash,
(mod_hash_key_t)name, (mod_hash_val_t *)&ddp)) != 0) {
ASSERT(err == MH_ERR_NOTFOUND);
rw_exit(&i_dls_devnet_lock);
softmac_rele_device(ddh);
return (ENOENT);
}
What's weird is that it would *appear* that the name is well formed,
and the mac handle looks properly initialized. But it appears that the
i_dls_devnet_hash table doesn't contain my particular device. Now it
looks like Clearview/UV and the softmac are implicated. Is anymore
more familiar with this code?
-- Garret
Nicolas Droux wrote:
Sebastien Roy wrote:
On Tue, 2009-09-08 at 16:03 -0700, Garrett D'Amore wrote:
Before I go off traipsing into the Nemo code, I thought I'd ask
around. Is there any other driver that uses multiple PPAs for a
single dev_info_t?
Yes: aggr and vnic (and the soon to be integrated iptun) all do that.
These have only one instance of a pseudo driver registering multiple
MAC instances, specifying a m_instance of -1 (except for the
aggregation key values for backward compatibility.)
These pseudo drivers then call dls_devnet_create() to tie-in the MAC
instance created with the data link id for the new data link.
What Garrett is doing here seems to be different, i.e. potentially
multiple dev_info_t registering multiple MAC instances, specifying a
non-zero m_instances. In this case the framework is most likely not
tying-in all the new MAC instances with data links.
Nicolas.
Is this a known bug?
Not that I'm aware of.
-Seb
_______________________________________________
networking-discuss mailing list
[email protected]
_______________________________________________
networking-discuss mailing list
[email protected]
_______________________________________________
networking-discuss mailing list
[email protected]