From c52fb762dd30a17b3181a9084ef844b3799e09ce Mon Sep 17 00:00:00 2001 From: pavel-shirshov Date: Wed, 18 Jul 2018 13:04:57 -0700 Subject: [PATCH] Convert arp_update into a 'start-it-once' mode (#1864) * Run arp_update just once, don't restart it. It will run continuosly with 5 min pauses --- dockers/docker-orchagent/supervisord.conf | 4 ++-- files/scripts/arp_update | 21 +++++++++++--------- platform/p4/docker-sonic-p4/supervisord.conf | 4 ++-- platform/vs/docker-sonic-vs/supervisord.conf | 4 ++-- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/dockers/docker-orchagent/supervisord.conf b/dockers/docker-orchagent/supervisord.conf index 84beaed440..dc28e3369c 100644 --- a/dockers/docker-orchagent/supervisord.conf +++ b/dockers/docker-orchagent/supervisord.conf @@ -61,10 +61,10 @@ stdout_logfile=syslog stderr_logfile=syslog [program:arp_update] -command=bash -c "/usr/bin/arp_update; sleep 300" +command=/usr/bin/arp_update priority=8 autostart=false -autorestart=true +autorestart=unexpected stdout_logfile=syslog stderr_logfile=syslog diff --git a/files/scripts/arp_update b/files/scripts/arp_update index cfd87c1dc5..ab44ca6a45 100755 --- a/files/scripts/arp_update +++ b/files/scripts/arp_update @@ -4,14 +4,17 @@ # arp_update: Send gratuitous ARP requests to VLAN member neighbors to refresh # the neighbors state. -VLAN=`sonic-cfggen -d -v 'VLAN.keys() | join(" ") if VLAN'` -for vlan in $VLAN; do - # generate a list of arping commands: - # arping -q -w 0 -c 1 -i ; - # arping -q -w 0 -c 1 -i ; - # ... - arpingcmd="sed -e 's/ / -i /' -e 's/^/arping -q -w 0 -c 1 /' -e 's/$/;/'" - ipcmd="ip -4 neigh show | grep $vlan | cut -d ' ' -f 1,3 | $arpingcmd" +while /bin/true; do + VLAN=`sonic-cfggen -d -v 'VLAN.keys() | join(" ") if VLAN'` + for vlan in $VLAN; do + # generate a list of arping commands: + # arping -q -w 0 -c 1 -i ; + # arping -q -w 0 -c 1 -i ; + # ... + arpingcmd="sed -e 's/ / -i /' -e 's/^/arping -q -w 0 -c 1 /' -e 's/$/;/'" + ipcmd="ip -4 neigh show | grep $vlan | cut -d ' ' -f 1,3 | $arpingcmd" - eval `eval $ipcmd` + eval `eval $ipcmd` + done + sleep 300 done diff --git a/platform/p4/docker-sonic-p4/supervisord.conf b/platform/p4/docker-sonic-p4/supervisord.conf index 46178e9f11..5815689f93 100644 --- a/platform/p4/docker-sonic-p4/supervisord.conf +++ b/platform/p4/docker-sonic-p4/supervisord.conf @@ -133,9 +133,9 @@ stdout_logfile=syslog stderr_logfile=syslog [program:arp_update] -command=bash -c "/usr/bin/arp_update; sleep 300" +command=/usr/bin/arp_update priority=15 autostart=false -autorestart=true +autorestart=unexpected stdout_logfile=syslog stderr_logfile=syslog diff --git a/platform/vs/docker-sonic-vs/supervisord.conf b/platform/vs/docker-sonic-vs/supervisord.conf index 571c802cda..a4b24334d1 100644 --- a/platform/vs/docker-sonic-vs/supervisord.conf +++ b/platform/vs/docker-sonic-vs/supervisord.conf @@ -116,10 +116,10 @@ stdout_logfile=syslog stderr_logfile=syslog [program:arp_update] -command=bash -c "/usr/bin/arp_update; sleep 300" +command=/usr/bin/arp_update priority=15 autostart=false -autorestart=true +autorestart=unexpected stdout_logfile=syslog stderr_logfile=syslog