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
2016-09-16 16:58:31 +0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
268309f62ffc58c36d6d2436730cd4b7feba72ed
268309f6
1 parent
af0a5abe
Added trunk bridges
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
3 deletions
ipw
ipw
View file @
268309f
...
...
@@ -361,7 +361,7 @@ case "$CMD" in
#GETTING INFORMATION ABOUT LXC INTERFACES IN BRIDGES
if
[[
"
$LXC_DIR
"
!
=
""
]]
;
then
LXC_BRIDGE_SLAVES
=(
$(
cat
"
$LXC_DIR
"
/
*
/config | tr -d
"
\t
"
| awk -F
'='
'{if($1=="lxc.network.link") {BRIDGE=$2}; if($1=="lxc.network.veth.pair") {if(BRIDGE!="") {print $2":"BRIDGE; BRIDGE=""}} }'
)
)
LXC_BRIDGE_SLAVES
=(
$(
cat
"
$LXC_DIR
"
/
*
/config
2>/dev/null
| tr -d
"
\t
"
| awk -F
'='
'{if($1=="lxc.network.link") {BRIDGE=$2}; if($1=="lxc.network.veth.pair") {if(BRIDGE!="") {print $2":"BRIDGE; BRIDGE=""}} }'
)
)
fi
#REMOVING UNNECESSARY D1Q
...
...
@@ -369,6 +369,27 @@ case "$CMD" in
OLD_D1Q_IFACES
=
"
`
cat /sys/class/net/bonding_masters
`
"
for
OLD_D1Q_IFACE
in
${
OLD_D1Q_IFACES
[@]
}
;
do
# Removing trunk bridge (like "bond0br")
TRUNK_BRIDGE_IS_USED
=
0
for
D1Q_IFACE
in
${
D1Q_IFACES
[@]
}
;
do
if
[[
"
$D1Q_IFACE
"
==
"
$OLD_D1Q_IFACE
"
]]
;
then
TRUNK_BRIDGE_IS_USED
=
1
break
fi
done
if
[[
"
$TRUNK_BRIDGE_IS_USED
"
-eq 0
]]
;
then
OLD_TRUNK_BRIDGE
=
"
$OLD_D1Q_IFACE
"
br
if
[[
-d /sys/class/net/
"
$OLD_TRUNK_BRIDGE
"
]]
;
then
ip link
set
"
$OLD_D1Q_IFACE
"
nomaster 2>/dev/null
ip link delete
"
$OLD_TRUNK_BRIDGE
"
fi
fi
# Removing slaves and the interface itself
D1Q_IS_USED
=
0
OLD_SLAVES
=
"
`
cat /sys/class/net/
"
$OLD_D1Q_IFACE
"
/bonding/slaves
`
"
for
D1Q_IFACE
in
${
D1Q_IFACES
[@]
}
;
do
...
...
@@ -405,6 +426,9 @@ case "$CMD" in
declare
-A REQUIRED_IFACENAME_HASH
for
D1Q_IFACE_TMP
in
${
D1Q_IFACES
[@]
}
;
do
#we should keep slave ifaces
REQUIRED_BRNAME_HASH[
"
${
D1Q_IFACE_TMP
}
br"
]=
"
${
D1Q_IFACE_TMP
}
br"
REQUIRED_IFACENAME_HASH[
"
$D1Q_IFACE_TMP
"
]=
"
$D1Q_IFACE_TMP
"
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
...
...
@@ -552,10 +576,20 @@ case "$CMD" in
ip link
set
dev
"
$SLAVE
"
up
done
# Creating trunk bridge (like "bond0br")
TRUNK_BRIDGE
=
"
$D1Q_IFACE
"
br
if
!
[[
-d /sys/class/net/
"
$TRUNK_BRIDGE
"
]]
;
then
ip link add
"
$TRUNK_BRIDGE
"
type
bridge
echo
"
$BRIDGE_FORWARD_DELAY
"
> /sys/devices/virtual/net/
"
$TRUNK_BRIDGE
"
/bridge/forward_delay
ip link
set
dev
"
$TRUNK_IFACE
"
up
ip link
set
"
$D1Q_IFACE
"
master
"
$TRUNK_BRIDGE
"
fi
# Creating necessary bridges and VLANs
VLAN_N_BRIDGE_VARIABLE
=
"
${
D1Q_IFACE
}
_VLAN_N_BRIDGES"
VLAN_N_BRIDGE_VARIABLE
=
"
${
VLAN_N_BRIDGE_VARIABLE
//[.]/_
}
[@]"
#CREATING NECESSARY BRIDGES AND VLANS
for
VLAN_N_BRIDGE
in
"
${
!VLAN_N_BRIDGE_VARIABLE
}
"
;
do
parse_vlan_subvlan_bridge
"
${
VLAN_N_BRIDGE
}
"
...
...
Please
register
or
login
to post a comment