lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220422102257.rqy2zd6liqwu7y7x@skbuf>
Date:   Fri, 22 Apr 2022 13:22:57 +0300
From:   Vladimir Oltean <olteanv@...il.com>
To:     Vladimir Oltean <vladimir.oltean@....com>
Cc:     netdev@...r.kernel.org, Jakub Kicinski <kuba@...nel.org>,
        "David S. Miller" <davem@...emloft.net>,
        Paolo Abeni <pabeni@...hat.com>,
        Florian Fainelli <f.fainelli@...il.com>,
        Andrew Lunn <andrew@...n.ch>,
        Vivien Didelot <vivien.didelot@...il.com>,
        Claudiu Manoil <claudiu.manoil@....com>,
        Alexandre Belloni <alexandre.belloni@...tlin.com>,
        UNGLinuxDriver@...rochip.com,
        Tobias Waldekranz <tobias@...dekranz.com>,
        Mattias Forsblad <mattias.forsblad@...il.com>,
        Roopa Prabhu <roopa@...dia.com>,
        Nikolay Aleksandrov <razor@...ckwall.org>,
        Jiri Pirko <jiri@...dia.com>, Ido Schimmel <idosch@...dia.com>,
        Joachim Wiberg <troglobit@...il.com>,
        Marek BehĂșn <kabel@...nel.org>,
        Ansuel Smith <ansuelsmth@...il.com>,
        DENG Qingfang <dqfext@...il.com>,
        Kurt Kanzenbach <kurt@...utronix.de>
Subject: Re: [PATCH net-next 0/8] DSA selftests

On Fri, Apr 22, 2022 at 01:14:56PM +0300, Vladimir Oltean wrote:
> When working on complex new features or reworks it becomes increasingly
> difficult to ensure there aren't regressions being introduced, and
> therefore it would be nice if we could go over the functionality we
> already have and write some tests for it.
> 
> Verbally I know from Tobias Waldekranz that he has been working on some
> selftests for DSA, yet I have never seen them, so here I am adding some
> tests I have written which have been useful for me. The list is by no
> means complete (it only covers elementary functionality), but it's still
> good to have as a starting point. I also borrowed some refactoring
> changes from Joachim Wiberg that he submitted for his "net: bridge:
> forwarding of unknown IPv4/IPv6/MAC BUM traffic" series, but not the
> entirety of his selftests. I now think that his selftests have some
> overlap with bridge_vlan_unaware.sh and bridge_vlan_aware.sh and they
> should be more tightly integrated with each other - yet I didn't do that
> either :). Another issue I had with his selftests was that they jumped
> straight ahead to configure brport flags on br0 (a radical new idea
> still at RFC status) while we have bigger problems, and we don't have
> nearly enough coverage for the *existing* functionality.
> 
> One idea introduced here which I haven't seen before is the symlinking
> of relevant forwarding selftests to the selftests/drivers/net/<my-driver>/
> folder, plus a forwarding.config file. I think there's some value in
> having things structured this way, since the forwarding dir has so many
> selftests that aren't relevant to DSA that it is a bit difficult to find
> the ones that are.
> 
> While searching for applications that I could use for multicast testing
> (not my domain of interest/knowledge really), I found Joachim Wiberg's
> mtools, mcjoin and omping, and I tried them all with various degrees of
> success. In particular, I was going to use mcjoin, but I faced some
> issues getting IPv6 multicast traffic to work in a VRF, and I bothered
> David Ahern about it here:
> https://lore.kernel.org/netdev/97eaffb8-2125-834e-641f-c99c097b6ee2@gmail.com/t/
> It seems that the problem is that this application should use
> SO_BINDTODEVICE, yet it doesn't.
> 
> So I ended up patching the bare-bones mtools (msend, mreceive) forked by
> Joachim from the University of Virginia's Multimedia Networks Group to
> include IPv6 support, and to use SO_BINDTODEVICE. This is what I'm using
> now for IPv6.
> 
> Note that mausezahn doesn't appear to do a particularly good job of
> supporting IPv6 really, and I needed a program to emit the actual
> IP_ADD_MEMBERSHIP calls, for dev_mc_add(), so I could test RX filtering.
> Crafting the IGMP/MLD reports by hand doesn't really do the trick.
> While extremely bare-bones, the mreceive application now seems to do
> what I need it to.
> 
> Feedback appreciated, it is very likely that I could have done things in
> a better way.
> 
> Joachim Wiberg (2):
>   selftests: forwarding: add TCPDUMP_EXTRA_FLAGS to lib.sh
>   selftests: forwarding: multiple instances in tcpdump helper
> 
> Vladimir Oltean (6):
>   selftests: forwarding: add option to run tests with stable MAC
>     addresses
>   selftests: forwarding: add helpers for IP multicast group joins/leaves
>   selftests: forwarding: add helper for retrieving IPv6 link-local
>     address of interface
>   selftests: forwarding: add a no_forwarding.sh test
>   selftests: forwarding: add a test for local_termination.sh
>   selftests: drivers: dsa: add a subset of forwarding selftests
> 
>  .../drivers/net/dsa/bridge_locked_port.sh     |   1 +
>  .../selftests/drivers/net/dsa/bridge_mdb.sh   |   1 +
>  .../selftests/drivers/net/dsa/bridge_mld.sh   |   1 +
>  .../drivers/net/dsa/bridge_vlan_aware.sh      |   1 +
>  .../drivers/net/dsa/bridge_vlan_mcast.sh      |   1 +
>  .../drivers/net/dsa/bridge_vlan_unaware.sh    |   1 +
>  .../drivers/net/dsa/forwarding.config         |   2 +
>  .../testing/selftests/drivers/net/dsa/lib.sh  |   1 +
>  .../drivers/net/dsa/local_termination.sh      |   1 +
>  .../drivers/net/dsa/no_forwarding.sh          |   1 +
>  .../drivers/net/ocelot/tc_flower_chains.sh    |  24 +-
>  tools/testing/selftests/net/forwarding/lib.sh | 112 ++++++-
>  .../net/forwarding/local_termination.sh       | 299 ++++++++++++++++++
>  .../selftests/net/forwarding/no_forwarding.sh | 261 +++++++++++++++
>  14 files changed, 687 insertions(+), 20 deletions(-)
>  create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_locked_port.sh
>  create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_mdb.sh
>  create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_mld.sh
>  create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_vlan_aware.sh
>  create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_vlan_mcast.sh
>  create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_vlan_unaware.sh
>  create mode 100644 tools/testing/selftests/drivers/net/dsa/forwarding.config
>  create mode 120000 tools/testing/selftests/drivers/net/dsa/lib.sh
>  create mode 120000 tools/testing/selftests/drivers/net/dsa/local_termination.sh
>  create mode 120000 tools/testing/selftests/drivers/net/dsa/no_forwarding.sh
>  mode change 100644 => 100755 tools/testing/selftests/net/forwarding/lib.sh
>  create mode 100755 tools/testing/selftests/net/forwarding/local_termination.sh
>  create mode 100755 tools/testing/selftests/net/forwarding/no_forwarding.sh
> 
> -- 
> 2.25.1
> 

Sorry again, now I've really fixed all the places from which I could
have possibly copy-pasted Nikolay's dead NVIDIA email address.
It shouldn't happen again next time.

For those who consider replying, if you don't forget, maybe you can also
replace Nikolay's address in Cc: here to avoid getting a bounce-back
email from NVIDIA.

Sorry!

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ