Thread (8 messages) flat view 8 messages, 2 authors, 2012-08-03

Re: Premature timeout for MLDv1 Host compatibility mode?

From: Dragos Ilie <hidden>
Date: 2012-08-02 13:28:50

On Thu, Aug 2, 2012 at 2:58 PM, David Stevens [off-list ref] wrote:
netdev-owner@vger.kernel.org wrote on 07/26/2012 10:57:43 AM:
quoted
RFC 3810 says that the timeout should be computed as
Robustness_Variable * Query_Interval + Query_Response_Interval. This
suggests that the line where switchback is computed should be changed
to something like

switchback = (idev->mc_qrv * 125 * HZ)  + max_delay;

where 125 is the default Query_Interval in seconds
Dragos,
        I agree that it's too short, but this shouldn't be using the
default value, but rather the actual value of the querier, if one is
present,
as calculated from a QQIC in a query. I suggest saving the QQI,
decoded, in a new "idev->mc_qqi" which should be initialized to 125
but updated by received queries and then using:

switchback = idev->mc_qrv * idev->mc_qqi * HZ + max_delay;

                                                +-DLS
David,

MLDv1 packets do not have a QQIC field in the Query header. That is a
available for MLDv2 only. Consequently, MLDv1 queriers should fallback
 on the Query Interval variable, which has a  default value of 125
seconds. Since the Query Interval value is not user-configurable, I
assume that using the default value is a reasonable choice.

RFC 3810(MLDv2)  does mention that the Older Version Querier Present
Timeout must be calculated using the Query Interval from the last
received Query. I think the RFC is wrong on that point because I don't
see how a MLDv1 querier can convey its Query Interval to a listener.

Regards,
Dragos
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help