sonic-buildimage/dockers/docker-orchagent/docker-init.sh
Lawrence Lee d162ffe0a5
[swss]: Wait for vlan intf to start ndppd (#10119) (#10153)
202012 version of #10119

Why I did it
If the VLAN interface is not up when ndppd starts, it will fail to enable allmulti mode on the interface and be unable to process received NDP packets

The following logs are seen:

/var/log/syslog.33.gz:Feb 18 10:33:12.825406 sonic INFO swss#/supervisord: ndppd (error) Failed to set allmulti: No such device

How I did it
Use the wait_for_link script currently used by radv to delay ndppd startup until the vlan interface is ready

How to verify it
Apply the changes to a device. config reload the device and confirm that the above error logs are not observed when ndppd starts. Run the arp/test_arp_dualtor.py::test_proxy_arp test case and verify it passes.
2022-03-04 20:40:29 -08:00

31 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
mkdir -p /etc/swss/config.d/
CFGGEN_PARAMS=" \
-d \
-y /etc/sonic/constants.yml \
-t /usr/share/sonic/templates/switch.json.j2,/etc/swss/config.d/switch.json \
-t /usr/share/sonic/templates/ipinip.json.j2,/etc/swss/config.d/ipinip.json \
-t /usr/share/sonic/templates/ports.json.j2,/etc/swss/config.d/ports.json \
-t /usr/share/sonic/templates/vlan_vars.j2 \
-t /usr/share/sonic/templates/ndppd.conf.j2,/etc/ndppd.conf \
-t /usr/share/sonic/templates/wait_for_link.sh.j2,/usr/bin/wait_for_link.sh \
"
VLAN=$(sonic-cfggen $CFGGEN_PARAMS)
chmod +x /usr/bin/wait_for_link.sh
# Executed HWSKU specific initialization tasks.
if [ -x /usr/share/sonic/hwsku/hwsku-init ]; then
/usr/share/sonic/hwsku/hwsku-init
fi
# Start arp_update and NDP proxy daemon when VLAN exists
if [ "$VLAN" != "" ]; then
cp /usr/share/sonic/templates/arp_update.conf /etc/supervisor/conf.d/
cp /usr/share/sonic/templates/ndppd.conf /etc/supervisor/conf.d/
fi
exec /usr/local/bin/supervisord