Re: [PATCH v5 net-next 6/6] selftests: forwarding: add test of MAC-Auth Bypass to locked port tests
From: <hidden>
Date: 2022-09-20 21:30:04
Also in:
bridge, linux-arm-kernel, linux-kselftest, linux-mediatek, lkml
On 2022-09-12 11:08, Ido Schimmel wrote:
On Sun, Sep 11, 2022 at 11:23:55AM +0200, netdev@kapio-technology.com wrote:quoted
On 2022-09-11 02:13, Vladimir Oltean wrote:quoted
On Fri, Sep 09, 2022 at 03:11:56PM +0200, netdev@kapio-technology.com wrote:quoted
quoted
quoted
quoted
On Wed, Sep 07, 2022 at 11:10:07PM +0200, netdev@kapio-technology.com wrote:quoted
I am at the blackhole driver implementation now, as I suppose that the iproute2 command should work with the mv88e6xxx driver when adding blackhole entries (with a added selftest)? I decided to add the blackhole feature as new ops for drivers with functions blackhole_fdb_add() and blackhole_fdb_del(). Do you agree with that approach?I assume you are talking about extending 'dsa_switch_ops'?Yes, that is the idea.quoted
If so, it's up to the DSA maintainers to decide.What will be the usefulness of adding a blackhole FDB entry from user space?With the software bridge it could be used to signal a untrusted host in connection with a locked port entry attempt. I don't see so much use other that test purposes with the driver though.Not a huge selling point, to be honest. Can't the blackhole flag remain settable only in the device -> bridge direction, with user space just reading it?That is possible, but it would of course not make sense to have selftests of the feature as that would not work unless there is a driver with this capability (now just mv88e6xxx).The new "blackhole" flag requires changes in the bridge driver and without allowing user space to add such entries, the only way to test these changes is with mv88e6xxx which many of us do not have...
I am now building from new system (comp), and the kernel selftests are
not being installed correctly, so I haven't been able to run the
selftests yet.
I have made a blackhole selftest, which looks like this:
test_blackhole_fdb()
{
RET=0
check_blackhole_fdb_support || return 0
tcpdump_start $h2
$MZ $h1 -q -t udp -a $h1 -b $h2
tcpdump_stop
tcpdump_show | grep -q udp
check_err $? "test_blackhole_fdb: No packet seen on initial"
tcpdump_cleanup
bridge fdb add `mac_get $h2` dev br0 blackhole
bridge fdb show dev br0 | grep -q "blackhole"
check_err $? "test_blackhole_fdb: No blackhole FDB entry found"
tcpdump_start $h2
$MZ $h1 -q -t udp -a $h1 -b $h2
tcpdump_stop
tcpdump_show | grep -q udp
check_fail $? "test_blackhole_fdb: packet seen with blackhole
fdb entry"
tcpdump_cleanup
bridge fdb del `mac_get $h2` dev br0 blackhole
bridge fdb show dev br0 | grep -q "blackhole"
check_fail $? "test_blackhole_fdb: Blackhole FDB entry not
deleted"
tcpdump_start $h2
$MZ $h1 -q -t udp -a $h1 -b $h2
tcpdump_stop
tcpdump_show | grep -q udp
check_err $? "test_blackhole_fdb: No packet seen after removing
blackhole FDB entry"
tcpdump_cleanup
log_test "Blackhole FDB entry test"
}
the setup is simple and is the same as in bridge_sticky_fdb.sh.
Does the test look sound or is there obvious mistakes?