Toggle navigation
Toggle navigation
This project
Loading...
Sign in
UT
/
ipw
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
1
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
redmine
2014-04-18 16:44:16 +0400
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
c6d6dfa59d48755cef27fd73963534e51b4f403a
c6d6dfa5
1 parent
d71787c7
Adopted to malfurion
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
54 additions
and
33 deletions
ipw
ipw
View file @
c6d6dfa
...
...
@@ -76,6 +76,7 @@ parse_vlan_subvlan_bridge() {
if
[[
"
${
VLAN_N_BRIDGE
:0:1
}
"
=
":"
]]
;
then
VLAN
=
""
SUBVLAN
=
""
VLANNAME
=
""
BRNAME
=
"
${
VLAN_N_BRIDGE
:1
}
"
else
...
...
@@ -103,10 +104,15 @@ parse_vlan_subvlan_bridge() {
return
;
}
declare
-A get_brname_byslave_assoc
for
VLAN_N_BRIDGE
in
$(
find /sys/devices/virtual/net -wholename
'*/brif/*'
| awk -F
'/'
'{print $8":"$6}'
)
;
do
oldIFS
=
"
$IFS
"
;
IFS
=
':'
;
words
=(
$VLAN_N_BRIDGE
)
;
IFS
=
"
$oldIFS
"
get_brname_byslave_assoc[
${
words
[0]
}
]=
${
words
[1]
}
done
get_brname_byslave
()
{
SLAVE
=
"
$1
"
;
shift
find /sys/devices/virtual/net -wholename
'*/brif/'
"
$SLAVE
"
| awk -F
'/'
'{print $6}'
echo
${
get_brname_byslave_assoc
[
$SLAVE
]
}
}
get_vlan_n_bridges
()
{
...
...
@@ -115,6 +121,12 @@ get_vlan_n_bridges() {
find /sys/devices/virtual/net -wholename
'*/brif/*'
| awk -F
'/'
'{print $8":"$6}'
}
iface_isexists
()
{
IFACE
=
"
$1
"
;
shift
;
[
-e /sys/devices/virtual/net/
"
$IFACE
"
]
return
$?
}
case
"
$CMD
"
in
down
)
IPW_CONFIG_PATH
=
/dev/null
...
...
@@ -326,6 +338,29 @@ case "$CMD" in
#REMOVING UNNECESSARY BRIDGES AND VLANS
declare
-A REQUIRED_FULLNAME_HASH
declare
-A REQUIRED_BRNAME_HASH
declare
-A REQUIRED_IFACENAME_HASH
for
D1Q_IFACE_TMP
in
${
D1Q_IFACES
[@]
}
;
do
#we should keep slave ifaces
VLAN_N_BRIDGE_VARIABLE
=
"
${
D1Q_IFACE_TMP
}
_VLAN_N_BRIDGES"
VLAN_N_BRIDGE_VARIABLE
=
"
${
VLAN_N_BRIDGE_VARIABLE
//[.]/_
}
[@]"
for
VLAN_N_BRIDGE
in
"
${
!VLAN_N_BRIDGE_VARIABLE
}
"
;
do
parse_vlan_subvlan_bridge
"
${
VLAN_N_BRIDGE
}
"
REQUIRED_FULLNAME_HASH[
"
$D1Q_IFACE_TMP
"
.
"
$VLAN_N_BRIDGE
"
]=
"
$D1Q_IFACE_TMP
"
.
"
$VLAN_N_BRIDGE
"
if
[[
"
$BRNAME
"
!
=
""
]]
;
then
REQUIRED_BRNAME_HASH[
"
$BRNAME
"
]=
"
$BRNAME
"
fi
if
[[
"
$VLANNAME
"
!
=
""
]]
;
then
REQUIRED_IFACENAME_HASH[
"
$VLANNAME
"
]=
"
$VLANNAME
"
REQUIRED_IFACENAME_HASH[
"
$D1Q_IFACE_TMP
"
.
"
$VLAN
"
]=
"
$D1Q_IFACE_TMP
"
.
"
$VLAN
"
fi
done
done
for
LXCIF_N_BRIDGE
in
${
LXC_BRIDGE_SLAVES
[@]
}
;
do
REQUIRED_FULLNAME_HASH[
"
$LXCIF_N_BRIDGE
"
]=
"
$LXCIF_N_BRIDGE
"
done
OLD_VLAN_N_BRIDGES
=(
`
get_vlan_n_bridges
`
)
for
LINE
in
${
OLD_VLAN_N_BRIDGES
[@]
}
;
do
#echo ITERATION
...
...
@@ -341,34 +376,21 @@ case "$CMD" in
BRIDGE_IN_USE
=
0
IFACE_IN_USE
=
0
VLAN_N_BRIDGE_IN_USE
=
0
for
D1Q_IFACE_TMP
in
${
D1Q_IFACES
[@]
}
;
do
#we should keep slave ifaces
VLAN_N_BRIDGE_VARIABLE
=
"
${
D1Q_IFACE_TMP
}
_VLAN_N_BRIDGES"
VLAN_N_BRIDGE_VARIABLE
=
"
${
VLAN_N_BRIDGE_VARIABLE
//[.]/_
}
[@]"
for
VLAN_N_BRIDGE
in
"
${
!VLAN_N_BRIDGE_VARIABLE
}
"
;
do
parse_vlan_subvlan_bridge
"
${
VLAN_N_BRIDGE
}
"
if
[[
"
$LINE
"
=
"
$D1Q_IFACE_TMP
"
.
"
$VLAN_N_BRIDGE
"
]]
;
then
BRIDGE_IN_USE
=
1
IFACE_IN_USE
=
1
VLAN_N_BRIDGE_IN_USE
=
1
break
2
fi
if
[[
"
$OLD_BRNAME
"
=
"
$BRNAME
"
]]
;
then
if
[[
"
${
REQUIRED_FULLNAME_HASH
[
$LINE
]
}
"
!
=
""
]]
;
then
BRIDGE_IN_USE
=
1
IFACE_IN_USE
=
1
VLAN_N_BRIDGE_IN_USE
=
1
else
[[
"
$OLD_BRNAME
"
!
=
""
]]
&&
if
[[
"
${
REQUIRED_BRNAME_HASH
[
$OLD_BRNAME
]
}
"
!
=
""
]]
;
then
BRIDGE_IN_USE
=
1
fi
if
[[
"
$OLD_VLANNAME
"
=
"
$VLANNAME
"
]]
;
then
IFACE_IN_USE
=
1
fi
if
[[
"
$OLD_VLANNAME
"
=
"
$D1Q_IFACE_TMP
"
.
"
$VLAN
"
]]
;
then
[[
"
$OLD_VLANNAME
"
!
=
""
]]
&&
if
[[
"
${
REQUIRED_IFACENAME_HASH
[
$OLD_VLANNAME
]
}
"
!
=
""
]]
;
then
IFACE_IN_USE
=
1
fi
done
done
for
LXCIF_N_BRIDGE
in
${
LXC_BRIDGE_SLAVES
[@]
}
;
do
if
[[
"
$LINE
"
=
"
$LXCIF_N_BRIDGE
"
]]
;
then
IFACE_IN_USE
=
1
break
fi
done
fi
if
[[
"
$BRIDGE_IN_USE
"
=
0
]]
;
then
[[
"
$OLD_BRNAME
"
!
=
''
]]
&&
ip link delete
"
$OLD_BRNAME
"
...
...
@@ -451,7 +473,7 @@ case "$CMD" in
VLAN_N_BRIDGE_VARIABLE
=
"
${
D1Q_IFACE
}
_VLAN_N_BRIDGES"
VLAN_N_BRIDGE_VARIABLE
=
"
${
VLAN_N_BRIDGE_VARIABLE
//[.]/_
}
[@]"
#CREATING
OF
NECESSARY BRIDGES AND VLANS
#CREATING NECESSARY BRIDGES AND VLANS
for
VLAN_N_BRIDGE
in
"
${
!VLAN_N_BRIDGE_VARIABLE
}
"
;
do
##
...
...
@@ -472,7 +494,7 @@ case "$CMD" in
#VLAN STUFF
if
[[
"
$VLAN
"
!
=
""
]]
;
then
if
! i
p link show
"
$FULL_VLAN_NAME
"
>/dev/null 2>/dev/null
;
then
#should we create a new vlan?
if
! i
face_isexists
"
$FULL_VLAN_NAME
"
;
then
#should we create a new vlan?
#ip link show | grep -q "$FULL_VLAN_NAME"
#if $?; then #should we create a new vlan?
if
[[
"
$SUBVLAN
"
!
=
""
]]
;
then
#is it subvlan?
...
...
@@ -481,7 +503,7 @@ case "$CMD" in
#echo FULL_PARVLAN_NAME $FULL_PARVLAN_NAME
#echo D1Q_IFACE $D1Q_IFACE
##
if
! i
p link show
"
$FULL_PARVLAN_NAME
"
>/dev/null 2>/dev/null
;
then
#should we create a new parent vlan?
if
! i
face_isexists
"
$FULL_PARVLAN_NAME
"
;
then
#should we create a new parent vlan?
#echo "ip link add link $D1Q_IFACE name $FULL_PARVLAN_NAME type vlan id $VLAN" #vlan in bond
ip link add link
"
$D1Q_IFACE
"
name
"
$FULL_PARVLAN_NAME
"
type
vlan id
"
$VLAN
"
#vlan in bond
#echo "ip link set dev $FULL_PARVLAN_NAME up"
...
...
@@ -509,7 +531,7 @@ case "$CMD" in
if
[[
"
$BRNAME
"
!
=
""
]]
;
then
#if [[ "`brctl show | grep "$BRNAME"`" = "" ]]; then #do this bridge exists?
if
! i
p link show
"
$BRNAME
"
>/dev/null 2>/dev/null
;
then
#do this bridge exists?
if
! i
face_isexists
"
$BRNAME
"
;
then
#do this bridge exists?
#brctl addbr "$BRNAME"
#echo "ip link add "$BRNAME" type bridge"
ip link add
"
$BRNAME
"
type
bridge
...
...
@@ -544,7 +566,8 @@ case "$CMD" in
IP_CMDS_VARIABLE
=
"
${
BRNAME
//[.]/_
}
_IP"
IP_CMDS_VARIABLE
=
"
${
IP_CMDS_VARIABLE
}
[@]"
for
IP_CMD
in
"
${
!IP_CMDS_VARIABLE
}
"
;
do
ip
$IP_CMD
dev
"
$BRNAME
"
[[
"
$IP_CMD
"
!
=
""
]]
&&
ip
$IP_CMD
dev
"
$BRNAME
"
done
else
ip addr flush dev
"
$VLANNAME
"
...
...
@@ -640,7 +663,7 @@ for D1Q_IFACE in ${D1Q_IFACES[@]}; do
fi
printf
"br: %-1
0s vlan:%4s subvlan:%4
s
\n
"
"
$BRNAME
"
"
$VLAN
"
"
$SUBVLAN
"
printf
"br: %-1
6s vlan:%5s subvlan:%5
s
\n
"
"
$BRNAME
"
"
$VLAN
"
"
$SUBVLAN
"
done
newconfig_push 1
")"
...
...
@@ -652,8 +675,6 @@ newconfig_popallwrite 1
newconfig_popallwrite 2
newconfig_popallwrite 3
echo
${
D1Q_IFACES
[@]
}
#[[ $NEWCONFIG -ne 0 ]] && newconfig_commit
exit
0
...
...
Please
register
or
login
to post a comment