for port in d1 d2 d3; do
ip_link_add $port type veth peer name r$port
ip_link_set_up $port
ip_link_set_up r$port
ip_link_set_master $port br done
bridge_vlan_add vid 11 dev br self
bridge_vlan_add vid 11 dev d1 master
bridge_vlan_add vid 12 dev br self
bridge_vlan_add vid 12 dev d2 master
bridge_vlan_add vid 13 dev br self
bridge_vlan_add vid 13 dev d1 master
bridge_vlan_add vid 13 dev d2 master
bridge_vlan_add vid 14 dev br self
bridge_vlan_add vid 14 dev d1 master
bridge_vlan_add vid 14 dev d2 master
bridge_vlan_add vid 14 dev d3 master
}
operstate_is()
{
local dev=$1; shift
local expect=$1; shift
local operstate=$(ip -j link show $dev | jq -r .[].operstate) if [[ $operstate == UP ]]; then
operstate=1 elif [[ $operstate == DOWN || $operstate == LOWERLAYERDOWN ]]; then
operstate=0 fi echo -n $operstate
[[ $operstate == $expect ]]
}
check_operstate()
{
local dev=$1; shift
local expect=$1; shift
local operstate
do_test_binding()
{
local inject=$1; shift
local what=$1; shift
local opsts_d1=$1; shift
local opsts_d2=$1; shift
local opsts_d12=$1; shift
local opsts_d123=$1; shift
test_binding_on()
{
add_vlans bridge_binding on
set_vlans up
do_test_binding_on : "on"
}
test_binding_off()
{
add_vlans bridge_binding off
set_vlans up
do_test_binding_off : "off"
}
test_binding_toggle_on()
{
add_vlans bridge_binding off
set_vlans up
set_vlans type vlan bridge_binding on
do_test_binding_on : "off->on"
}
test_binding_toggle_off()
{
add_vlans bridge_binding on
set_vlans up
set_vlans type vlan bridge_binding off
do_test_binding_off : "on->off"
}
dfr_set_binding_on()
{
set_vlans type vlan bridge_binding on
defer set_vlans type vlan bridge_binding off
}
dfr_set_binding_off()
{
set_vlans type vlan bridge_binding off
defer set_vlans type vlan bridge_binding on
}
test_binding_toggle_on_when_lower_down()
{
add_vlans bridge_binding off
set_vlans up
do_test_binding_on dfr_set_binding_on "off->on when lower down"
}
test_binding_toggle_off_when_lower_down()
{
add_vlans bridge_binding on
set_vlans up
do_test_binding_off dfr_set_binding_off "on->off when lower down"
}
test_binding_toggle_on_when_upper_down()
{
add_vlans bridge_binding off
set_vlans type vlan bridge_binding on
set_vlans up
do_test_binding_on : "off->on when upper down"
}
test_binding_toggle_off_when_upper_down()
{
add_vlans bridge_binding on
set_vlans type vlan bridge_binding off
set_vlans up
do_test_binding_off : "on->off when upper down"
}
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.