mbox series

[net-next,00/16] selftests: net: bridge: add tests for IGMPv3

Message ID 20201027185934.227040-1-razor@blackwall.org
Headers show
Series selftests: net: bridge: add tests for IGMPv3 | expand

Message

Nikolay Aleksandrov Oct. 27, 2020, 6:59 p.m. UTC
From: Nikolay Aleksandrov <nikolay@nvidia.com>

Hi,
This set adds tests for the bridge's new IGMPv3 support. The tests use
precooked packets which are sent via mausezahn and the resulting state
after each test is checked for proper X,Y sets, (*,G) source list, source
list entry timers, (S,G) existence and flags, packet forwarding and
blocking, exclude group expiration and (*,G) auto-add. The first 3 patches
prepare the existing IGMPv2 tests, then patch 4 adds new helpers which are
used throughout the rest of the v3 tests.
The following new tests are added:
 - base case: IGMPv3 report 239.10.10.10 is_include (A)
 - include -> allow report
 - include -> is_include report
 - include -> is_exclude report
 - include -> to_exclude report
 - exclude -> allow report
 - exclude -> is_include report
 - exclude -> is_exclude report
 - exclude -> to_exclude report
 - include -> block report
 - exclude -> block report
 - exclude timeout (move to include + entry deletion)
 - S,G port entry automatic add to a *,G,exclude port

The variable names and set notation are the same as per RFC 3376,
for more information check RFC 3376 sections 4.2.15 and 6.4.1.
MLDv2 tests will be added by a separate patch-set.

Thanks,
 Nik

Nikolay Aleksandrov (16):
  selftests: net: bridge: rename current igmp tests to igmpv2
  selftests: net: bridge: igmp: add support for packet source address
  selftests: net: bridge: igmp: check for specific udp ip protocol
  selftests: net: bridge: igmp: add IGMPv3 entries' state helpers
  selftests: net: bridge: add tests for igmpv3 is_include and inc ->
    allow reports
  selftests: net: bridge: add test for igmpv3 inc -> is_include report
  selftests: net: bridge: add test for igmpv3 inc -> is_exclude report
  selftests: net: bridge: add test for igmpv3 inc -> to_exclude report
  selftests: net: bridge: add test for igmpv3 exc -> allow report
  selftests: net: bridge: add test for igmpv3 exc -> is_include report
  selftests: net: bridge: add test for igmpv3 exc -> is_exclude report
  selftests: net: bridge: add test for igmpv3 exc -> to_exclude report
  selftests: net: bridge: add test for igmpv3 inc -> block report
  selftests: net: bridge: add test for igmpv3 exc -> block report
  selftests: net: bridge: add test for igmpv3 exclude timeout
  selftests: net: bridge: add test for igmpv3 *,g auto-add

 .../selftests/net/forwarding/bridge_igmp.sh   | 532 +++++++++++++++++-
 1 file changed, 520 insertions(+), 12 deletions(-)

Comments

Jakub Kicinski Oct. 30, 2020, 5:53 p.m. UTC | #1
On Tue, 27 Oct 2020 20:59:18 +0200 Nikolay Aleksandrov wrote:
> This set adds tests for the bridge's new IGMPv3 support. The tests use
> precooked packets which are sent via mausezahn and the resulting state
> after each test is checked for proper X,Y sets, (*,G) source list, source
> list entry timers, (S,G) existence and flags, packet forwarding and
> blocking, exclude group expiration and (*,G) auto-add. The first 3 patches
> prepare the existing IGMPv2 tests, then patch 4 adds new helpers which are
> used throughout the rest of the v3 tests.
> The following new tests are added:
>  - base case: IGMPv3 report 239.10.10.10 is_include (A)
>  - include -> allow report
>  - include -> is_include report
>  - include -> is_exclude report
>  - include -> to_exclude report
>  - exclude -> allow report
>  - exclude -> is_include report
>  - exclude -> is_exclude report
>  - exclude -> to_exclude report
>  - include -> block report
>  - exclude -> block report
>  - exclude timeout (move to include + entry deletion)
>  - S,G port entry automatic add to a *,G,exclude port
> 
> The variable names and set notation are the same as per RFC 3376,
> for more information check RFC 3376 sections 4.2.15 and 6.4.1.
> MLDv2 tests will be added by a separate patch-set.

Applied, thanks Nik!