layer2interface: broadcom: add support for changing last mac grop refs #12060

This commit is contained in:
Reidar Cederqvist 2017-05-18 12:56:22 +02:00 committed by Sukru Senli
parent b7a547c1d6
commit e733774cd3
2 changed files with 32 additions and 1 deletions

View file

@ -50,10 +50,11 @@ addethernet() {
config_get baseifname $1 baseifname
config_get ifname $1 ifname
config_get bridge $1 bridge
config_get mac2 $1 mac2
ifname="${ifname:-$baseifname.1}"
brcm_virtual_interface_rules "$baseifname" "$ifname" "$bridge"
brcm_virtual_interface_rules "$baseifname" "$ifname" "$bridge" "$mac2"
}

View file

@ -161,12 +161,38 @@ addbrcmvlan()
fi
}
update_last_mac_group()
{
local ifname=$1
local last_mac_group=$2
local full_mac modified_mac dev_mac
full_mac="$(ifconfig $ifname | awk '{print $NF; exit}')"
[ "${full_mac}" == "" ] && return
modified_mac="${full_mac:0:15}${last_mac_group}"
devs="wl0 wl1 bcmsw"
for dev in $devs; do
dev_mac="$(ifconfig $dev | awk '{print $NF; exit}')"
if [ "$dev_mac" == "$modified_mac" ]; then
return
fi
done
ifconfig $ifname hw ether "${modified_mac}"
}
brcm_virtual_interface_rules()
{
local baseifname=$1
local ifname=$2
local bridge=$3
local last_mac_group=$4
bridge="${bridge:-0}"
@ -230,6 +256,10 @@ brcm_virtual_interface_rules()
vlanctl --if $baseifname --rx --tags 0 --set-rxif $ifname --filter-vlan-dev-mac-addr 1 --rule-insert-before -1
fi
if [ "$last_mac_group" != "" ]; then
update_last_mac_group $ifname $last_mac_group
fi
ifconfig $ifname up
ifconfig $ifname multicast
}