From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00DA23FEB18 for ; Thu, 26 Mar 2026 15:07:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774537672; cv=none; b=nEkj8OGVNsQBEbZJLeAYUfVPvSDGdil64aO3ALqx5lMeGwUQJCoSQMnG6VMcfgy9KFQxyWOElF6yInNdLgNeJHB9xBcD92u6UdJXjCmaIU1bY0orqo9nqWAqazXpDEgCnW7HnFktC/VEynMlABlffW3Vl9q3FwPiKmI81giwf9Q= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774537672; c=relaxed/simple; bh=jhUluxnOnXLTYrExMH2GUBs0GFaV+n3AxshVQjkfG5U=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=kWRPbXe4OjfDKJ9PVOoatukSRQgAnOqcE6IbaBiP893eWhRSlIWdOL8VOPxQAmPq/LD6Vn3IUzHnMwm9Idy/beO9rR5MJEZRJfwXbsradGWHzd3e4FHvLYWrv4b6hdUT03ZNH0PcbobWzOsoDYMRKVdlDzbZuaX4YlqCknQt5MM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=E82Fm2Yr; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="E82Fm2Yr" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2aae4816912so7319815ad.2 for ; Thu, 26 Mar 2026 08:07:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774537670; x=1775142470; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=ZCoW6mouvlV/2Yp7iZzyAAghySisJwNrZrFcduzYkY0=; b=E82Fm2Yrh/VB6fdrVtNgwUqyE4wHfRWpbTqM8JWldXz1FtpzlQFQKvDSrVeZupYGZi quRFC0r+mI12rDqKnwjJ4euK2UZuhqXpOJmWN8XBPmPQ/uH2070EDJFPT3nQY3f1M6ri NST4oPrYgeslEbRu6jMRNLYzUcxt0iaH6eLt9squzkXZbJoTkcBwVN0WMuopkTPKldXf KqlckOmJ1pNIX9o0s+ad/XMSAWrrvVwIdw38TsVo9K1JWvgFIkjpejUOtGLOMUYK8kDP SBzJ/BNDz+OJsWPi8EJpw7eoJJ7/b42qALiXCh3nutaxkb/rOixJBbB7JARV5P+epI3+ pRxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774537670; x=1775142470; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ZCoW6mouvlV/2Yp7iZzyAAghySisJwNrZrFcduzYkY0=; b=Jz86lZdeyUnyiR9Bel7L9tpsqjSKluC+FOgVsN7Ymo2kXbxKtc8v5Kx3/NObZ2DGNZ xJA2gLFIU3zsNTXh/tF5y9OMTzw1Rh1vVOLZGQqH475RqTn5jb4hHLXqzMq5MXr0vHvo LAIV0fG/mhEIcaQcMbNEo6ZwIHjwq/w3aU9LzjwlhEObqgmHBZbqQhVrzIhD08Atpnh5 aJ01184tudMbaexfLPa6QQKW8TNJcsvK7l/ofLAg22I7kCfiWmDb2IggDyfbQZCPTlcX +mfjKeswYag++7VdEp3VG1mLgJQnCC2BPdU0DADjcNuFXerQRKbMQsPpdnuyKwVcIfuK hdMg== X-Forwarded-Encrypted: i=1; AJvYcCUqXKAAmC0ISeJxaWM+cyfLsszQopCiMpPJWmP7Hop29cJozBeArIRH9icH8a9TBxzbmgGF8RbSS6ik+jY=@vger.kernel.org X-Gm-Message-State: AOJu0YwvbKmSo4Mla4d8B0iZWeA9O9NdqSDZ9hdMaYTOQQdHRacv+3tL 6B6VzwVPPIjYHvR3NI6EZF7kyYH/v//YrVkGygkQhKvn5Uv5WdO+dMFe X-Gm-Gg: ATEYQzwbxLJWRYKxscuYMYAwiPslsegX+tfHNBCxEwBa+3HFas8Xm4dEJTh0rI6wmxO 3FKF4/WM/u9qmlan8hk0OI41zFw9pj3zoH+YstAZmtpG+79xGTBK5tzrIjH7cGUub6h6FWeCP5f r55JpkmuK/ow9LMMLkhmqAJQwQXblgtdjZIwI7gePMMMbIGorYT7HVEPLQ4U6GG076a+f2HkvpK LUSpqu3R3CL3WnDxM2tEDKfrBKvq6hXZH+2HZUMO4qEQRJdRuQKkLy8+BA8xR9UicHXSG/31fc8 rvzklNV+PZTqyT2FvneK217kQpeoegbiXpzvs7D0KD+CbYPLWx0jxm2z0/qL97DXAiItBp7xSBJ GbPz8x7xlfyaJtdTadZeOmqMK1yWuyFEqOTx6oQYxQb2RDIhJYvgaenZnLWP90QWNeVNn8mF/Sy NjBhEle0wEcajGAi7RX8xiC8Crzw3gRIwkc8kLdChEiN9Ig5HksoE= X-Received: by 2002:a17:902:e951:b0:2b0:665b:c7de with SMTP id d9443c01a7336-2b0b0aef15cmr88760115ad.40.1774537670058; Thu, 26 Mar 2026 08:07:50 -0700 (PDT) Received: from DESKTOP-82PPU4A.localdomain ([202.8.116.170]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b0bc8bb5fasm33146375ad.59.2026.03.26.08.07.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Mar 2026 08:07:49 -0700 (PDT) From: Ujjal Roy To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Nikolay Aleksandrov , Ido Schimmel , David Ahern Cc: Ujjal Roy , bridge@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 0/4] net: bridge: mcast: add multicast exponential field encoding Date: Thu, 26 Mar 2026 15:07:38 +0000 Message-ID: <20260326150742.50289-1-royujjal@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Description: This series addresses a mismatch in how multicast query intervals and response codes are handled across IPv4 (IGMPv3) and IPv6 (MLDv2). While decoding logic currently exists, the corresponding encoding logic is missing during query packet generation. This leads to incorrect intervals being transmitted when values exceed their linear thresholds. The patches introduce a unified floating-point encoding approach based on RFC3376 and RFC3810, ensuring that large intervals are correctly represented in QQIC and MRC fields using the exponent-mantissa format. Key Changes: * ipv4: igmp: get rid of IGMPV3_{QQIC,MRC} and simplify calculation Removes legacy macros in favor of a cleaner, unified calculation for retrieving intervals from encoded fields, improving code maintainability. * ipv6: mld: rename mldv2_mrc() and add mldv2_qqi() Standardizes MLDv2 terminology by renaming mldv2_mrc() to mldv2_mrd() (Maximum Response Delay) and introducing a new API mldv2_qqi for QQI calculation, improving code readability. * ipv4: igmp: encode multicast exponential fields Introduces the logic to dynamically calculate the exponent and mantissa using bit-scan (fls). This ensures QQIC and MRC fields (8-bit) are properly encoded when transmitting query packets with intervals that exceed their respective linear threshold value of 128 (for QQI/MRT). * ipv6: mld: encode multicast exponential fields Applies similar encoding logic for MLDv2. 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). Impact: These changes ensure that multicast queriers and listeners stay synchronized on timing intervals, preventing protocol timeouts or premature group membership expiration caused by incorrectly formatted packet headers. Ujjal Roy (4): ipv4: igmp: get rid of IGMPV3_{QQIC,MRC} and simplify calculation ipv6: mld: rename mldv2_mrc() and add mldv2_qqi() ipv4: igmp: encode multicast exponential fields ipv6: mld: encode multicast exponential fields include/linux/igmp.h | 158 +++++++++++++++++++++++++++++++-- include/net/mld.h | 179 ++++++++++++++++++++++++++++++++++++-- net/bridge/br_multicast.c | 22 +++-- net/ipv4/igmp.c | 6 +- net/ipv6/mcast.c | 19 +--- 5 files changed, 336 insertions(+), 48 deletions(-) -- 2.43.0