Re: [PATCH net-next v2 5/5] selftests: net: bridge: add tests for igmpv3 MRC and QQIC validation
From: Ido Schimmel
Date: Fri Apr 03 2026 - 06:28:18 EST
On Fri, Apr 03, 2026 at 01:20:49PM +0530, Ujjal Roy wrote:
> On Tue, Mar 31, 2026 at 7:44 PM Ido Schimmel <idosch@xxxxxxxxxx> 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.