Hello All, Last week I've been doing work not specific to RTL8169, but rather to general ethernet stack. I've been investigating how to archieve dynamic MAC address changing in runtime. For now, I'm able to change MAC on NIC side without errors as well as in ethip server. It seems that after issuing 'nic 0 addr 00:01:02:03:04:05' frames are sent with new MAC. However, inetsrv (iplink code) caches MAC address, so it should be informed about MAC address change to properly receive frames.
My idea is to provide callback like IPLINK_EV_CHANGE_ADDR besides existing IPLINK_EV_RECV which will be called from ethip and will inform that iplink has changed link-level address. So the whole process will be like: 1) User issues 'nic 0 addr 00:02:04:06:08:10' 2) NIC changes it's MAC address. nic_ev_addr_changed callback to ethip server gets called 3) ethip changes MAC in ethip_nic_t structure 4) ethip calls iplink_ev_change_addr callback 5) inetsrv changes MAC cached in inet_link_t structure so whole process will be initiated by the NIC. But we could also initiate MAC changing process from inetsrv and propagate it down to the NIC driver through ethip. What do you think about that? Regards, Agnieszka
_______________________________________________ HelenOS-devel mailing list [email protected] http://lists.modry.cz/listinfo/helenos-devel
