Cathy,

> 1. Can you think of any non-physical link driver (or even softmac) could 
> call mac_prop_init()s? I ask this question because it is impossible for 
> pseudo links (aggr, VNIC, or even softmac) to provide the instance 
> argument. That number is assigned by the GLDv3 framework.

This was discussed before and during ARC review and we feel that right
now mac_prop_init/get will be used by physical drivers only. The need
for drivers to actively retrieve properties is currently very limited,
mostly due to some drivers' design defects/peculiarities. Most drivers
should be able to live without these functions, relying on mc_setprop
callbacks only.

> 2. Assume the code path 
> mac_start()->mac_prop_load()->dls_mgmt_linkprop_init()->
> dlmgmt_upcall_linkprop_init()->dlmgmt_getlink_by_dev() ...
> 
> Note that dlmgmt_getlink_by_dev() can only be used for physical links, 
> and even for physical links, the device name is not the same as the mac 
> name (for example, softmacs). Therefore, when dlmgmt_getlink_by_dev() is 
> called with mac_name, it will return ENOENT for softmacs and other 
> non-physical links.
> 
> The similar problem exists in dld_set_public_prop(). It assumes that mac 
> name is the same as the device name.

Yes, I think this also chimes with Meem's comment about passing linkid
instead of name. It would be cleaner. I need to do some research. One
aspect that bothers me is interaction of dlmgmtd with partially attached
devices - i.e. the attach(9E)->mac_prop_init->mac_prop_load->... chain.
   Do you know of any existing kernel functions to translate macnames
into devnames and vice versa?

> 3. I assume that you know that mac_prop_init() could fail when a new 
> network interface is plugged in or you fresh-install a system. I guess 
> since mac_prop_init() is used to apply the persistent link property 
> configuration, those failures do not matter. But is a console message 
> needed here if that fails (the bge_attach() function, line 3091)?

I personally don't see the need for console spam here. There's no
messages when ddi_prop_get_int() doesn't find the property, why should
mac_prop_get() be different. I asked Ted to review, maybe he can provide
his opinion also.

> 4. I don't see dladm init-linkprop in network/physical service anymore. 
> How link properties like autopush can be applied after your changes?

Well, this what this RFE is all about: to remove the need to follow each
ifconfig plumb with dladm init-linkprop. When a link is plumbed, MAC
start will trigger dladm_init_linkprop() and all these properties,
including autopush, will be automatically sent to the kernel. I tested
autopush, among others - it works.

Now, as Sowmini noted, we still need dladm init-linkprop to push
properties _after plumb_ for wireless drivers. So I'm currently adding
an option to initialize wifi properties only, what you'll see in 
network/physical is:

        dladm init-linkprop -w

> mac.c
> 
> - It does not look right to call mac_prop_update() for the ENOTSUP case 
> (line 2952).

Will fix.

> - mac_get_prop() does not seem to be symmetric to mac_set_prop(). I 
> guess the reason that DLD_PROP_FLAG_MAC_ONLY only applies to 
> mac_set_prop() is because in that case, the property is already 
> initialized in the underlying driver. But the current flag name is 
> misleading because it seems that this property only needs to be known by 
> the mac layer. Can we change the name of DLD_PROP_FLAG_MAC_ONLY to 
> something like DLD_PROP_FLAG_DRIVER_IS_SET?

I feel DLD_PROP_FLAG_DRIVER_IS_SET is opaque. Naming is subjective, it's 
a matter of perception. Luckily, we don't have to rely on just name to 
derive its meaning: we can go to definition and read the comment. I 
think it's clear, but I could make it clearer.

> linkprop.c
> 
> - In dladm_init_linkprop() function, it does not seem right to take 
> (flags | DLADM_OPT_PERSIST) as the last argument. Note the possible 
> flags value here is either DLADM_OPT_PROP_MAC_ONLY or 
> DLADM_OPT_PROP_MAC_NAME.

You're right, I should pass the flags via 'argp' argument instead.

thanks,
-Artem
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to