Subject: Re: [PATCH net-next v2 5/5] selftests: net: bridge: add tests for igmpv3 MRC and QQIC validation

From: Ido Schimmel <[email-masked]>
Date: Fri, 3 Apr 2026 13:19:44 +0300

On Fri, Apr 03, 2026 at 01:20:49PM +0530, Ujjal Roy wrote:
> On Tue, Mar 31, 2026 at 7:44 PM Ido Schimmel <[email-masked]> wrote:
> >
> > On Mon, Mar 30, 2026 at 07:16:11PM +0000, Ujjal Roy wrote:
> > > Add bridge selftests that configure IGMPv3 parameters and validate the
> > > resulting Query packet fields for Max Resp Code (MRC) and Querier Query
> > > Interval Code (QQIC).
> > >
> > > This also adds helper binary to encode floating-point exponential fields.
> > >
> > > Future extensions may cover corresponding IPv6 cases.
> >
> > Please cover both IGMPv3 and MLDv2 since the patchset touches both. You
> > can add the MLDv2 tests in bridge_mld.sh.
> >
> > Also, I think you can simplify the test by simply matching on the
> > expected values of MRC and QQIC using tc-u32.
> >
> > For both IGMPv3 and MLDv2 please test both:
> >
> > * MRC and QQIC in linear range.
> > * MRC and QQIC in non-linear range.
> >
> > And please make sure the new test cases don't add new shellcheck
> > warnings / errors or it will fail in the CI. You can ignore existing
> > ones.
> 
> I will upgrade the existing test cases in file bridge_vlan_mcast.sh
> instead of the previous file (bridge_igmp/mld.sh).

Is there a reason to place them in bridge_vlan_mcast.sh given they are
not specific to the per-VLAN multicast context? bridge_{igmp,mld}.sh
looks like a better fit.

> 
> I have some doubts on test case logs reporting. Below are the logs
> without my patchset. API used vlmc_query_intvl_test() and
> vlmc_query_response_intvl_test().
> TEST: Vlan mcast_query_interval global option default value         [ OK ]
> TEST: Vlan 10 mcast_query_interval option changed to 200            [ OK ]
> TEST: Vlan mcast_query_response_interval global option default value   [ OK ]
> TEST: Vlan 10 mcast_query_response_interval option changed to 200   [ OK ]
> 
> I am expecting some suggestions from the logs below. And are these
> covers both IGMPv3 and MLDv2 for QQIC and MRC?
> Actually mcast_query_interval=QQIC and
> mcast_query_response_interval=MRC we already know.

Not sure what you are asking. My request was to have test cases for both
MRC and QQIC, for both IGMPv3 and MLDv2.

> 
> TEST: Vlan mcast_query_interval global option default value         [ OK ]
> TEST: Vlan 10 mcast_query_interval option changed to 200            [ OK ]
> TEST: Vlan 10 mcast_query_interval number of IGMPv2 general query   [
> OK ] -> old case added log
> TEST: Vlan 10 mcast_query_interval option changed to 6000           [ OK ]
> TEST: Vlan 10 mcast_query_interval in IGMPv3 is 60                  [ OK ]
> TEST: Vlan 10 mcast_query_interval in MLDv2 is 60                   [ OK ]
> TEST: Vlan 10 mcast_query_interval option changed to 16000          [ OK ]
> TEST: Vlan 10 mcast_query_interval in IGMPv3 is 160                 [ OK ]
> TEST: Vlan 10 mcast_query_interval in MLDv2 is 160                  [ OK ]
> TEST: Vlan mcast_query_response_interval global option default value   [ OK ]
> TEST: Vlan 10 mcast_query_response_interval option changed to 600   [ OK ]
> TEST: Vlan 10 mcast_query_response_interval in IGMPv3 is 60         [ OK ]
> TEST: Vlan 10 mcast_query_response_interval option changed to 1600   [ OK ]
> TEST: Vlan 10 mcast_query_response_interval in IGMPv3 is 160        [ OK ]
> TEST: Vlan 10 mcast_query_response_interval option changed to 3000   [ OK ]
> TEST: Vlan 10 mcast_query_response_interval in MLDv2 is 30000       [ OK ]
> TEST: Vlan 10 mcast_query_response_interval option changed to 6000   [ OK ]
> TEST: Vlan 10 mcast_query_response_interval in MLDv2 is 60000       [ OK ]
> 
> Or is it better to name them properly instead of mcast option names, like below?
> 
> Vlan 10 mcast_query_interval:
> TEST: Number of tagged IGMPv2 general query                         [ OK ]
> TEST: IGMPv3 QQIC linear value 60                                   [ OK ]
> TEST: IGMPv3 QQIC non linear value 160                              [ OK ]
> TEST: MLDv2 QQIC linear value 60                                    [ OK ]
> TEST: MLDv2 QQIC non linear value 160                               [ OK ]

I find the latter clearer.