[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #20503] IGMP Improvement
From: |
Bill Florac |
Subject: |
[lwip-devel] [bug #20503] IGMP Improvement |
Date: |
Tue, 17 Jul 2007 09:26:40 +0000 |
User-agent: |
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) |
Follow-up Comment #3, bug #20503 (project lwip):
Additional comments:
*bold*Removed igmp_init() from tcpip_thread() function and force users to
call after netif_add() *bold*
[Perhaps there is a better solution but netif_add() needs to be called to
initialize the netif values before igmp can use them. This is not guaranteed
in tcpip_thread.]
----
*bold*Reworked igmp.c to allow for different group list per interface.
*bold*
[This required adding a igmp_group_list to the netif structure (netif.h).
This is the suggested implementation according the RFC. This allows separate
groups to be joined on each interface. Normally would join only on one
interface and let the network manage getting it to other subnets.]
----
*bold*Reworked igmp.c so the debug reporting was formatted like other lwip
files.*bold*
[I hope don't offended anyone.]
----
*bold*netif_add() now initializes igmp_mac_filter to NULL.*bold*
[The igmp code checks to see if this assigned before calling. A random value
would cause problems if it was used before we got to point it to the correct
function]
----
*bold*igmp_joingroup() now checks to make sure you only add multicast
addresses to the list.*bold*
[Just to make sure we don't create invalid groups and send out invalid igmp
reports.]
----
*bold*Added group_state member DEAD_MEMBER to separate groups that are being
initialized to those that are stale.*bold*
[This allow correct building of hash key as we may don't delete records. The
initial code did not delete group records after leaving a group. The routine
to set the hash value for the MAC rebuilds by reading the entire list. I
needed a way to determine the ones that should be removed from the hash.]
----
*bold*Removed igmp_mac_filter() to allrouters group.*bold*
[According to RFC-2236 we intentionally don't want our host to subscribe to
this. If, at sometime in the future, we add router support, we can adjust as
needed.]
----
*bold*In igmp_input(), changed igmp_lookup_group() to
igmp_lookfor_group.*bold*
[This is a BUG! If it's not for us, we don't want it to make a group for us.
List need to be managed by the application. This BUG also exists in ip.c]
----
*bold*igmp_leavegroup() can now delete memory used by the group. Use
LWIP_IGMP_FREE_GROUPS to enable this feature.*bold*
[The application I'm working with may add and remove groups often. Over time,
I cold run out of memory....]
Bill
(file #13372)
_______________________________________________________
Additional Item Attachment:
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?20503>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/