From 4eacbb73b43dc8751c2071fadb5fd1fb4d2403a1 Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Tue, 26 Jun 2018 14:52:20 -0700 Subject: [PATCH 1/3] sonic-quagga update. Don't spam with 'Vtysh connected from' message --- src/sonic-quagga | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-quagga b/src/sonic-quagga index 0bc6bd6b208e..cde29666c363 160000 --- a/src/sonic-quagga +++ b/src/sonic-quagga @@ -1 +1 @@ -Subproject commit 0bc6bd6b208e3701df89c3e231c48f3bdb3d046f +Subproject commit cde29666c363e34ea7f230bb827644457acedcbc From 2c17e695cdb159e119552611679111e1c5db8bbe Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Tue, 24 Jul 2018 16:06:33 -0700 Subject: [PATCH 2/3] Enable counters inside swss container. systemd is not flexible enough to follow our business rules --- dockers/docker-orchagent/Dockerfile.j2 | 1 + dockers/docker-orchagent/enable_counters.py | 34 +++++++++++++++++++ dockers/docker-orchagent/start.sh | 2 ++ dockers/docker-orchagent/supervisord.conf | 8 +++++ files/build_templates/enable_counters.service | 8 ----- files/build_templates/enable_counters.timer | 9 ----- files/build_templates/snmp.service.j2 | 4 +-- .../build_templates/sonic_debian_extension.j2 | 3 -- 8 files changed, 47 insertions(+), 22 deletions(-) create mode 100755 dockers/docker-orchagent/enable_counters.py delete mode 100644 files/build_templates/enable_counters.service delete mode 100644 files/build_templates/enable_counters.timer diff --git a/dockers/docker-orchagent/Dockerfile.j2 b/dockers/docker-orchagent/Dockerfile.j2 index 0df8e9ba1bb4..eceb82a06c76 100755 --- a/dockers/docker-orchagent/Dockerfile.j2 +++ b/dockers/docker-orchagent/Dockerfile.j2 @@ -30,6 +30,7 @@ RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs COPY ["files/arp_update", "/usr/bin"] +COPY ["enable_counters.py", "/usr/bin"] COPY ["start.sh", "orchagent.sh", "swssconfig.sh", "/usr/bin/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] diff --git a/dockers/docker-orchagent/enable_counters.py b/dockers/docker-orchagent/enable_counters.py new file mode 100755 index 000000000000..712d34492b47 --- /dev/null +++ b/dockers/docker-orchagent/enable_counters.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python + +import swsssdk +import time + +def enable_counter_group(db, name): + info = {} + info['FLEX_COUNTER_STATUS'] = 'enable' + db.mod_entry("FLEX_COUNTER_TABLE", name, info) + +def enable_counters(): + db = swsssdk.ConfigDBConnector() + db.connect() + enable_counter_group(db, 'PORT') + enable_counter_group(db, 'QUEUE') + enable_counter_group(db, 'PFCWD') + +def get_uptime(): + with open('/proc/uptime') as fp: + return float(fp.read().split(' ')[0]) + +def main(): + # If the switch was just started (uptime less than 5 minutes), + # wait for 3 minutes and enable counters + # otherwise wait for 60 seconds and enable counters + uptime = get_uptime() + if uptime < 300: + time.sleep(180) + else: + time.sleep(60) + enable_counters() + +if __name__ == '__main__': + main() diff --git a/dockers/docker-orchagent/start.sh b/dockers/docker-orchagent/start.sh index e26be9286aa3..0321bf8428f4 100755 --- a/dockers/docker-orchagent/start.sh +++ b/dockers/docker-orchagent/start.sh @@ -28,6 +28,8 @@ supervisorctl start intfmgrd supervisorctl start buffermgrd +supervisorctl start enable_counters + # Start arp_update when VLAN exists VLAN=`sonic-cfggen -d -v 'VLAN.keys() | join(" ") if VLAN'` if [ "$VLAN" != "" ]; then diff --git a/dockers/docker-orchagent/supervisord.conf b/dockers/docker-orchagent/supervisord.conf index dc28e3369ca5..2369a4c31b05 100644 --- a/dockers/docker-orchagent/supervisord.conf +++ b/dockers/docker-orchagent/supervisord.conf @@ -91,3 +91,11 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog + +[program:enable_counters] +command=/usr/bin/enable_counters.py +priority=11 +autostart=false +autorestart=false +stdout_logfile=syslog +stderr_logfile=syslog diff --git a/files/build_templates/enable_counters.service b/files/build_templates/enable_counters.service deleted file mode 100644 index 95424474cb15..000000000000 --- a/files/build_templates/enable_counters.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Enable SONiC counters -PartOf=swss.service - -[Service] -Type=oneshot -ExecStart=/bin/bash -c 'sleep 60 ; /usr/bin/counterpoll queue enable ; /usr/bin/counterpoll port enable ; /usr/bin/pfcwd counter_poll enable' -RemainAfterExit=yes diff --git a/files/build_templates/enable_counters.timer b/files/build_templates/enable_counters.timer deleted file mode 100644 index 40a91525a712..000000000000 --- a/files/build_templates/enable_counters.timer +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Delays the SONiC counters gathering until SONiC has started - -[Timer] -OnBootSec=2min -Unit=enable_counters.service - -[Install] -WantedBy=timers.target diff --git a/files/build_templates/snmp.service.j2 b/files/build_templates/snmp.service.j2 index 93ef869b86e1..6398477ab6a1 100644 --- a/files/build_templates/snmp.service.j2 +++ b/files/build_templates/snmp.service.j2 @@ -1,7 +1,7 @@ [Unit] Description=SNMP container -Requires=updategraph.service swss.service enable_counters.service -After=updategraph.service swss.service enable_counters.service +Requires=updategraph.service swss.service +After=updategraph.service swss.service [Service] ExecStartPre=/usr/bin/{{docker_container_name}}.sh start diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 94be71a80935..4580f3f7e741 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -285,10 +285,7 @@ sudo LANG=C chroot $FILESYSTEM_ROOT umount -lf /sys # Copy systemd timer configuration # It implements delayed start of services -sudo cp $BUILD_TEMPLATES/enable_counters.timer $FILESYSTEM_ROOT/etc/systemd/system/ -sudo cp $BUILD_TEMPLATES/enable_counters.service $FILESYSTEM_ROOT/etc/systemd/system/ sudo cp $BUILD_TEMPLATES/snmp.timer $FILESYSTEM_ROOT/etc/systemd/system/ -sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable enable_counters.timer sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable snmp.timer sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get remove -y python-dev From b381a77cfc55e59264eaa609fdc9f4db2dab4f0c Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Mon, 13 Aug 2018 18:17:06 -0700 Subject: [PATCH 3/3] Update sonic-quagga --- src/sonic-quagga | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-quagga b/src/sonic-quagga index cde29666c363..a0630b7f1bf6 160000 --- a/src/sonic-quagga +++ b/src/sonic-quagga @@ -1 +1 @@ -Subproject commit cde29666c363e34ea7f230bb827644457acedcbc +Subproject commit a0630b7f1bf6b30c9a71a59a22b08fad105e69bc