2017-11-30 16:59:25 -06:00
|
|
|
#!/bin/bash -e
|
|
|
|
|
2020-09-01 15:39:10 -05:00
|
|
|
# Generate configuration
|
2017-11-30 16:59:25 -06:00
|
|
|
|
2020-09-01 15:39:10 -05:00
|
|
|
# NOTE: 'PLATFORM' and 'HWSKU' environment variables are set
|
|
|
|
# in the Dockerfile so that they persist for the life of the container
|
2018-11-21 00:32:40 -06:00
|
|
|
|
2020-09-01 15:52:29 -05:00
|
|
|
ln -sf /usr/share/sonic/device/$PLATFORM /usr/share/sonic/platform
|
2018-11-21 00:32:40 -06:00
|
|
|
ln -sf /usr/share/sonic/device/$PLATFORM/$HWSKU /usr/share/sonic/hwsku
|
|
|
|
|
2020-04-30 14:50:59 -05:00
|
|
|
pushd /usr/share/sonic/hwsku
|
|
|
|
|
|
|
|
# filter available front panel ports in lanemap.ini
|
|
|
|
[ -f lanemap.ini.orig ] || cp lanemap.ini lanemap.ini.orig
|
|
|
|
for p in $(ip link show | grep -oE "eth[0-9]+" | grep -v eth0); do
|
|
|
|
grep ^$p: lanemap.ini.orig
|
|
|
|
done > lanemap.ini
|
|
|
|
|
|
|
|
# filter available sonic front panel ports in port_config.ini
|
|
|
|
[ -f port_config.ini.orig ] || cp port_config.ini port_config.ini.orig
|
|
|
|
grep ^# port_config.ini.orig > port_config.ini
|
|
|
|
for lanes in $(awk -F ':' '{print $2}' lanemap.ini); do
|
|
|
|
grep -E "\s$lanes\s" port_config.ini.orig
|
|
|
|
done >> port_config.ini
|
|
|
|
|
|
|
|
popd
|
|
|
|
|
2017-11-30 16:59:25 -06:00
|
|
|
[ -d /etc/sonic ] || mkdir -p /etc/sonic
|
|
|
|
|
2020-07-29 16:20:31 -05:00
|
|
|
if [[ -f /usr/share/sonic/virtual_chassis/default_config.json ]]; then
|
|
|
|
CHASS_CFG="-j /usr/share/sonic/virtual_chassis/default_config.json"
|
|
|
|
fi
|
|
|
|
|
2017-11-30 16:59:25 -06:00
|
|
|
SYSTEM_MAC_ADDRESS=$(ip link show eth0 | grep ether | awk '{print $2}')
|
2020-09-10 03:26:10 -05:00
|
|
|
sonic-cfggen -a '{"DEVICE_METADATA":{"localhost": {"mac": "'$SYSTEM_MAC_ADDRESS'"}}}' $CHASS_CFG --print-data > /etc/sonic/init_cfg.json
|
2017-11-30 16:59:25 -06:00
|
|
|
|
|
|
|
if [ -f /etc/sonic/config_db.json ]; then
|
2020-03-05 17:35:35 -06:00
|
|
|
sonic-cfggen -j /etc/sonic/init_cfg.json -j /etc/sonic/config_db.json --print-data > /tmp/config_db.json
|
2017-11-30 16:59:25 -06:00
|
|
|
mv /tmp/config_db.json /etc/sonic/config_db.json
|
|
|
|
else
|
2018-01-29 10:11:05 -06:00
|
|
|
# generate and merge buffers configuration into config file
|
2020-08-20 19:10:58 -05:00
|
|
|
sonic-cfggen -k $HWSKU -p /usr/share/sonic/device/$PLATFORM/platform.json -t /usr/share/sonic/hwsku/buffers.json.j2 > /tmp/buffers.json
|
2019-09-13 13:28:25 -05:00
|
|
|
sonic-cfggen -j /etc/sonic/init_cfg.json -t /usr/share/sonic/hwsku/qos.json.j2 > /tmp/qos.json
|
2020-08-20 19:10:58 -05:00
|
|
|
sonic-cfggen -p /usr/share/sonic/device/$PLATFORM/platform.json -k $HWSKU --print-data > /tmp/ports.json
|
|
|
|
# change admin_status from up to down; Test cases dependent
|
|
|
|
sed -i "s/up/down/g" /tmp/ports.json
|
2019-02-01 13:18:02 -06:00
|
|
|
sonic-cfggen -j /etc/sonic/init_cfg.json -j /tmp/buffers.json -j /tmp/qos.json -j /tmp/ports.json --print-data > /etc/sonic/config_db.json
|
2017-11-30 16:59:25 -06:00
|
|
|
fi
|
2017-10-24 00:01:42 -05:00
|
|
|
|
|
|
|
mkdir -p /etc/swss/config.d/
|
|
|
|
|
|
|
|
rm -f /var/run/rsyslogd.pid
|
|
|
|
|
|
|
|
supervisorctl start rsyslogd
|
|
|
|
|
2020-07-29 16:20:31 -05:00
|
|
|
supervisord_cfg="/etc/supervisor/conf.d/supervisord.conf"
|
|
|
|
chassis_cfg_file="/usr/share/sonic/virtual_chassis/default_config.json"
|
|
|
|
chassis_cfg_file_default="/etc/default/sonic-db/default_chassis_cfg.json"
|
|
|
|
host_template="/usr/share/sonic/templates/hostname.j2"
|
|
|
|
db_cfg_file="/var/run/redis/sonic-db/database_config.json"
|
|
|
|
db_cfg_file_tmp="/var/run/redis/sonic-db/database_config.json.tmp"
|
|
|
|
|
|
|
|
if [ -r "$chassis_cfg_file" ]; then
|
|
|
|
echo $(sonic-cfggen -j $chassis_cfg_file -t $host_template) >> /etc/hosts
|
|
|
|
else
|
|
|
|
chassis_cfg_file="$chassis_cfg_file_default"
|
|
|
|
echo "10.8.1.200 redis_chassis.server" >> /etc/hosts
|
|
|
|
fi
|
|
|
|
|
2019-11-20 12:40:19 -06:00
|
|
|
mkdir -p /var/run/redis/sonic-db
|
|
|
|
cp /etc/default/sonic-db/database_config.json /var/run/redis/sonic-db/
|
2017-10-24 00:01:42 -05:00
|
|
|
|
|
|
|
supervisorctl start redis-server
|
|
|
|
|
2020-07-29 16:20:31 -05:00
|
|
|
start_chassis_db=`sonic-cfggen -v DEVICE_METADATA.localhost.start_chassis_db -y $chassis_cfg_file`
|
|
|
|
if [[ "$HOSTNAME" == *"supervisor"* ]] || [ "$start_chassis_db" == "1" ]; then
|
|
|
|
supervisorctl start redis-chassis
|
|
|
|
python /usr/bin/chassis_db.py
|
|
|
|
fi
|
|
|
|
|
|
|
|
conn_chassis_db=`sonic-cfggen -v DEVICE_METADATA.localhost.connect_to_chassis_db -y $chassis_cfg_file`
|
|
|
|
if [ "$start_chassis_db" != "1" ] && [ "$conn_chassis_db" != "1" ]; then
|
|
|
|
cp $db_cfg_file $db_cfg_file_tmp
|
|
|
|
remove_chassisdb_config -j $db_cfg_file_tmp
|
|
|
|
cp $db_cfg_file_tmp $db_cfg_file
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2017-11-30 16:59:25 -06:00
|
|
|
/usr/bin/configdb-load.sh
|
|
|
|
|
2017-10-24 00:01:42 -05:00
|
|
|
supervisorctl start syncd
|
|
|
|
|
|
|
|
supervisorctl start portsyncd
|
|
|
|
|
2020-08-11 10:52:06 -05:00
|
|
|
supervisorctl start orchagent
|
|
|
|
|
2017-10-24 00:01:42 -05:00
|
|
|
supervisorctl start neighsyncd
|
|
|
|
|
2017-11-03 19:13:39 -05:00
|
|
|
supervisorctl start teamsyncd
|
|
|
|
|
2017-11-13 16:38:07 -06:00
|
|
|
supervisorctl start fpmsyncd
|
|
|
|
|
2018-10-19 05:41:53 -05:00
|
|
|
supervisorctl start teammgrd
|
|
|
|
|
2019-02-01 01:28:31 -06:00
|
|
|
supervisorctl start vrfmgrd
|
|
|
|
|
2018-08-20 13:19:16 -05:00
|
|
|
supervisorctl start portmgrd
|
|
|
|
|
2017-11-30 16:59:25 -06:00
|
|
|
supervisorctl start intfmgrd
|
|
|
|
|
|
|
|
supervisorctl start vlanmgrd
|
|
|
|
|
|
|
|
supervisorctl start zebra
|
|
|
|
|
2019-05-29 18:14:48 -05:00
|
|
|
supervisorctl start staticd
|
|
|
|
|
2018-01-29 10:11:05 -06:00
|
|
|
supervisorctl start buffermgrd
|
|
|
|
|
2018-11-28 23:58:59 -06:00
|
|
|
supervisorctl start nbrmgrd
|
|
|
|
|
2019-04-23 22:38:08 -05:00
|
|
|
supervisorctl start vxlanmgrd
|
|
|
|
|
2019-10-29 20:05:55 -05:00
|
|
|
supervisorctl start sflowmgrd
|
|
|
|
|
2020-01-29 19:40:43 -06:00
|
|
|
supervisorctl start natmgrd
|
|
|
|
|
|
|
|
supervisorctl start natsyncd
|
|
|
|
|
2017-10-24 00:01:42 -05:00
|
|
|
# Start arp_update when VLAN exists
|
2017-11-30 16:59:25 -06:00
|
|
|
VLAN=`sonic-cfggen -d -v 'VLAN.keys() | join(" ") if VLAN'`
|
|
|
|
if [ "$VLAN" != "" ]; then
|
|
|
|
supervisorctl start arp_update
|
|
|
|
fi
|