Re: Please backport bridge multicast exponential field encoding fix series to 6.1.y/6.6.y/6.12.y/6.18.y/7.0.y
Ujjal Roy <[email protected]> Thu, 9 Jul 2026 20:51:46 +0530
| Newsgroups | gmane.linux.network.bridge |
|---|---|
| Message-ID | <CAE2MWk=xfQ1SpkHnVL0Tsru4e=_8xi2XvESs4Lh+=g4cbFEuuA__7782.03239185444$1783611128$gmane$org@mail.gmail.com> |
On Thu, Jul 9, 2026 at 8:43=E2=80=AFPM Ujjal Roy <[email protected]> wrote= : > > On Thu, Jul 9, 2026 at 7:52=E2=80=AFPM Greg KH <[email protected]= g> wrote: > > > > On Thu, Jul 09, 2026 at 06:35:04PM +0530, Ujjal Roy wrote: > > > On Thu, Jul 9, 2026 at 6:23=E2=80=AFPM Greg KH <gregkh@linuxfoundatio= n.org> wrote: > > > > > > > > On Thu, Jul 09, 2026 at 06:12:40PM +0530, Ujjal Roy wrote: > > > > > On Thu, Jul 9, 2026 at 4:34=E2=80=AFPM Greg KH <gregkh@linuxfound= ation.org> wrote: > > > > > > > > > > > > On Thu, Jul 09, 2026 at 10:13:27AM +0000, Ujjal Roy wrote: > > > > > > > Hi Greg, > > > > > > > > > > > > > > Please consider backporting the following bridge multicast fi= x series to 6.1.y, 6.6.y, 6.12.y, 6.18.y and 7.0.y. > > > > > > > > > > > > > > 726fa7da2d8c ("ipv4: igmp: get rid of IGMPV3_{QQIC,MRC} and s= implify calculation") > > > > > > > 12cfb4ecc471 ("ipv6: mld: rename mldv2_mrc() and add mldv2_qq= i()") > > > > > > > 95bfd196f0dc ("ipv4: igmp: encode multicast exponential field= s") > > > > > > > e51560f4220a ("ipv6: mld: encode multicast exponential fields= ") > > > > > > > 529dbe762de0 ("selftests: net: bridge: add MRC and QQIC field= encoding tests") > > > > > > > > > > > > Why is any of this needed in older kernels? > > > > > > > > > > > > And 7.0.y is long end-of-life. > > > > > > > > > > > > And why, if this does fix issues, was it not tagged for stable = to start > > > > > > with? > > > > > > > > > > > > thanks, > > > > > > > > > > > > greg k-h > > > > > > > > > > I already explained this in the email thread, "Please backport br= idge > > > > > multicast exponential field encoding fix series to stable kernels= ". > > > > > > > > Sorry, but that's not here (remember, some of us get 1000+ emails a > > > > day.) > > > > > > > > Please explain why patches need to be backported when asking for th= em to > > > > be backported. > > > > > > > > thanks, > > > > > > > > greg k-h > > > > > > Sorry for breaking the thread. I understand your point, I will > > > maintain this in the future. > > > How should I send the patchset that addresses the conflicts on 5.10.y > > > and 7.1.y? Shall I send the conflicts patchset as a series via a > > > different thread or how? I've never done this before, so I'm asking. > > > > > > Here is the explanation for why the patches need to be backported: > > > > > > History: The multicast stack currently supports decoding of IGMPv3 an= d > > > MLDv2 exponential timer field encodings, but lacks the corresponding > > > encoding logic when generating multicast query packets. As a result, > > > query intervals and response codes exceeding the linear encoding rang= e > > > can be transmitted incorrectly. This can cause multicast queriers and > > > listeners to interpret different timing values, resulting in protocol > > > interoperability issues, membership timeouts, and premature multicast > > > group expiration. > > > > > > Testing: The series adds the missing encoding support for both IGMPv3 > > > and MLDv2 and includes selftests that validate the behavior. > > > I backported the series to v6.6.123.2 and verified the accompanying > > > selftests. The selftests fail on the unpatched kernel and pass after > > > applying the series, demonstrating both the bug and the effectiveness > > > of the fix. > > > > > > Given that this is a protocol correctness issue affecting multicast > > > query generation, please consider backporting the complete series to > > > all applicable stable kernels. > > > > > > > But this really seems like a new feature being added, it's not fixing a > > regression of something that previously worked, right? > > > > WHy can't people just update to the latest kernel release to get this i= f > > they need it for their environments? > > > > thanks, > > > > greg k-h > > This is a corner case when people set the query timer value higher > than 128. People usually use the default value and don't change it, so > they may not encounter this issue. But I found it when I changed the > value during some extensive validation of protocol timeouts. > > If one host doesn't have this fix, clients will observe premature > multicast group expiration. For example, a set-top box channel might > disconnect early. > > But we can ignore this until few more people request this fix for older k= ernels. Last two patches actually fix the timeout issue. Below one fixes QQIC encoding BUG for IPv4. 95bfd196f0dc ("ipv4: igmp: encode multicast exponential fields") @@ -780,11 +780,9 @@ static struct sk_buff *br_ip4_multicast_alloc_query(struct net_bridge *br, case 3: ihv3 =3D igmpv3_query_hdr(skb); ihv3->type =3D IGMP_HOST_MEMBERSHIP_QUERY; - ihv3->code =3D (group ? br->multicast_last_member_interval = : - br->multicast_query_response_interval= ) / - (HZ / IGMP_TIMER_SCALE); + ihv3->code =3D igmpv3_mrc(mrt / (HZ / IGMP_TIMER_SCALE)); ihv3->group =3D group; - ihv3->qqic =3D br->multicast_query_interval / HZ; + ihv3->qqic =3D igmpv3_qqic(br->multicast_query_interval / HZ); // This was not encoding earlier