Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Kube OVN
Commits
cc64f5c1
Unverified
Commit
cc64f5c1
authored
3 years ago
by
张祖建
Committed by
GitHub
3 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #1261 from zhangzujian/fix-underlay-reboot
transfer IP/route after OVS startup
parents
ab528ae3
017e5125
master
acl
acl-doc
add_unknown_to_lsp
centralized-policy-route
chore/show-gw-error
chore/size
ci/base-update
ci/retry
ci/trivy
ci/update-kind
cni
debug
doc/optimization
doc/vip
docs/corigine
env-check
fdb
fix-base
fix-dnat
fix-resubmit-limit
fix/avx512
fix/ecmp-hash
fix/metrics-name
fix/np-log
fix/src-priority
fix/subnet-without-protocol
fix_make_kind_reload
gc-vm-lsp
ip
join
log/rotate
ls-dnat-mod-dl-dst
mahz-master
nat-gw
networkpolicy
np_master
ns-subnet
ovn-controller
ovn-db-recover
ovs-nonstop
ovs-win64-ci
perf/libovsdb
poc
port-group
push-img
qos
qos-e2e
reflactor_note
release-1.10
remove_no_need_parms_svcAsName
restore
revert-1309-fixcni
subnet
svc
sync-ovn-db
test/fix-flaky
testing
update-ovs
upgrade-ovs
vm-static-ip
v1.10.7
v1.10.6
v1.10.5
v1.10.4
v1.10.3
v1.10.2
v1.10.1
v1.10.0
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
dist/images/start-ovs.sh
+70
-0
dist/images/start-ovs.sh
with
70 additions
and
0 deletions
+70
-0
dist/images/start-ovs.sh
+
70
-
0
View file @
cc64f5c1
...
...
@@ -61,6 +61,76 @@ fi
/usr/share/openvswitch/scripts/ovs-ctl restart
--no-ovsdb-server
--system-id
=
random
/usr/share/openvswitch/scripts/ovs-ctl
--protocol
=
udp
--dport
=
6081 enable-protocol
sleep
1
function
handle_underlay_bridges
()
{
bridges
=(
$(
ovs-vsctl
--no-heading
--columns
=
name find bridge external-ids:vendor
=
kube-ovn
)
)
for
br
in
${
bridges
[@]
}
;
do
echo
"handle bridge
$br
"
ip
link set
$br
up
ports
=(
$(
ovs-vsctl list-ports
$br
)
)
for
port
in
${
ports
[@]
}
;
do
port_type
=
$(
ovs-vsctl
--no-heading
--columns
=
type
find interface
name
=
$port
)
if
[
!
"x
$port_type
"
=
'x""'
]
;
then
continue
fi
echo
"handle port
$port
on bridge
$br
"
ipv4_routes
=(
$(
ip
-4
route show dev
$port
|
tr
' '
'#'
)
)
ipv6_routes
=(
$(
ip
-6
route show dev
$port
|
tr
' '
'#'
)
)
set
+o pipefail
addresses
=(
$(
ip addr show dev
$port
|
grep
-E
'^\s*inet[6]?\s+'
|
grep
-w
global |
awk
'{print $2}'
)
)
set
-o
pipefail
# transfer IP addresses
for
addr
in
${
addresses
[@]
}
;
do
printf
"delete address
$addr
on
$port
\n
"
ip addr del
$addr
dev
$port
||
true
printf
"add/replace address
$addr
to
$br
\n
"
ip addr replace
$addr
dev
$br
done
# transfer IPv4 routes
default_ipv4_routes
=()
for
route
in
${
ipv4_routes
[@]
}
;
do
r
=
$(
echo
$route
|
tr
'#'
' '
)
if
echo
$r
|
grep
-q
-w
'scope link'
;
then
printf
"add/replace IPv4 route
$r
to
$br
\n
"
ip
-4
route replace
$r
dev
$br
else
default_ipv4_routes
=(
${
default_ipv4_routes
[@]
}
$route
)
fi
done
for
route
in
${
default_ipv4_routes
[@]
}
;
do
r
=
$(
echo
$route
|
tr
'#'
' '
)
printf
"add/replace IPv4 route
$r
to
$br
\n
"
ip
-4
route replace
$r
dev
$br
done
# transfer IPv6 routes
default_ipv6_routes
=()
for
route
in
${
ipv6_routes
[@]
}
;
do
r
=
$(
echo
$route
|
tr
'#'
' '
)
if
echo
$r
|
grep
-q
-w
'scope link'
;
then
printf
"add/replace IPv6 route
$r
to
$br
\n
"
ip
-6
route replace
$r
dev
$br
else
default_ipv6_routes
=(
${
default_ipv6_routes
[@]
}
$route
)
fi
done
for
route
in
${
default_ipv6_routes
[@]
}
;
do
r
=
$(
echo
$route
|
tr
'#'
' '
)
printf
"add/replace IPv6 route
$r
to
$br
\n
"
ip
-6
route replace
$r
dev
$br
done
done
done
}
handle_underlay_bridges
function
gen_conn_str
{
if
[[
-z
"
${
OVN_DB_IPS
}
"
]]
;
then
if
[[
"
$ENABLE_SSL
"
==
"false"
]]
;
then
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help