# Check basic add, replace and delete behavior.
        bridge mdb add dev br0 port br0 grp $grp $state vid 10
-       bridge mdb show dev br0 vid 10 | grep -q "$grp"
+       bridge mdb get dev br0 grp $grp vid 10 &> /dev/null
        check_err $? "Failed to add $name host entry"
 
        bridge mdb replace dev br0 port br0 grp $grp $state vid 10 &> /dev/null
        check_fail $? "Managed to replace $name host entry"
 
        bridge mdb del dev br0 port br0 grp $grp $state vid 10
-       bridge mdb show dev br0 vid 10 | grep -q "$grp"
+       bridge mdb get dev br0 grp $grp vid 10 &> /dev/null
        check_fail $? "Failed to delete $name host entry"
 
        # Check error cases.
 
        # Check basic add, replace and delete behavior.
        bridge mdb add dev br0 port $swp1 $grp_key permanent vid 10
-       bridge mdb show dev br0 vid 10 | grep -q "$grp_key"
+       bridge mdb get dev br0 $grp_key vid 10 &> /dev/null
        check_err $? "Failed to add $name entry"
 
        bridge mdb replace dev br0 port $swp1 $grp_key permanent vid 10 \
        check_err $? "Failed to replace $name entry"
 
        bridge mdb del dev br0 port $swp1 $grp_key permanent vid 10
-       bridge mdb show dev br0 vid 10 | grep -q "$grp_key"
+       bridge mdb get dev br0 $grp_key vid 10 &> /dev/null
        check_fail $? "Failed to delete $name entry"
 
        # Check default protocol and replacement.
        bridge mdb add dev br0 port $swp1 $grp_key permanent vid 10
-       bridge -d mdb show dev br0 vid 10 | grep "$grp_key" | grep -q "static"
+       bridge -d mdb get dev br0 $grp_key vid 10 | grep -q "static"
        check_err $? "$name entry not added with default \"static\" protocol"
 
        bridge mdb replace dev br0 port $swp1 $grp_key permanent vid 10 \
                proto 123
-       bridge -d mdb show dev br0 vid 10 | grep "$grp_key" | grep -q "123"
+       bridge -d mdb get dev br0 $grp_key vid 10 | grep -q "123"
        check_err $? "Failed to replace protocol of $name entry"
        bridge mdb del dev br0 port $swp1 $grp_key permanent vid 10
 
        # Check behavior when VLAN is not specified.
        bridge mdb add dev br0 port $swp1 $grp_key permanent
-       bridge mdb show dev br0 vid 10 | grep -q "$grp_key"
+       bridge mdb get dev br0 $grp_key vid 10 &> /dev/null
        check_err $? "$name entry with VLAN 10 not added when VLAN was not specified"
-       bridge mdb show dev br0 vid 20 | grep -q "$grp_key"
+       bridge mdb get dev br0 $grp_key vid 20 &> /dev/null
        check_err $? "$name entry with VLAN 20 not added when VLAN was not specified"
 
        bridge mdb del dev br0 port $swp1 $grp_key permanent
-       bridge mdb show dev br0 vid 10 | grep -q "$grp_key"
+       bridge mdb get dev br0 $grp_key vid 10 &> /dev/null
        check_fail $? "$name entry with VLAN 10 not deleted when VLAN was not specified"
-       bridge mdb show dev br0 vid 20 | grep -q "$grp_key"
+       bridge mdb get dev br0 $grp_key vid 20 &> /dev/null
        check_fail $? "$name entry with VLAN 20 not deleted when VLAN was not specified"
 
        # Check behavior when bridge port is down.
        RET=0
 
        bridge mdb add dev br0 port $swp1 grp $grp vid 10
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q "exclude"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "exclude"
        check_err $? "Default filter mode is not \"exclude\""
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
 
        # Check basic add and delete behavior.
        bridge mdb add dev br0 port $swp1 grp $grp vid 10 filter_mode exclude \
                source_list $src1
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q -v "src"
+       bridge -d mdb get dev br0 grp $grp vid 10 &> /dev/null
        check_err $? "(*, G) entry not created"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q "src $src1"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 &> /dev/null
        check_err $? "(S, G) entry not created"
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q -v "src"
+       bridge -d mdb get dev br0 grp $grp vid 10 &> /dev/null
        check_fail $? "(*, G) entry not deleted"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q "src $src1"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 &> /dev/null
        check_fail $? "(S, G) entry not deleted"
 
        ## State (permanent / temp) tests.
        bridge mdb add dev br0 port $swp1 grp $grp permanent vid 10 \
                filter_mode exclude source_list $src1
 
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "permanent"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "permanent"
        check_err $? "(*, G) entry not added as \"permanent\" when should"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | \
                grep -q "permanent"
        check_err $? "(S, G) entry not added as \"permanent\" when should"
 
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q " 0.00"
+       bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q " 0.00"
        check_err $? "(*, G) \"permanent\" entry has a pending group timer"
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "\/0.00"
+       bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q "\/0.00"
        check_err $? "\"permanent\" source entry has a pending source timer"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
        bridge mdb add dev br0 port $swp1 grp $grp temp vid 10 \
                filter_mode exclude source_list $src1
 
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "temp"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "temp"
        check_err $? "(*, G) EXCLUDE entry not added as \"temp\" when should"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "temp"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "temp"
        check_err $? "(S, G) \"blocked\" entry not added as \"temp\" when should"
 
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q " 0.00"
+       bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q " 0.00"
        check_fail $? "(*, G) EXCLUDE entry does not have a pending group timer"
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "\/0.00"
+       bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q "\/0.00"
        check_err $? "\"blocked\" source entry has a pending source timer"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
        bridge mdb add dev br0 port $swp1 grp $grp temp vid 10 \
                filter_mode include source_list $src1
 
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "temp"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "temp"
        check_err $? "(*, G) INCLUDE entry not added as \"temp\" when should"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "temp"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "temp"
        check_err $? "(S, G) entry not added as \"temp\" when should"
 
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q " 0.00"
+       bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q " 0.00"
        check_err $? "(*, G) INCLUDE entry has a pending group timer"
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "\/0.00"
+       bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q "\/0.00"
        check_fail $? "Source entry does not have a pending source timer"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
        bridge mdb add dev br0 port $swp1 grp $grp temp vid 10 \
                filter_mode include source_list $src1
 
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q " 0.00"
+       bridge -d -s mdb get dev br0 grp $grp src $src1 vid 10 | grep -q " 0.00"
        check_err $? "(S, G) entry has a pending group timer"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
        bridge mdb add dev br0 port $swp1 grp $grp vid 10 \
                filter_mode include source_list $src1
 
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "include"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "include"
        check_err $? "(*, G) INCLUDE not added with \"include\" filter mode"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "blocked"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "blocked"
        check_fail $? "(S, G) entry marked as \"blocked\" when should not"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
        bridge mdb add dev br0 port $swp1 grp $grp vid 10 \
                filter_mode exclude source_list $src1
 
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "exclude"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "exclude"
        check_err $? "(*, G) EXCLUDE not added with \"exclude\" filter mode"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "blocked"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "blocked"
        check_err $? "(S, G) entry not marked as \"blocked\" when should"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
        bridge mdb add dev br0 port $swp1 grp $grp vid 10 \
                filter_mode exclude source_list $src1 proto zebra
 
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "zebra"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "zebra"
        check_err $? "(*, G) entry not added with \"zebra\" protocol"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "zebra"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "zebra"
        check_err $? "(S, G) entry not marked added with \"zebra\" protocol"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
 
        bridge mdb replace dev br0 port $swp1 grp $grp permanent vid 10 \
                filter_mode exclude source_list $src1
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "permanent"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "permanent"
        check_err $? "(*, G) entry not marked as \"permanent\" after replace"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "permanent"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "permanent"
        check_err $? "(S, G) entry not marked as \"permanent\" after replace"
 
        bridge mdb replace dev br0 port $swp1 grp $grp temp vid 10 \
                filter_mode exclude source_list $src1
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "temp"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "temp"
        check_err $? "(*, G) entry not marked as \"temp\" after replace"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "temp"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "temp"
        check_err $? "(S, G) entry not marked as \"temp\" after replace"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
 
        bridge mdb replace dev br0 port $swp1 grp $grp temp vid 10 \
                filter_mode include source_list $src1
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "include"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "include"
        check_err $? "(*, G) not marked with \"include\" filter mode after replace"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "blocked"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "blocked"
        check_fail $? "(S, G) marked as \"blocked\" after replace"
 
        bridge mdb replace dev br0 port $swp1 grp $grp temp vid 10 \
                filter_mode exclude source_list $src1
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "exclude"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "exclude"
        check_err $? "(*, G) not marked with \"exclude\" filter mode after replace"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "blocked"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "blocked"
        check_err $? "(S, G) not marked as \"blocked\" after replace"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
 
        bridge mdb replace dev br0 port $swp1 grp $grp temp vid 10 \
                filter_mode exclude source_list $src1,$src2,$src3
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q "src $src1"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 &> /dev/null
        check_err $? "(S, G) entry for source $src1 not created after replace"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q "src $src2"
+       bridge -d mdb get dev br0 grp $grp src $src2 vid 10 &> /dev/null
        check_err $? "(S, G) entry for source $src2 not created after replace"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q "src $src3"
+       bridge -d mdb get dev br0 grp $grp src $src3 vid 10 &> /dev/null
        check_err $? "(S, G) entry for source $src3 not created after replace"
 
        bridge mdb replace dev br0 port $swp1 grp $grp temp vid 10 \
                filter_mode exclude source_list $src1,$src3
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q "src $src1"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 &> /dev/null
        check_err $? "(S, G) entry for source $src1 not created after second replace"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q "src $src2"
+       bridge -d mdb get dev br0 grp $grp src $src2 vid 10 &> /dev/null
        check_fail $? "(S, G) entry for source $src2 created after second replace"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -q "src $src3"
+       bridge -d mdb get dev br0 grp $grp src $src3 vid 10 &> /dev/null
        check_err $? "(S, G) entry for source $src3 not created after second replace"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
 
        bridge mdb replace dev br0 port $swp1 grp $grp temp vid 10 \
                filter_mode exclude source_list $src1 proto bgp
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep -v "src" | \
-               grep -q "bgp"
+       bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "bgp"
        check_err $? "(*, G) protocol not changed to \"bgp\" after replace"
-       bridge -d mdb show dev br0 vid 10 | grep "$grp" | grep "src" | \
-               grep -q "bgp"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "bgp"
        check_err $? "(S, G) protocol not changed to \"bgp\" after replace"
 
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
        bridge mdb add dev br0 port $swp2 grp $grp vid 10 \
                filter_mode include source_list $src1
        bridge mdb add dev br0 port $swp1 grp $grp vid 10
-       bridge -d mdb show dev br0 vid 10 | grep "$swp1" | grep "$grp" | \
-               grep "$src1" | grep -q "added_by_star_ex"
+       bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep "$swp1" | \
+               grep -q "added_by_star_ex"
        check_err $? "\"added_by_star_ex\" entry not created after adding (*, G) entry"
        bridge mdb del dev br0 port $swp1 grp $grp vid 10
        bridge mdb del dev br0 port $swp2 grp $grp src $src1 vid 10
        RET=0
 
        bridge mdb add dev br0 port $swp1 $grp_key vid 10
-       bridge -d mdb show dev br0 vid 10 | grep "$grp_key" | grep -q "include"
+       bridge -d mdb get dev br0 $grp_key vid 10 | grep -q "include"
        check_err $? "Default filter mode is not \"include\""
        bridge mdb del dev br0 port $swp1 $grp_key vid 10
 
        # Check that entries can be added as both permanent and temp and that
        # group timer is set correctly.
        bridge mdb add dev br0 port $swp1 $grp_key permanent vid 10
-       bridge -d mdb show dev br0 vid 10 | grep "$grp_key" | \
-               grep -q "permanent"
+       bridge -d mdb get dev br0 $grp_key vid 10 | grep -q "permanent"
        check_err $? "Entry not added as \"permanent\" when should"
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp_key" | \
-               grep -q " 0.00"
+       bridge -d -s mdb get dev br0 $grp_key vid 10 | grep -q " 0.00"
        check_err $? "\"permanent\" entry has a pending group timer"
        bridge mdb del dev br0 port $swp1 $grp_key vid 10
 
        bridge mdb add dev br0 port $swp1 $grp_key temp vid 10
-       bridge -d mdb show dev br0 vid 10 | grep "$grp_key" | \
-               grep -q "temp"
+       bridge -d mdb get dev br0 $grp_key vid 10 | grep -q "temp"
        check_err $? "Entry not added as \"temp\" when should"
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp_key" | \
-               grep -q " 0.00"
+       bridge -d -s mdb get dev br0 $grp_key vid 10 | grep -q " 0.00"
        check_fail $? "\"temp\" entry has an unpending group timer"
        bridge mdb del dev br0 port $swp1 $grp_key vid 10
 
        # Check that we can replace available attributes.
        bridge mdb add dev br0 port $swp1 $grp_key vid 10 proto 123
        bridge mdb replace dev br0 port $swp1 $grp_key vid 10 proto 111
-       bridge -d mdb show dev br0 vid 10 | grep "$grp_key" | \
-               grep -q "111"
+       bridge -d mdb get dev br0 $grp_key vid 10 | grep -q "111"
        check_err $? "Failed to replace protocol"
 
        bridge mdb replace dev br0 port $swp1 $grp_key vid 10 permanent
-       bridge -d mdb show dev br0 vid 10 | grep "$grp_key" | \
-               grep -q "permanent"
+       bridge -d mdb get dev br0 $grp_key vid 10 | grep -q "permanent"
        check_err $? "Entry not marked as \"permanent\" after replace"
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp_key" | \
-               grep -q " 0.00"
+       bridge -d -s mdb get dev br0 $grp_key vid 10 | grep -q " 0.00"
        check_err $? "Entry has a pending group timer after replace"
 
        bridge mdb replace dev br0 port $swp1 $grp_key vid 10 temp
-       bridge -d mdb show dev br0 vid 10 | grep "$grp_key" | \
-               grep -q "temp"
+       bridge -d mdb get dev br0 $grp_key vid 10 | grep -q "temp"
        check_err $? "Entry not marked as \"temp\" after replace"
-       bridge -d -s mdb show dev br0 vid 10 | grep "$grp_key" | \
-               grep -q " 0.00"
+       bridge -d -s mdb get dev br0 $grp_key vid 10 | grep -q " 0.00"
        check_fail $? "Entry has an unpending group timer after replace"
        bridge mdb del dev br0 port $swp1 $grp_key vid 10
 
        # (*, G) ports need to be added to it.
        bridge mdb add dev br0 port $swp2 grp $grp vid 10
        bridge mdb add dev br0 port $swp1 $grp_key vid 10
-       bridge mdb show dev br0 vid 10 | grep "$grp_key" | grep $swp2 | \
+       bridge mdb get dev br0 $grp_key vid 10 | grep $swp2 | \
                grep -q "added_by_star_ex"
        check_err $? "\"added_by_star_ex\" entry not created after adding (S, G) entry"
        bridge mdb del dev br0 port $swp1 $grp_key vid 10
        $MZ $h1.10 -c 1 -a own -b 01:00:5e:01:01:01 -A 192.0.2.1 -B 239.1.1.1 \
                -t ip proto=2,p=$(igmpv3_is_in_get 239.1.1.1 192.0.2.2) -q
 
-       bridge -d mdb show dev br0 vid 10 | grep 239.1.1.1 | grep -q 192.0.2.2
+       bridge mdb get dev br0 grp 239.1.1.1 src 192.0.2.2 vid 10 &> /dev/null
        check_fail $? "Permanent entry affected by IGMP packet"
 
        # Replace the permanent entry with a temporary one and check that after
        $MZ $h1.10 -a own -b 01:00:5e:01:01:01 -c 1 -A 192.0.2.1 -B 239.1.1.1 \
                -t ip proto=2,p=$(igmpv3_is_in_get 239.1.1.1 192.0.2.2) -q
 
-       bridge -d mdb show dev br0 vid 10 | grep 239.1.1.1 | grep -v "src" | \
-               grep -q 192.0.2.2
+       bridge -d mdb get dev br0 grp 239.1.1.1 vid 10 | grep -q 192.0.2.2
        check_err $? "Source not add to source list"
 
-       bridge -d mdb show dev br0 vid 10 | grep 239.1.1.1 | \
-               grep -q "src 192.0.2.2"
+       bridge mdb get dev br0 grp 239.1.1.1 src 192.0.2.2 vid 10 &> /dev/null
        check_err $? "(S, G) entry not created for new source"
 
        bridge mdb del dev br0 port $swp1 grp 239.1.1.1 vid 10
        $MZ -6 $h1.10 -a own -b 33:33:00:00:00:01 -c 1 -A fe80::1 -B ff0e::1 \
                -t ip hop=1,next=0,p="$p" -q
 
-       bridge -d mdb show dev br0 vid 10 | grep ff0e::1 | \
-               grep -q 2001:db8:1::2
+       bridge mdb get dev br0 grp ff0e::1 src 2001:db8:1::2 vid 10 &> /dev/null
        check_fail $? "Permanent entry affected by MLD packet"
 
        # Replace the permanent entry with a temporary one and check that after
        $MZ -6 $h1.10 -a own -b 33:33:00:00:00:01 -c 1 -A fe80::1 -B ff0e::1 \
                -t ip hop=1,next=0,p="$p" -q
 
-       bridge -d mdb show dev br0 vid 10 | grep ff0e::1 | grep -v "src" | \
-               grep -q 2001:db8:1::2
+       bridge -d mdb get dev br0 grp ff0e::1 vid 10 | grep -q 2001:db8:1::2
        check_err $? "Source not add to source list"
 
-       bridge -d mdb show dev br0 vid 10 | grep ff0e::1 | \
-               grep -q "src 2001:db8:1::2"
+       bridge mdb get dev br0 grp ff0e::1 src 2001:db8:1::2 vid 10 &> /dev/null
        check_err $? "(S, G) entry not created for new source"
 
        bridge mdb del dev br0 port $swp1 grp ff0e::1 vid 10
        ctrl_mldv2_is_in_test
 }
 
-if ! bridge mdb help 2>&1 | grep -q "replace"; then
-       echo "SKIP: iproute2 too old, missing bridge mdb replace support"
+if ! bridge mdb help 2>&1 | grep -q "get"; then
+       echo "SKIP: iproute2 too old, missing bridge mdb get support"
        exit $ksft_skip
 fi