From c93d60400b11bed2d771158783edcd975cfba08a Mon Sep 17 00:00:00 2001 From: Tamer Ahmed Date: Mon, 17 Aug 2020 15:46:52 -0700 Subject: [PATCH] [interfaces] Reduce Calls to SONiC Cfggen (#5174) Calls to sonic-cfggen is CPU expensive. This PR reduces calls to sonic-cfggen to one call during startup when running interfaces- config. singed-off-by: Tamer Ahmed --- files/image_config/interfaces/interfaces-config.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/files/image_config/interfaces/interfaces-config.sh b/files/image_config/interfaces/interfaces-config.sh index 7cb92b3c946e..51bdbc817ab7 100755 --- a/files/image_config/interfaces/interfaces-config.sh +++ b/files/image_config/interfaces/interfaces-config.sh @@ -18,8 +18,14 @@ else echo "{ \"ZTP_DHCP_DISABLED\" : \"true\" }" > /tmp/ztp_input.json fi -# Create /e/n/i file for existing and active interfaces -sonic-cfggen -d -j /tmp/ztp_input.json -t /usr/share/sonic/templates/interfaces.j2 > /etc/network/interfaces +# Create /e/n/i file for existing and active interfaces, dhcp6 sytcl.conf and dhclient.conf +CFGGEN_PARAMS=" \ + -d -j /tmp/ztp_input.json \ + -t /usr/share/sonic/templates/interfaces.j2,/etc/network/interfaces \ + -t /usr/share/sonic/templates/90-dhcp6-systcl.conf.j2,/etc/sysctl.d/90-dhcp6-systcl.conf \ + -t /usr/share/sonic/templates/dhclient.conf.j2,/etc/dhcp/dhclient.conf \ +" +sonic-cfggen $CFGGEN_PARAMS [ -f /var/run/dhclient.eth0.pid ] && kill `cat /var/run/dhclient.eth0.pid` && rm -f /var/run/dhclient.eth0.pid [ -f /var/run/dhclient6.eth0.pid ] && kill `cat /var/run/dhclient6.eth0.pid` && rm -f /var/run/dhclient6.eth0.pid @@ -28,11 +34,9 @@ for intf_pid in $(ls -1 /var/run/dhclient*.Ethernet*.pid 2> /dev/null); do [ -f ${intf_pid} ] && kill `cat ${intf_pid}` && rm -f ${intf_pid} done -sonic-cfggen -d -j /tmp/ztp_input.json -t /usr/share/sonic/templates/90-dhcp6-systcl.conf.j2 > /etc/sysctl.d/90-dhcp6-systcl.conf # Read sysctl conf files again sysctl -p /etc/sysctl.d/90-dhcp6-systcl.conf -sonic-cfggen -d -j /tmp/ztp_input.json -t /usr/share/sonic/templates/dhclient.conf.j2 > /etc/dhcp/dhclient.conf systemctl restart networking # Clean-up created files