(usagi-users 03384) Re: MLDv2 linux implementation questions

Hoerdt Mickael <[email protected]>
Newsgroups gmane.linux.ipv6.usagi.users
Message-ID <[email protected]>
Which in the long run (after having joined and leaved channels during
some time
on the same socket) causes my application to fault with an "Cannot
allocate memory"
problem on the setsockopt(). The only solution I have to prevent this is
to open
another socket each time, or to increase the value of net.core.optmem_max.

Hoerdt Mickaël

Hoerdt Mickael wrote:

>Well, about the MLD version, I was talking about the implemented behavior
>concerning the MLD compatibility mode, that mean that when the querier on
>the link is in MLDv1, what does the implementation and if the host switch to
>MLDv1 compatibility mode, how do I check it ?
>
>Concerning the 4th field, net/ipv6/mcast.c gives the following :
>
>   2233     seq_printf(seq,
>   2234            "%-4d %-15s %04x%04x%04x%04x%04x%04x%04x%04x %5d %08X
>%ld\n",
>   2235            state->dev->ifindex, state->dev->name,
>   2236            NIP6(im->mca_addr),
>   2237            im->mca_users, im->mca_flags,
>   2238            (im->mca_flags&MAF_TIMER_RUNNING) ?
>   2239            jiffies_to_clock_t(im->mca_timer.expires-jiffies) : 0);
>
>If I count right, the 4th field is im->mca_users, which is not the time
>left on the pending
>timer, but I understand right, the number of setsockopt() for this
>group. The thing
>that I don't understand is that when I join a channel (Include mode
>using ADD_SOURCE) and leave it alternavely, this value increase when it
>should stay constant or is there an optimisation ?
>
>Hoerdt Mickaël
>
>David Stevens wrote:
>
>  
>
>>Hoerdt Mickael <[email protected]> wrote on 06/13/2005 08:31:58 
>>AM:
>>
>> 
>>
>>    
>>
>>>Hi,
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>>>I am doing some tests on the MLDv2 linux implementation (2.6.11 kernel).
>>>I have two questions :
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>>>- How do I check the MLD version running on my host ?
>>>   
>>>
>>>      
>>>
>>       As a user, or in a shell script, an easy way is to see if
>>/proc/net/mcfilter6 exists (it will if MLDv2 is supported on the
>>machine, won't otherwise). In a program, you can use one of the
>>source filter socket options and you'll get errno ENOPROTOOPT if
>>it isn't implemented.
>>
>> 
>>
>>    
>>
>>>On a link with MLDv2, I am joining and leaving the same SSM channel  and
>>>I am checking
>>>the status of /proc/net/igmp6 to see the state if has effectively
>>>joined/leaved the
>>>channel here is the ouput :
>>>   
>>>
>>>      
>>>
>>       These fields are unchanged from MLDv1, except the addition of a 
>>flag.
>>The '0x10' portion is MAF_GSQUERY, the "0x6" part is "MAF_LOADED" (on the
>>device) and "MAF_LASTREPORTER" (on the link). A "1" is "timer running".
>>       MAF_GSQUERY means there is a pending group and source specific
>>query for that group.
>>       If you wanted to look at the filter list, that's in the mcfilter6
>>file I mentioned earlier.
>>       The 4th field in igmp6 is the time left on the pending timer. It 
>>all
>>looks like expected behaviour to me-- is there something specific that
>>concerned you?
>>
>>                                               +-DLS
>>
>>
>> 
>>
>>    
>>
>
>
>  
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.