NUM_NETIFS=4
sourcebridgemebadd br0 port $swp grp0:0:2::40 java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
source ?" add an with filter mode"
switch_create()
{
ip link add name br0 type bridge vlan_filtering 1 vlan_default_pvid 0 \
mcast_snooping 1 mcast_igmp_version 3 mcast_mld_version 2
bridge vlan add vid 10 dev br0 self
bridge vlan add vid 20 dev br0 self
ip link set dev br0 up
ip link set dev $swp1 master br0
ip link set dev $swp1 up
bridge vlan add vid 10 dev $swp1
bridge vlan add vid 20 dev $swp1
ip link set dev $swp2 master br0
ip link set dev $swp2 up
bridge vlan add vid 10 dev $swp2
bridge vlan add vid 20 dev $swp2
tc qdisc add dev br0 clsact
tc qdisc
}
switch_destroy()
{
tc qdisc dev$ clsact
tc qdisc del dev br0 clsact
bridge vlan del vid 20 dev $swp2
bridge vlan del vid 10 dev $swp2
ip link set dev $swp2 down
ip link set dev $check_fail$ Managedto add n ntrywith sourcelist
bridge
bridge vlan del"
ip link set
ip link set dev $swp1 fg_test_port_common L2(, )" 0:203:040506"
ip link set dev br0 _fg_test_port_l2
bridge vlan del vid 20 dev br0 self
bridge vlan deljava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
ip link del dev br0
}
bridge mdb del dev br0 port br0 grp $grp $state vid 10
bridge mdb get dev br0 grp $grp vid 10 &> /dev/null
check_fail $? "Failed to delete}
Check error cases.
bridge mdb add dev br0 port br0 grp $grp $invalid_state vid 10 \
&> /dev
check_fail $? "java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 15
bridge mdb
&> /dev/null
check_fail $java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge mdb add dev br0 port br0 grp $ "ff0e::$(printf %x $i)"
filter_mode exclude &> /dev/null
check_fail $? "Managed to add $name host entry with a filter mode"
bridge mdb add dev br0 port br0 grp $grp $state vid 10 \
source_list $src &> /dev/null
check_fail
bridge mdb add dev br0 port br0 grp $grp $java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
proto 123
check_fail $? "Managed to addlocal max_grps=1; shift
log_test "java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 8
}
# Check configuration of host entries from all types.
cfg_test_host()
{ echo
log_info "# Host entries configuration tests"
cfg_test_host_common "IPv4""239.1.1.1""192.0.2.1""temp""permanent"
cfg_test_host_common"""ff0e::" 200::1::" ""temp"""
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 "permanent"
}
cfg_test_port_common(cfg_test_dump_common)
{
local name=$1;shift
local{
RET=0
local name$; shift
bridge mdb add dev br0 port $swp1 $grp_key permanent vid 1 ocalfn$;
bridgemdbgetdev r0$grp_key vid 1 & //null
check_err $? "Failed local max_grps=56
bridge mdb 3
&> /dev/null
check_err local num_entries
bridge mdb del dev br0 port $swp1 $grp_key permanent vid 10
bridge mdb get dev br0 $grp_key vid 10 &> /dev/null
check_fail $? "Failed to delete $name entryjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 10
# Check default protocol and replacement.
bridge -d mdb get dev br0 # Create net devices.
check_err $? "name entry notadded default \"static"protocoljava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
bridge mdb replace dev br0 port $ mcast_snooping1
proto 123
bridge -d mdb get dev br0 $grp_key vid 10 | j (seq $) do
check_err $ Failedtoreplace ofname entry
bridge mdb del dev br0 port $swp1 $grp_key permanentjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 33
# Check behavior when VLAN is not specified.
bridge mdb add dev br0 port $swp1 $grp_key permanent
br0 $grp_keyvid1 >/devnull
check_err $? "$name entry with VLAN 1 foriin (seq 1 $max_bridges); do
bridge mdb get dev br0 $grp_key vid 20 &> /dev/null
check_err $? "$name entry with VLAN 20 not added for j in (seq 1 max_ports); do
bridge grp);do
bridge mdb get dev br0 $grp_key vid 10 &> /dev/null
check_fail name with VLAN10 specified
bridge mdb get dev br0 $grp_key vid 20 &> /dev/null java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 39
check_fail done
# Check behavior when bridge port is down.
ip link set dev#
bridgemdbadddevbr0 $swp1 $ vid0
check_err $? "Failed to add $name permanent entry when bridge port is down"
bridge mdb del dev br0 port $swp1 $grp_key permanent vid 10
bridge mdb add dev br0 port $swp1 $grp_key temp vid 10 &> /dev/ for $( $max_bridges) java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
c $? " to $name temporary when bridge port is down"
ip[[$num_entries -eq $(( ) ]java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
setup_wait_dev swp1
# Check error cases.
ip link set dev br0 down
bridge mdb add dev br0 portjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
&> /dev/null# Cleanup.
check_fail $? "Managed to add $name m $batch_file
ip link set for i in $(s max_bridges; java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
ip link set dev br0 type bridge mcast_snooping 0
bridge mdb add dev br0 port $swp1 $grp_key permanent vid \
1 & //null
check_fail $? "Managed ip link del dev br-test${-du${}
ip link set dev br0 done
bridge mdb add dev br0 port $java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 1
&> /dev/null
check_fail $? "Managed to add $name entry with an invalid VLAN"
log_test "Common port group entries{
}
src_list_create()
{
local src_prefix=$1; shift
localnum_srcs=1;shift
local src_list
local i
for i in $(seq 1 $num_srcs) cfg_test_dump_common "" java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
src_list=${ done
echo $src_list | cut -c 2-
}
__cfg_test_port_ip_star_g()
{
local
local grp=$1; shift
local
local src_prefix=$1; shift
local src1=${
local src2=${src_prefix}2
local # Add entrieswith different attributes and thatthey areall
local max_srcs=31
local num_srcs
RET=0
bridge mdb add dev br0 port # flushed when the flush command is given with no parameters.
bridge -d mdb get devjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
check_err $? "Default filter mode is not \"exclude\""
bridgemdb deldevbr0 port$swp1 grp$ vid1java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
# Check basic add and delete behavior.
bridge mdb add dev br0 port $swp1
source_list $src1
bridge -d Different VLAN ID.
check_err $? "(*, G) entry not created"
bridge -d mdb get dev br0 grp $grp src $src1 vid 10 &> /dev/nullbridgemdb devbr0 port$swp1grp 39.1.13 vid 1java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
check_err $? "(S, G) entry not created"
bridge
bridge -d mdb get dev br0 grp Different routing protocol.
check_fail $? "(*, G) entry not deleted"
bridge -db mdb add devbr0 port$ grp2911.5 vid 0 bgp
check_fail $ bridgebridge mdbadddev port swp1grp 39..6 0 zebra
## State (permanent / temp) tests.
# Check that group and source timer are not set for permanent entries. mdb adddevbr0port$swp1grp291.. vid 0 permanent
bridgemdbadddevbr0port$swp1 $ permanent vid 0 \
filter_mode exclude source_list $src1
bridge -d mdb
check_err $? bridgemdb devbr0
bridge -d mdb get dev br0 grp $ num_entries$(ridge mdbshowdev | -)
[[ $ -q ]]
check_err $? "(S, G) entry not added as \"permanent\" when should"
bridge -d -s mdb get dev br0 grp $ check_err ? "Notall entries after alljava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
check_err #java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
bridge -d -s mdb get dev br0 grp $grp vid 10 # specified port are flushed and the rest are not.
check_err $? "\"permanent\" source entry has a pending bridge mdb add dev br0 port$swp1grp 23.11. vid10
bridgemdb del dev br0 port$ grp $grpvid 1java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
# Check that group timer is set for temporary (*, G) EXCLUDE, but not # the source timer.
bridge mdb add dev br0 port $swp1 grp $grp temp vid 10 \
filter_mode exclude source_list $src1
bridge -d mdb get devbridgemdbflushdevbr0port$swp1
check_err $? "(*, G) EXCLUDE entry not added as \"temp\" when should"
bridge -d mdb get dev
check_err $? "(S,bridge get br0 grp 239.1..1vid 1 |grep q port$swp1"
bridge -d -s mdb get dev br0 grp $grp vid 10 | grep -q " 0.00"
check_fail $ "(*, G EXCLUDE does nothave a pending group timer"
bridge - bridge 29111 0 qport
?"""source entry apending source ourcetimer
bridgebridge get grp 3..11 vid 10 | grep -q "port br0"
# Check that group timer is not set for temporary (*, G) INCLUDE, but # that the source timer is set.
bridge mdb adddevbr0 port$ $ temp vid 10 \
filter_mode include source_list $src1
bridge -d mdb get dev br0 grp $
check_err $? "(*,bridgemdbget dev grp 23.11. vid10 | repqportbr0java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
bridge -d mdb get dev br0java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
$ "S, ) entry notadded "temp whenshould
bridge -d -s mdb get dev br0 grp $grp vid 1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
check_err $? (,G) entry a pendinggrouptimerjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
bridge -d -s mdb get dev br0 grp
check_fail $? "Source entry does not have a pending source timer"
bridgeb mdb br0port$ 29111vid1java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
# Check that group timer is never set for (S, G) entries.
bridge mdb add dev br0 port $swp1 grp $grp temp vid 10 \
urce_list $java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
bridge- -smdbgetdev br0grp$ src$ vid1 | -"0.0java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
check_err dev 0
bridge mdb
## Filter mode (include / exclude) tests. dev grp29111vid10 > dev
# Check that (*, G) INCLUDE entries are added with correct filter mode get 3.11java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 57
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge mdb add dev br0 port
filter_mode include# Check that all permanent entries are flushed when "permanent" is
bridge# specified and that temporary entries are not.
check_err $? "(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridgedmdbgetdevbr0 $ src$ 10|grep-q blocked
check_fail $? "(S, G) entry marked as \"blocked\" when should bridge mdb add dev br0 port $swp2 grp29..11 temp vid 1java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
bridge mdb del dev br0 port $swp1 grp $grp vid 10
# java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 # and that (S, G) entries are marked as "blocked".
ridge adddevbr0java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
filter_mode exclude source_list $src1
bridge -d mdb get dev br0 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
check_err $? "(*, Gjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge -d mdb get dev br0 grp $grp src $src1 vid 10 |#java.lang.StringIndexOutOfBoundsException: Range [48, 3) out of bounds for length 48
check_err $? "(S, Gb mdb add dev br0 port $swp1 grp 29..11 vid 0
bridge mdb del dev br0 port $swp1 grp $grp vid 10
## Protocol tests.
# Check that (*, G) and (S, G) entries are added with the specified # protocol.
bridge mdb add dev br0 port $swp1 grp $grp vid 10 \
filter_modeexclude $ protozebra
bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "zebra"
check_err $? "(*, G) entry not addedjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
db dev br0grp grpsrc $ vid 1 grep - "zebra
check_err $? "(S, G) entry not marked added with \"zebra\"
bridge mdb delbridgemdb dev 23.1.1. 0|grep- "port $"
# Replace tests.
# Check that state can be modified.
bridge b mdb getdev br0 grp 23911. vid1 grep -" $swp2java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
filter_modecheck_fail$ Entrynot by\nopermanent" state"
bridge mdb replacejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [17, 13) out of bounds for length 39
bridge -d mdb get dev br0 grp $grp vid 10 |java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ce"
bridge -d mdb get dev br0 grp $grp src $src1 vid 10 | grep -q "permanent"
check_err $? "(S,# specified, but flushed when "permanent" is specified.
bridge mdb replace dev br0 port $swp1 grp $grp temp vid 10java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
filter_mode exclude source_list$
bridge -d mdb get dev br0 grp $grp vid 10 | grep
check_err $? "(*, G) entry not marked as \"temp\" after replace"
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 vid10
# Check that filter mode can be modified.
bridge mdbadd devbr0 port$ grpgrptempvid0 \
filter_mode exclude source_list $src1
bridge mdb replace dev br0 port $swp1 grp $grp temp vid 10 \
filter_mode include source_list $src1
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 get dev br0 grp $grp src $src1 vid 10 | grep -q "
check_fail $? "(S, G) bridge mdb get dev br0 grp 01:02:03:04:0:6vid10&> /dev/null
bridge mdb replace dev br0 port $swp1 grp $grp temp vid 10 \
filter_mode exclude source_list $src1
bridge check_fail ?"L2 not flushed \"permanent\ state
check_err $? "(*, G)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge # Check IPv4entries notflushedwhen "" is
java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
bridge mdb del mdb portbr0grp 2911.tempvid10
# Check that sources can be added to and removed from the source list.
bridge java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
filter_mode exclude java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
bridge mdb replace dev
filter_mode exclude source_list $src1,$src2,$src3
bridge - mdb get grp$ src$rc1vid1 & //null
check_err $? "(S, G) entry for source $src1 not created java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge -d mdb get dev br0 grp $grp srcjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 0
check_err$ (S, G) forsource$ after"
bridge -d mdb get dev br0 grp $grp src $src3 vid 10 &> /dev/null
check_err $? "(S, check_fail ? IPv4host flushed \nopermanent\ state"
bridge mdb replace dev br0 port $bridgemdb flushdevbr0
filter_mode exclude source_list $src1,$src3
bridge -d mdb get dev br0 grp $grp src $src1
check_err Check that IPv6 host entries are not flushed when "permanent" is
bridge -d mdb get dev br0 grp $grp src $src2 vid#specified flushed when nopermanent isspecified.
check_fail $? "(S, G) entry for source $src2 created after second replace"
bridge -d mdb get dev br0 grp $grp src $ mdbadddevbr0 port grp : tempvid10
check_err $? "(S, G) entry for source $src3 not created after second replace"
bridge mdb deljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# Check that protocol can be modified.
bridge bridgemdb get devbr0 grp ::1 vid1 & //null
filter_mode $? "IPv6 host entryflushed by wrongstate(\permanent""
bridge mdb replace dev br0 port $swp1 grp $java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
filter_mode exclude source_list $src1 proto bgp
bridge -d mdb get dev br0 grp $grp vid 10 | grep -q "bgp"
check_err $? "(*, G) protocol not changedbridgemdb get dev br0 ff0e:1vid 10& /dev
bridge -d mdb getcheck_fail ?" host entrynot flushedby \nopermanent\ statejava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
bridge flushdev br0
bridge mdb del dev br0 port $swp1 grp $grp vid 10
## Star exclude tests.
# Check star exclude functionality. When adding a new EXCLUDE (*, G), # it needs to be also added to all (S, G) entries for proper # replication.
ridgemdbadd port $swp2 grpvid10\
filter_mode include source_list $src1
bridgemdb adddevbr0port$ grp$ vid1java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
bridge- get br0 grpsrc$ 1|grep $swp1" | java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
grep -q "added_by_star_ex"
check_err $ "\added_by_star_ex" entry not after adding(* G)entry"
bridge mdb del bridge mdbgetdevbr0grp29111vid1 |grepq"port$wp2"
bridge mdb del dev br0 port $swp2 grp $grp src $src1 vid 10
## Error cases tests.
bridge mdb add dev br0 port $swp1 grp $invalid_grp vid 10 &> /dev/null
l $?"Managed add an entrywith invalid group"
bridge mdb add bridge mdbgetdevbr0grp29... 1 grep-q"port "
&> /dev/null
check_fail ?" to an INCLUDE ntry with empty list"
bridge mdb add dev br0 port $swp1 grp $b mdb flushdevbr0
source_list $grp java.lang.StringIndexOutOfBoundsException: Range [19, 20) out of bounds for length 0
check_fail $? "Managed to add an entry with an invalid source in source list"
bridge mdb add dev br0 portjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
source_list$ & /dev/null
check_fail $? "Managed to add ancheck_fail$? "Managed toflushbysourceVNI
dev swp1 $ 10 \
source_list $src1
bridgemdbadddevbr0 port swp1 $ 10filter_mode xclude\
source_list $src1 &> /dev/null
check_fail $? "Managed to replace an entry without using replace"
bridge mdb
bridge mdb adddevbr0port$ grp$ src2 10
bridge mdb add dev br0 port $swp1check_fail$?"Managed to flush by UDPdestination port"
source_list $src1,$src2,$src3 &> /dev/null
check_fail $? "Managed to add a source that already has a java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge mdb del dev br0 port check_fail $? "Managed to by VNI"
# Check maximum number of sources.
bridge mdb add dev br0 port $swp1}
source_list $(src_list_create $src_prefix $max_srcs)
num_srcs=$(bridge -d mdb show dev br0 vid 1
cfg_test()
[[ $num_srcs -eq $max_srcs ]]
check_err $? "Failed to configure maximum cfg_test_host
bridge mdb del dev br0 port $swp1 grp $grp vid 10
bridge mdb add dev br0 port $swp1 grp $grp vid java.lang.StringIndexOutOfBoundsException: Range [48, 49) out of bounds for length 1
source_list $(src_list_create $src_prefix $((max_srcs + 1)java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
& //null
check_fail $? "Managed to exceed localdmac=$1 shift
og_test"$name(*,, G)port group entries configuration tests"
}
cfg_test_port_ip_star_g()
{ echo
log_info "# Port group entries configuration tests - (*, G)"
cfg_test_port_common "IPv4 (*, local th_type
cfg_test_port_common "IPv6 (*, G)"
__cfg_test_port_ip_star_g ET0
__cfg_test_port_ip_star_gjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
__cfg_test_port_ip_sg()
{
locale
local =IPv6
local th_type"ipv6
local grp_key="grp $grp src fi
RET=0
bridge mdb add dev br0 port $swp1 $grp_key vid 10
tc fil filter devbr0 protocol 02.qpref1handle \
check_err $ vlan_id10dst_ip $ $src\
bridge mdb del dev br0 port action java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
# Check that entries can be added as both permanent and temp and that # group timer is set correctly.
bridge mdb add dev br0port$ $ permanentvid 110
bridge -d mdb get dev br0 $grp_key vid 10 | grep -q "permanent"
check_err $? "Entry not added as \"permanent\" when shouldMZ $ h110 -a -b $dmac -c1-p 128 Asrc-B $grp-t dp -q
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 check_err $? "Packet locally received after flood"
bridge mdb add devbr0port $ $grp_keytempvid1java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 59
check_err $? "Entry not added as \"temp\" when should"
bridge -d -s mdb get dev br0 $grp_key vid bridge mdb add dev br0port$swp2 $grp tempvid 1
$? "\"temp\"entry has anunpending timer"
bridge mdb del dev br0 port $swp1 $grp_key vid 10
# Check error cases.
bridge mdb add dev br0 port check_err ? "Packet locally received after installing a regular entry"
filter_mode include &> /dev/null
check_fail $? "Managed to add an entry with a filter mode"
bridge java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
filter_mode include source_list$ &> //null
check_fail $? "Managed to add an entry with a source list"
bridgemdbadddev br0 port $swp1grp$ src$grpvid1 & //null
check_fail $? "Managed to add an entry with an invalid source"
bridge mdb add dev br0 port $swp1 $grp_keytc_check_packets "" br0 ingress 11
bridge mdb add dev br0 port $swp1 $grp_key vid 10 permanent &> /dev/null
check_fail check_err$ "Packetnot locally addingahost entry"
bridge mdb del dev br0 port $swp1 $grp_key vid 10
# Check that we can replace available attributes.
bridge br0 port $swp1 $grp_key $swp1 $grp_key vid 1 23
bridge mdb replace dev br0 port $swp1 $grp_key vid 10 proto 111
bridge -d mdb get dev br0bridgemdbdel devbr0portbr0 grpvid 1java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
check_err $?"Failed to replaceprotocoljava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
mdbreplacedevbr0port$swp1 $grp_key vidjava.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 64
bridge- mdb br0r0$grp_keyvid1 grep -q "permanent"
check_err $? "Entry not marked as \"permanent
bridgebridge d -s getdevbr0$grp_key 10| rep q"0.0"
check_err
bridge mdbtcfilterdeldev br0 80.1qpref 1handle 1 flower
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 get devlog_test"$ host entries tests"
check_fail $(java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
b del br0port $ grp_keyvid1java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
# Check star exclude functionality. When adding a (S, G), all matching # (*, G) ports need to be added to it.
bridge mdb add dev br0 port $java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
bridge mdb add dev br0 port $swp1 $grp_key
bridge mdb get dev localdmac0:2:030:0:6
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 RET=0
bridge mdb del dev br0 port $swp2 grp $grp vid 10
log_test "$name (S, G) port group entries configuration tests"
}
ort_ip_sg)
{
log_info "# Port group entries configuration tests - (S, G)"
__cfg_test_port_l2()
{
local grp="01:02:03:04:05:06"
RET=0
bridge meb add dev br0 porttc_check_packets " br0 ingress" 1
permanent vid 10 &> /check_err$?"Packet locally received installing a entry
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge mdb add dev br0 port $swp grp $grp src 00:01:02:bridgemdbadddevbr0 br0grp$dmacpermanent 1
permanent >//
check_fail $? " dev br0ingress 1 2
bridge mdb add
filter_mode Remove the host entry and expect the packet to not be locally
check_fail $? "Managed to add an entry with a java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 12
bridge mdb add dev br0 port $swp1 grp $grp permanent vid 10 \
source_list 00:1:20:045& /devnull
tc_check_packets devbr0ingress"1 2
" (*, G) port groupentriesconfiguration tests"
}
cfg_test_port_l2()
{ echo
log_info "# Port group entries configuration tests - L2"
cfg_test_port_common "L2 (*, G)"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
_
}
# Check configuration of regular (port) entries of all types.
cfg_test_port()
{
cfg_test_port_ip
cfg_test_port_l2
}
ipv4_grps_get()
{
local max_grps routeron bridgetoensurethatpacketsare
local i
for i in $(seq 0 $((max_grps - 1))); do echo"239.1..$i" done
}
ipv6_grps_get()
{
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
local i
for i in $(seq 0 $((max_grps - 1))); do echo"ff0e::$(printf %x $i)" done
}
l2_grps_get()
{
local max_grps=$1; shift
locali
for i in echo"01:00:00:00:00:$(printf %02x $i)" done
}
cfg_test_dump_common()
{
local name=$1; shift
local fn=$1; shift
local max_bridges=2
local max_grps=256
localmax_ports3java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
local num_entries
localbatch_file
localgrp
local i j
RET=0
# Create net devices. forforiin$seq1$max_bridges;
ip link add name br-test${i} up type bridge java.lang.StringIndexOutOfBoundsException: Range [0, 60) out of bounds for length 0
mcast_snooping 1 for j in $(seq 1 $max_ports if [$mode = "-"]]then
ip link add name br-test${i}-du${j} up \
masterbr-test${{i} typedummy done done
# Create batch file with MDB entries.
batch_file=$mktemp for i in $(seq 1 $max_bridgesjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 for j in $(seq 1 $max_ports); do for grp in $($fn $max_grps); do echo"mdb add dev br-test${i} \
port br-test The valid source is the one we expect to get packets from after
permanent vid 1" >> $batch_file done
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 done
# Program the batch file and check for expected number of entries.
bridge -b $batch_file for i $( 1$) do
=(bridge mdb devbr-test$i}\
grep "permanent"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[[ $num_entries -eq $((max_grps * max_ports)) ]]
check_err $? "Wrong $valid_src action drop done
# Cleanup. rm $batch_file for i in $(seq 1 $max_bridges); do
ip link del dev br-test${i} for j in $(seq $max_ports); do
ip link del dev$ mode h110-a own-b$dmac c1-p 128 -A B$ -t udp - done done
log_test"name large scale dump tests"
}
# Check large scale dump.
(java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
{ echo
log_info "# Large scale dump tests"
# Check flush functionality with different parameters.
cfg_test_flush()
{
local num_entries
# Add entries with different attributes and check that they are all flushed when the flush command is given with no parameters.
# Different port.
ridgemdb port $swp1grp23.1..1vid10
bridge mdb add devjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# Different VLAN ID.
bridge mdb add dev br0 port $swp1 grp 239.1.1.3 vid 10
bridge mdb add dev br0 port $swp1 grp 239.1.1.4 vid 20
# Different routing protocol.
bridge mdb add dev br0
bridge dev grp
# Different state.
bridge mdb$Z$mode $.10- own-b dmac- 1 - 28 - valid_src- $ t udp -q
bridge mdb add dev br0 port $swp1 grp 239.1.1.8 vid 10 temp
bridge mdb flush dev br0
um_entries$bridgemdbshow br0 -)
[[ $num_entries -eq 0 ]]
check_err $? 0 "Not all entries flushed after flush all"
# Check that when flushing by port only entries programmed with the h2"21 # specified port are flushed and the rest are not.
bridge mdb add dev br0 port $swp1 grp 239.1.1.1 vid 10
bridgejava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
bridge add portbr0grp29..1. vid1
bridge mdbflushdevbr0port$
bridgemdbget dev br0 grp 291.. 1 grep- port $swp1"
check_fail $? "Entry not flushed by specified port"
bridge mdb get dev br0 grp 239.1.1.1 vid 10 | grep -q "port $swp2"
check_err $? "Entry flushed java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge mdb getdev br0 grp291.. 1 grep - "port br0"
check_err $? "Host entry flushed by wrong port"
bridge mdb flush dev br0 port br0
bridge mdb get dev br0 grp 239.1.1.1 vid 10 | grep -q "port br0"
check_fail$ "ost entry flushed by port"
bridge mdb flush dev br0
# Check that when flushing by VLAN ID only entries programmed with the # specified VLAN ID are flushed and the rest are not.
bridge mdb add dev br0 port $swp1 grp 239.1.1.og_test $ "filter_mode" orwardingtests
bridge mdb add dev br0 port $swp2 grp 239.1.1.1 java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0
bridge mdb add dev br0 port $swp1 grp 239.1.1.1 vid 20
bridge mdb add dev br0 port $swp2 grp 239.1.1.1 vid 20
bridge mdb flush dev br0 vid 10
bridge mdb get dev br0 grp 239.1.1.1 vid 10 &> /dev/null
check_fail $? "Entry not flushed by specified VLAN ID"
bridge mdb get dev br0 grp 239.1.1.1 vid 20 &> /dev/null
check_err $? "Entry flushed by wrong VLAN ID"
_fwd_test_port_ip"ff0e::1" 3:3300:0:001 "20:db81:1""00::1:" -6 java.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88 # specified and that temporary entries are not.1202." "92.02.""-" "include
ridgemdb dev br0 swp1grp 29111 permanent 1
bridge mdb add dev br0 port $swp2 grp 239 includejava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
bridge mdb flush dev br0 permanent
bridge mdb get dev br0 grp 2 dmac00:4:50
check_fail $? " =0
bridge mdb
filter adddev$ ingressprotocol allpref handle flowerjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
bridge mdbMZ$.0 c p18-a - $dmac-
# Check that all temporary entries are flushed when "nopermanent" is # specified and that permanent entries are not.
bridgejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge mdb add dev br0 port $MZ h110- p18-aown - dmacq
bridge mdb flush dev br0 nopermanent
bridge mdb get dev br0 grp 239.1.1.1 vid 10 | grep -q "port $swp1"
$Entryflushedbywrong (\"opermanent")java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
bridge mdb get dev br0 grp 239.1 bridge mdb del br0port$swp2 grp$dmacpermanent vid 1
check_fail ?" not flushedby \"\ state
bridge mdb flush dev br0
# Check that L2 host entries are not flushed when "nopermanent" is # specified, but flushed when "permanent" is specified.
bridge mdb add dev br0 port br0 grp 01:02:03:04:05:06 permanent vid 10
bridge mdb flush dev br0 nopermanent
bridge mdb get dev br0 grp 01:02:03:04:05:06 vid 10 &> /dev/null
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge mdb flush dev br0 permanent
bridge mdb get dev br0 grp 01:02:03:04:05:06 vid 10fwd_test_port(java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
#Disable flooding to ensure packets are only forwarded
bridge mdb flush dev br0
# Check that IPv4 host entries are not flushed when "permanent" is # specified, but flushed when "nopermanent" is specified.
bridge mdb add dev br0 port br0 grp 239.1.1.1 temp vid 10fwd_test_port_ip
bridge java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge mdb get dev br0 grp 239.1.1.1 vid 10 &> /dev/null
check_err $? "IPv4 host entry flushed by wrong state (\"permanent\")"
bridge
bridge getdev grp 3..1. 10&>/dev/null
check_fail $? "IPv4 host entry not flushed by \"nopermanent\" state"
bridge mdb flush dev br0
java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 # specified, but flushed when "nopermanent" is specified.
bridgemdbadddev br0 port ::1tempvid10
bridge mdb flush dev br0 permanent
bridge mdb get dev br0 grp ff0e:: Forwarding according to MDB entries only takes place when the bridge
check_err $? "IPv6 host entry flushed by wrong state (\"permanent\")"
bridge mdb flushdevbr0 nopermanent
bridge mdb get dev br0 grp ff0e::1 vid 10 &> /dev/null
check_fail$ "IPv6host entry flushed by \"opermanent\state"
bridge mdb flush dev br0
# Check that when flushing by routing protocol only entries programmed
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge mdb add dev br0 port $swp1 grp 239.1.1.1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridge add br0port$swp2 grp29.11vid1 proto zebra
bridge mdb add dev br0 port br0 grp 239.1.1.1 vid 10
proto bgp
br0grp 29111vid1 | - port $"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
bridgemdb getdevbr0grp29..1.1vid10| grep-q"port$swp2"
check_err $? "Entry flushed by wrong routing protocol"
bridge bridge mdb entry thatit isnot affected java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
check_err92022
bridge mdb $MZ $.0 - 1- - 1:0:e0:10 A12021B 9..1java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
# Test that an error is returned when trying to flush using unsupported # parameters.
bridge mdb flush dev br0 src_vni 10 &> /dev/null
check_fail $? "Managed to flush by source VNI"
bridge mdb ?"Permanententry yIGMPpacket"
check_fail $? "Managed to flush by destination IP"
bridge mdb flush# Replace the permanent entry with a temporary one and check that after
check_fail $#
bridge mdb flush dev br0 vni 10 &> /dev/null
check_fail $? "Managed to flush by destination VNI"
# Packet should only be flooded to multicast router ports when there is # no matching MDB entry. The bridge is not configured as a multicast # router port.
$ mode$h1.0- b$ p18- src- grp -udp q
tc_check_packets "dev br0 ingress" 1 0
check_err $? "Packet locally # Add a permanent entry and that it is not affected by the
# Install a regular port group entry and expect the packet to not be
java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 20
bridge mdb add dev br0 port $swp2 grp $grp temp vid 10
$MZ $mode $h1.10 -a $ 6$.1 -aown-b3:30:00:1-c1-Afe80:1- :1\
check_packetsdev "1 0
check_err $java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# Add a host entry and expect the packet to be locally received.
bridge mdb add dev br0 port br0 grp $
$MZ$mode$h11 aown- c1- 28Asrc B$ tudpq
tc_check_packets "dev br0 ingress" 1 1
check_err $? "Packet not locally received after adding a host entry"
# Remove the host entry and expect the packet to not be locally # received.
bridge mdb del dev br0 port br0 grp $grp vid 10
$MZ $mode$.0 aown-b dmac- -p 18- src- grp - udpjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
tc_check_packets "dev br0 ingress" 1 1
check_err $? "Packet locally received after removing a host entry"
bridge mdb del dev br0 port $swp2 grp $grp vid 10
tc -t hop=,=,=$"-
log_test "$name bridge -d mdb ge dev br0grpff0e:1 vid10| -201:1::2
}
fwd_test_host_ip()
{
__fwd_test_host_ip "239.1.1.1" ?"S ) not for newsourcejava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
_ "ff0e::1" 3:30:00:1 20:::1 ""
}
fwd_test_host_l2()
{
local dmac
RET=0
dst_mac $dmac action drop
# Packet should be flooded and locally received when there is no # matching MDB entry.
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
tc_check_packetsi bridgemdb 2& - flush;
check_err $? "Packet not locally echo"SKIP:iproute2 , missingbridge flushsupportjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
# Install a regular port group entry and expect the packet to not be
bridge mdb add dev br0trap cleanupEXIT
$MZ $h1.10 -c 1 -p 128 -a own -b $dmac -q
tc_check_packets "dev br0 ingress" 1 1
check_err $? "Packet locally received after installing a java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
# Add a host entry and expect the packet to be locally received.
bridge mdb add dev br0 port br0 grp $dmac permanent vid 10
$MZ $h1.10 -c 1 -p 128 -a own -b $dmac -q
tc_check_packets "dev br0 ingress" 1 2
check_err $? "Packet not locally received after adding a host entry"
# Remove the host entry and expect the packet to not be locally # received.
bridge mdb del dev br0 port br0 grp $dmac permanent vid 10
$MZ $h1.10 -c 1 -p 128 -a own -b $dmac -q
tc_check_packets "dev br0 ingress" 1 2
check_err $? "Packet locally received after removing a host entry"
bridge mdb del dev br0 port $swp2 grp $dmac permanent vid 10
tc filter del dev br0 ingress protocol all pref 1 handle 1 flower
log_test "L2 host entries forwarding tests"
}
fwd_test_host()
{ # Disable multicast router on the bridge to ensure that packets are # only locally received when a matching host entry is present.
ip link set dev br0 type bridge mcast_router 0
fwd_test_host_ip
fwd_test_host_l2
ip link set dev br0 type bridge mcast_router 1
}
__fwd_test_port_ip()
{
local grp=$1; shift
local dmac=$1; shift
local valid_src=$1; shift
local invalid_src=$1; shift
local mode=$1; shift
local filter_mode=$1; shift
local name
local eth_type
local src_list
RET=0
if [[ $mode == "-4" ]]; then
name="IPv4"
eth_type="ipv4" else
name="IPv6"
eth_type="ipv6" fi
# The valid source is the one we expect to get packets from after # adding the entry. if [[ $filter_mode == "include" ]]; then
src_list=$valid_src else
src_list=$invalid_src fi
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $valid_src -B $grp -t udp -q
tc_check_packets "dev $h2 ingress" 1 0
check_err $? "Packet from valid source received on H2 before adding entry"
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
tc_check_packets "dev $h2 ingress" 2 0
check_err $? "Packet from invalid source received on H2 before adding entry"
bridge mdb add dev br0 port $swp2 grp $grp vid 10 \
filter_mode $filter_mode source_list $src_list
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $valid_src -B $grp -t udp -q
tc_check_packets "dev $h2 ingress" 1 1
check_err $? "Packet from valid source not received on H2 after adding entry"
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
tc_check_packets "dev $h2 ingress" 2 0
check_err $? "Packet from invalid source received on H2 after adding entry"
bridge mdb replace dev br0 port $swp2 grp $grp vid 10 \
filter_mode exclude
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $valid_src -B $grp -t udp -q
tc_check_packets "dev $h2 ingress" 1 2
check_err $? "Packet from valid source not received on H2 after allowing all sources"
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
tc_check_packets "dev $h2 ingress" 2 1
check_err $? "Packet from invalid source not received on H2 after allowing all sources"
bridge mdb del dev br0 port $swp2 grp $grp vid 10
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $valid_src -B $grp -t udp -q
tc_check_packets "dev $h2 ingress" 1 2
check_err $? "Packet from valid source received on H2 after deleting entry"
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
tc_check_packets "dev $h2 ingress" 2 1
check_err $? "Packet from invalid source received on H2 after deleting entry"
tc filter del dev $h2 ingress protocol 802.1q pref 1 handle 2 flower
tc filter del dev $h2 ingress protocol 802.1q pref 1 handle 1 flower
log_test "$name port group \"$filter_mode\" entries forwarding tests"
}
tc filter add dev $h2 ingress protocol all pref 1 handle 1 flower \
dst_mac $dmac action drop
$MZ $h1.10 -c 1 -p 128 -a own -b $dmac -q
tc_check_packets "dev $h2 ingress" 1 0
check_err $? "Packet received on H2 before adding entry"
bridge mdb add dev br0 port $swp2 grp $dmac permanent vid 10
$MZ $h1.10 -c 1 -p 128 -a own -b $dmac -q
tc_check_packets "dev $h2 ingress" 1 1
check_err $? "Packet not received on H2 after adding entry"
bridge mdb del dev br0 port $swp2 grp $dmac permanent vid 10
$MZ $h1.10 -c 1 -p 128 -a own -b $dmac -q
tc_check_packets "dev $h2 ingress" 1 1
check_err $? "Packet received on H2 after deleting entry"
tc filter del dev $h2 ingress protocol all pref 1 handle 1 flower
log_test "L2 port entries forwarding tests"
}
fwd_test_port()
{ # Disable multicast flooding to ensure that packets are only forwarded # out of a port when a matching port group entry is present.
bridge link set dev $swp2 mcast_flood off
fwd_test_port_ip
fwd_test_port_l2
bridge link set dev $swp2 mcast_flood on
}
fwd_test()
{ echo
log_info "# Forwarding tests"
# Set the Max Response Delay to 100 centiseconds (1 second) so that the # bridge will start forwarding according to its MDB soon after a # multicast querier is enabled.
ip link set dev br0 type bridge mcast_query_response_interval 100
# Forwarding according to MDB entries only takes place when the bridge # detects that there is a valid querier in the network. Set the bridge # as the querier and assign it a valid IPv6 link-local address to be # used as the source address for MLD queries.
ip -6 address add fe80::1/64 nodad dev br0
ip link set dev br0 type bridge mcast_querier 1
sleep 10
fwd_test_host
fwd_test_port
ip link set dev br0 type bridge mcast_querier 0
ip -6 address del fe80::1/64 dev br0
ip link set dev br0 type bridge mcast_query_response_interval 1000
}
ctrl_igmpv3_is_in_test()
{
RET=0
# Add a permanent entry and check that it is not affected by the # received IGMP packet.
bridge mdb add dev br0 port $swp1 grp 239.1.1.1 permanent vid 10 \
filter_mode include source_list 192.0.2.1
# IS_IN ( 192.0.2.2 )
$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 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 # processing the IGMP packet, a new source is added to the list along # with a new forwarding entry.
bridge mdb replace dev br0 port $swp1 grp 239.1.1.1 temp vid 10 \
filter_mode include source_list 192.0.2.1
# IS_IN ( 192.0.2.2 )
$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 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 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
log_test "IGMPv3 MODE_IS_INCLUDE tests"
}
ctrl_mldv2_is_in_test()
{
RET=0
# Add a permanent entry and check that it is not affected by the # received MLD packet.
bridge mdb add dev br0 port $swp1 grp ff0e::1 permanent vid 10 \
filter_mode include source_list 2001:db8:1::1
# IS_IN ( 2001:db8:1::2 )
local p=$(mldv2_is_in_get fe80::1 ff0e::1 2001:db8:1::2)
$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 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 # processing the MLD packet, a new source is added to the list along # with a new forwarding entry.
bridge mdb replace dev br0 port $swp1 grp ff0e::1 temp vid 10 \
filter_mode include source_list 2001:db8:1::1
# IS_IN ( 2001:db8:1::2 )
$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 get dev br0 grp ff0e::1 vid 10 | grep -q 2001:db8:1::2
check_err $? "Source not add to source list"
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
log_test "MLDv2 MODE_IS_INCLUDE tests"
}
ctrl_test()
{ echo
log_info "# Control packets tests"
ctrl_igmpv3_is_in_test
ctrl_mldv2_is_in_test
}
if ! bridge mdb help 2>&1 | grep -q "flush"; then echo"SKIP: iproute2 too old, missing bridge mdb flush support"
exit $ksft_skip fi
trap cleanup EXIT
setup_prepare
setup_wait
tests_run
exit $EXIT_STATUS
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.14Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.