Print this page
2553 mac address should be a dladm link property
*** 2987,2996 ****
--- 2987,2998 ----
minsize = sizeof (wl_key_t);
break;
case MAC_PROP_WL_MLME:
minsize = sizeof (wl_mlme_t);
break;
+ case MAC_PROP_MACADDRESS:
+ minsize = sizeof (mac_addrprop_t);
}
return (valsize >= minsize);
}
*** 3063,3072 ****
--- 3065,3084 ----
mip->mi_ldecay = learnval;
err = 0;
break;
}
+ case MAC_PROP_MACADDRESS: {
+ mac_addrprop_t *addrprop = val;
+
+ if (addrprop->ma_len != mip->mi_type->mt_addr_length)
+ return (EINVAL);
+
+ err = mac_unicast_primary_set(mh, addrprop->ma_addr);
+ break;
+ }
+
default:
/* For other driver properties, call driver's callback */
if (mip->mi_callbacks->mc_callbacks & MC_SETPROP) {
err = mip->mi_callbacks->mc_setprop(mip->mi_driver,
name, id, valsize, val);
*** 3178,3187 ****
--- 3190,3209 ----
* The value for these properties are returned through
* the MAC_PROP_RESOURCE property.
*/
return (0);
+ case MAC_PROP_MACADDRESS: {
+ mac_addrprop_t *addrprop = val;
+
+ if (valsize < sizeof (mac_addrprop_t))
+ return (EINVAL);
+ mac_unicast_primary_get(mh, addrprop->ma_addr);
+ addrprop->ma_len = mip->mi_type->mt_addr_length;
+ return (0);
+ }
+
default:
break;
}
*** 3331,3340 ****
--- 3353,3375 ----
case MAC_PROP_STATUS:
if (perm != NULL)
*perm = MAC_PROP_PERM_READ;
return (0);
+
+ case MAC_PROP_MACADDRESS: {
+ mac_addrprop_t *defaddr = default_val;
+
+ if (defaddr != NULL) {
+ if (default_size < sizeof (mac_addrprop_t))
+ return (EINVAL);
+ bcopy(mip->mi_info.mi_unicst_addr, defaddr->ma_addr,
+ mip->mi_type->mt_addr_length);
+ defaddr->ma_len = mip->mi_type->mt_addr_length;
+ }
+ return (0);
+ }
}
/*
* Get the property info from the driver if it implements the
* property info entry point.