On Fri, Apr 03, 2026 at 03:00:49PM +0000, Ujjal Roy wrote: > In MLD, QQIC and MRC fields are not correctly encoded when > generating query packets. Since the receiver of the query > interprets these fields using the MLDv2 floating-point > decoding logic, any value that exceeds the linear threshold > is incorrectly parsed as an exponential value, leading to > an incorrect interval calculation. > > Encode and assign the corresponding protocol fields during > query generation. Introduce the logic to dynamically > calculate the exponent and mantissa using bit-scan (fls). > This ensures QQIC (8-bit) and MRC (16-bit) fields are > properly encoded when transmitting query packets with > intervals that exceed their respective linear thresholds > (128 for QQI; 32768 for MRD). > > RFC3810: If QQIC >= 128, the QQIC field represents a > floating-point value as follows: > 0 1 2 3 4 5 6 7 > +-+-+-+-+-+-+-+-+ > |1| exp | mant | > +-+-+-+-+-+-+-+-+ > > RFC3810: If Maximum Response Code >= 32768, the Maximum > Response Code field represents a floating-point value as > follows: > 0 1 2 3 4 5 6 7 8 9 A B C D E F > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > |1| exp | mant | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > Signed-off-by: Ujjal Roy <[email protected]>
Reviewed-by: Ido Schimmel <[email protected]>

