Follow-up,
I decide that the IGMP
group list should be interface specific so I move the group list to the netif
structure. I then modified igmp.c to deal on the netif structure passed.
I also change igmp_init() to igmp_start() as it only work if the interface is
up and running. I them added the igmp_start to the netif_set_up()
function (removing it from tcpip.c). The fuction type igmp_mac_filter()
does not need the action or group parameters as it rebuild the hash table
based on the list in the netif sturcture past. Is there any reason to
keep these?
While at it, I added a
NETIF_FLAG_IGMP flag to the netif flags....
All may seem confusing but
if this seem like the right direction, I'll submit the changes once I have
done some testing.
Bill
I'm attempting to implement igmp off the latest build. I
see that I need to implement at igmp_mac_filter function. My plan is to
implement this in the ethernetif.c module. It would be assigned to the
netif structure in the low_level_init() function. The function would
then make the correct calls to the device driver (Atmel AT91 EMAC) to set or
clear the correct hash key.
As we leave a group we need to make sure
that know another joined group address resolves to the same hash key. If so,
we don't want to clear the key. There are a number of ways to resolve
this. We could keep a some sort of reference count or we can test the
entire group list as we leave a group. If we do a test, either the
igmp_mac_filter() would need to have the list of groups or the calling
function igmp_leavegroup() would have to have access to the hashkey() function
(making it HW dependent).
Any thoughts how to best/better handle
this?
Bill
_______________________________________________
lwip-devel
mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-devel