4faa5f2f92
PR#2538 cannot merge due to master branch status. It has been tested against 201811 branch. Submodule src/sonic-sairedis 21f4a49..d57222a: > Add more specific logic for ingress ACL and buffer profile (#421) > Move warm_restart enable/disable config to stateDB WARM_RESTART_ENABLE_TABLE (#418) > Add support for vlan tagged frames in virtual switch (#417) Submodule src/sonic-swss 1590030..584490c: > Move warm_restart enable/disable config to stateDB WARM_RESTART_ENABLE_TABLE (#786) > [vstest]: Potential fix for timing issue in warm_reboot's routing UT (#788) Submodule src/sonic-swss-common 594f4e8..286ef34: > Move warm_restart enable/disable config to stateDB WARM_RESTART_ENABLE_TABLE (#260) Submodule src/sonic-utilities c6666e2..b44b462: > Move warm_restart enable/disable config to stateDB WARM_RESTART_ENABL… (#458) > [aclshow] output only counters per table/rule (#442) Signed-off-by: Ying Xie <ying.xie@microsoft.com> [PR 2538] Move warm_restart enable/disable config to stateDB WARM_RESTART_ENABLE_TABLE Signed-off-by: Jipan Yang <jipan.yang@alibaba-inc.com>
62 lines
1.4 KiB
Bash
Executable File
62 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
function fast_reboot {
|
|
case "$(cat /proc/cmdline)" in
|
|
*fast-reboot*)
|
|
if [[ -f /fdb.json ]];
|
|
then
|
|
swssconfig /fdb.json
|
|
rm -f /fdb.json
|
|
fi
|
|
|
|
if [[ -f /arp.json ]];
|
|
then
|
|
swssconfig /arp.json
|
|
rm -f /arp.json
|
|
fi
|
|
|
|
if [[ -f /default_routes.json ]];
|
|
then
|
|
swssconfig /default_routes.json
|
|
rm -f /default_routes.json
|
|
fi
|
|
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Wait until swss.sh in the host system create file swss:/ready
|
|
until [[ -e /ready ]]; do
|
|
sleep 0.1;
|
|
done
|
|
|
|
rm -f /ready
|
|
|
|
# Restore FDB and ARP table ASAP
|
|
fast_reboot
|
|
|
|
HWSKU=`sonic-cfggen -d -v "DEVICE_METADATA['localhost']['hwsku']"`
|
|
|
|
# Don't load json config if system warm start or
|
|
# swss docker warm start is enabled, the data already exists in appDB.
|
|
SYSTEM_WARM_START=`redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|system" enable`
|
|
SWSS_WARM_START=`redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|swss" enable`
|
|
if [[ "$SYSTEM_WARM_START" == "true" ]] || [[ "$SWSS_WARM_START" == "true" ]]; then
|
|
# We have to make sure db data has not been flushed.
|
|
RESTORE_COUNT=`redis-cli -n 6 hget "WARM_RESTART_TABLE|orchagent" restore_count`
|
|
if [[ -n "$RESTORE_COUNT" ]] && [[ "$RESTORE_COUNT" != "0" ]]; then
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
SWSSCONFIG_ARGS="00-copp.config.json ipinip.json ports.json switch.json "
|
|
|
|
for file in $SWSSCONFIG_ARGS; do
|
|
swssconfig /etc/swss/config.d/$file
|
|
sleep 1
|
|
done
|