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

Reply via email to