From 57c02e386b6e32c46b79f645fea5d1f9f6262813 Mon Sep 17 00:00:00 2001 From: Zain Budhwani <99770260+zbud-msft@users.noreply.github.com> Date: Tue, 11 Feb 2025 18:07:08 -0800 Subject: [PATCH 1/9] Remove rsyslog plugin from all non eventd containers (#21338) #### Why I did it Fixes Issue #21227 - As of current, we have rsyslog_plugin and corresponding regex and configuration files in containers like bgp, swss, dhcp_relay. These binaries and files are built as part of the docker container itself. - This change removes that dependency by storing all rsyslog_plugin regex and conference files in the eventd docker container, and at runtime copying them to the host. - Fixes the issue that some images will not be able to publish certain events like "bgp-state", or "dhcp-relay-discard" due to reuse of docker containers during where eventd was disabled. #### How I did it - Removed all rsyslog plugin configuration and regex files from containers such as bgp, swss, dhcp_relay. All files for configuration and regexes are built inside eventd docker container. When eventd docker is started, it will copy these files to the host and restart rsyslog. - sshd regex and zebra regex are removed because those events are currently not being supported. - Possible race condition with rsyslog-config is avoided due to "After" and since rsyslog-config.service is type oneshot, rsyslog-config.sh is guaranteed to complete before eventd.service is called. #### How to verify it Tested on all elastic pipeline for 6 different HWSKUs Arista-7260CX, Arista720DT, Mellanox2700, Cisco 8102, Nokia M0, Arista 7060CX --- .../00-load-omprog.conf | 1 - .../Dockerfile.j2 | 1 - .../00-load-omprog.conf | 1 - .../Dockerfile.j2 | 1 - dockers/docker-dhcp-relay/Dockerfile.j2 | 10 ---------- dockers/docker-eventd/Dockerfile.j2 | 18 ++++++++++++++++++ .../bgp_events_info.json} | 0 .../bgp_regex.json | 0 .../docker-eventd}/bgpd_regex.json | 0 .../dhcp_relay_events_info.json} | 0 .../dhcp_relay_regex.json | 0 .../docker-eventd}/dockerd_regex.json | 0 .../docker-eventd/host_events_info.json | 4 ---- .../docker-eventd}/kernel_regex.json | 0 .../docker-eventd}/monit_regex.json | 0 .../docker-eventd}/seu_regex.json | 0 dockers/docker-eventd/start.sh | 1 - .../swss_events_info.json} | 0 .../swss_regex.json | 0 .../docker-eventd}/syncd_events_info.json | 0 .../docker-eventd}/syncd_regex.json | 0 .../docker-eventd}/systemd_regex.json | 0 dockers/docker-fpm-frr/Dockerfile.j2 | 8 -------- dockers/docker-orchagent/Dockerfile.j2 | 10 ---------- files/build_templates/docker_image_ctl.j2 | 7 +++++++ files/build_templates/eventd.service.j2 | 2 +- .../build_templates/sonic_debian_extension.j2 | 16 ---------------- files/build_templates/sshd_regex.json | 7 ------- files/build_templates/zebra_regex.json | 7 ------- .../rsyslog/rsyslog.d/00-sonic.conf.j2 | 6 ------ rules/docker-dhcp-relay.mk | 4 ++-- rules/docker-dhcp-server.mk | 2 +- rules/docker-eventd.mk | 2 +- rules/docker-fpm-frr.mk | 4 ++-- rules/docker-orchagent.mk | 5 ++--- 35 files changed, 34 insertions(+), 83 deletions(-) delete mode 100644 dockers/docker-config-engine-bookworm/00-load-omprog.conf delete mode 100644 dockers/docker-config-engine-bullseye/00-load-omprog.conf rename dockers/{docker-fpm-frr/events_info.json => docker-eventd/bgp_events_info.json} (100%) rename dockers/{docker-fpm-frr => docker-eventd}/bgp_regex.json (100%) rename {files/build_templates => dockers/docker-eventd}/bgpd_regex.json (100%) rename dockers/{docker-dhcp-relay/events_info.json => docker-eventd/dhcp_relay_events_info.json} (100%) rename dockers/{docker-dhcp-relay => docker-eventd}/dhcp_relay_regex.json (100%) rename {files/build_templates => dockers/docker-eventd}/dockerd_regex.json (100%) rename files/build_templates/events_info.json => dockers/docker-eventd/host_events_info.json (87%) rename {files/build_templates => dockers/docker-eventd}/kernel_regex.json (100%) rename {files/build_templates => dockers/docker-eventd}/monit_regex.json (100%) rename {files/build_templates => dockers/docker-eventd}/seu_regex.json (100%) rename dockers/{docker-orchagent/events_info.json => docker-eventd/swss_events_info.json} (100%) rename dockers/{docker-orchagent => docker-eventd}/swss_regex.json (100%) rename {files/build_templates => dockers/docker-eventd}/syncd_events_info.json (100%) rename {files/build_templates => dockers/docker-eventd}/syncd_regex.json (100%) rename {files/build_templates => dockers/docker-eventd}/systemd_regex.json (100%) delete mode 100644 files/build_templates/sshd_regex.json delete mode 100644 files/build_templates/zebra_regex.json diff --git a/dockers/docker-config-engine-bookworm/00-load-omprog.conf b/dockers/docker-config-engine-bookworm/00-load-omprog.conf deleted file mode 100644 index f59297370e7..00000000000 --- a/dockers/docker-config-engine-bookworm/00-load-omprog.conf +++ /dev/null @@ -1 +0,0 @@ -$ModLoad omprog diff --git a/dockers/docker-config-engine-bookworm/Dockerfile.j2 b/dockers/docker-config-engine-bookworm/Dockerfile.j2 index f31f996aba9..c7c1d9cdc82 100644 --- a/dockers/docker-config-engine-bookworm/Dockerfile.j2 +++ b/dockers/docker-config-engine-bookworm/Dockerfile.j2 @@ -47,7 +47,6 @@ RUN pip3 install redis==5.0.1 COPY ["files/swss_vars.j2", "/usr/share/sonic/templates/"] COPY ["files/readiness_probe.sh", "/usr/bin/"] COPY ["files/container_startup.py", "/usr/share/sonic/scripts/"] -COPY ["00-load-omprog.conf", "/etc/rsyslog.d/"] ## Clean up RUN apt-get purge -y \ diff --git a/dockers/docker-config-engine-bullseye/00-load-omprog.conf b/dockers/docker-config-engine-bullseye/00-load-omprog.conf deleted file mode 100644 index f59297370e7..00000000000 --- a/dockers/docker-config-engine-bullseye/00-load-omprog.conf +++ /dev/null @@ -1 +0,0 @@ -$ModLoad omprog diff --git a/dockers/docker-config-engine-bullseye/Dockerfile.j2 b/dockers/docker-config-engine-bullseye/Dockerfile.j2 index 4d0345c4b5b..700af660a91 100644 --- a/dockers/docker-config-engine-bullseye/Dockerfile.j2 +++ b/dockers/docker-config-engine-bullseye/Dockerfile.j2 @@ -50,7 +50,6 @@ RUN pip3 install redis==4.5.4 COPY ["files/swss_vars.j2", "/usr/share/sonic/templates/"] COPY ["files/readiness_probe.sh", "/usr/bin/"] COPY ["files/container_startup.py", "/usr/share/sonic/scripts/"] -COPY ["00-load-omprog.conf", "/etc/rsyslog.d/"] ## Clean up RUN apt-get purge -y \ diff --git a/dockers/docker-dhcp-relay/Dockerfile.j2 b/dockers/docker-dhcp-relay/Dockerfile.j2 index 5b0dc82c314..40e65381eac 100644 --- a/dockers/docker-dhcp-relay/Dockerfile.j2 +++ b/dockers/docker-dhcp-relay/Dockerfile.j2 @@ -50,14 +50,4 @@ COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] COPY ["cli", "/cli/"] -{% if include_system_eventd == "y" and build_reduce_image_size != "y" %} -# Copy regex json and rsyslog_plugin.conf file into rsyslog.d -COPY ["*.json", "/etc/rsyslog.d/"] -COPY ["files/rsyslog_plugin.conf.j2", "/etc/rsyslog.d/"] -# Create dhcp_relay_regex.conf -RUN j2 -f json /etc/rsyslog.d/rsyslog_plugin.conf.j2 /etc/rsyslog.d/events_info.json > /etc/rsyslog.d/dhcp_relay_events.conf -RUN rm -f /etc/rsyslog.d/rsyslog_plugin.conf.j2 -RUN rm -f /etc/rsyslog.d/events_info.json -{% endif %} - ENTRYPOINT ["/usr/bin/docker_init.sh"] diff --git a/dockers/docker-eventd/Dockerfile.j2 b/dockers/docker-eventd/Dockerfile.j2 index adf7fbfe6d2..8e2f905f786 100644 --- a/dockers/docker-eventd/Dockerfile.j2 +++ b/dockers/docker-eventd/Dockerfile.j2 @@ -28,9 +28,27 @@ RUN apt-get clean -y && \ apt-get autoremove -y && \ rm -rf /debs +RUN mkdir -p /etc/rsyslog.d/rsyslog_plugin_conf + COPY ["start.sh", "/usr/bin/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] +COPY ["*.json", "/etc/rsyslog.d/rsyslog_plugin_conf/"] +COPY ["files/rsyslog_plugin.conf.j2", "/etc/rsyslog.d/rsyslog_plugin_conf/"] + +RUN j2 -f json /etc/rsyslog.d/rsyslog_plugin_conf/rsyslog_plugin.conf.j2 /etc/rsyslog.d/rsyslog_plugin_conf/host_events_info.json > /etc/rsyslog.d/rsyslog_plugin_conf/host_events.conf +RUN j2 -f json /etc/rsyslog.d/rsyslog_plugin_conf/rsyslog_plugin.conf.j2 /etc/rsyslog.d/rsyslog_plugin_conf/bgp_events_info.json > /etc/rsyslog.d/rsyslog_plugin_conf/bgp_events.conf +RUN j2 -f json /etc/rsyslog.d/rsyslog_plugin_conf/rsyslog_plugin.conf.j2 /etc/rsyslog.d/rsyslog_plugin_conf/dhcp_relay_events_info.json > /etc/rsyslog.d/rsyslog_plugin_conf/dhcp_relay_events.conf +RUN j2 -f json /etc/rsyslog.d/rsyslog_plugin_conf/rsyslog_plugin.conf.j2 /etc/rsyslog.d/rsyslog_plugin_conf/swss_events_info.json > /etc/rsyslog.d/rsyslog_plugin_conf/swss_events.conf +RUN j2 -f json /etc/rsyslog.d/rsyslog_plugin_conf/rsyslog_plugin.conf.j2 /etc/rsyslog.d/rsyslog_plugin_conf/syncd_events_info.json > /etc/rsyslog.d/rsyslog_plugin_conf/syncd_events.conf + + +RUN rm -f /etc/rsyslog.d/rsyslog_plugin_conf/rsyslog_plugin.conf.j2 +RUN rm -f /etc/rsyslog.d/rsyslog_plugin_conf/host_events_info.json +RUN rm -f /etc/rsyslog.d/rsyslog_plugin_conf/bgp_events_info.json +RUN rm -f /etc/rsyslog.d/rsyslog_plugin_conf/dhcp_relay_events_info.json +RUN rm -f /etc/rsyslog.d/rsyslog_plugin_conf/swss_events_info.json +RUN rm -f /etc/rsyslog.d/rsyslog_plugin_conf/syncd_events_info.json ENTRYPOINT ["/usr/local/bin/supervisord"] diff --git a/dockers/docker-fpm-frr/events_info.json b/dockers/docker-eventd/bgp_events_info.json similarity index 100% rename from dockers/docker-fpm-frr/events_info.json rename to dockers/docker-eventd/bgp_events_info.json diff --git a/dockers/docker-fpm-frr/bgp_regex.json b/dockers/docker-eventd/bgp_regex.json similarity index 100% rename from dockers/docker-fpm-frr/bgp_regex.json rename to dockers/docker-eventd/bgp_regex.json diff --git a/files/build_templates/bgpd_regex.json b/dockers/docker-eventd/bgpd_regex.json similarity index 100% rename from files/build_templates/bgpd_regex.json rename to dockers/docker-eventd/bgpd_regex.json diff --git a/dockers/docker-dhcp-relay/events_info.json b/dockers/docker-eventd/dhcp_relay_events_info.json similarity index 100% rename from dockers/docker-dhcp-relay/events_info.json rename to dockers/docker-eventd/dhcp_relay_events_info.json diff --git a/dockers/docker-dhcp-relay/dhcp_relay_regex.json b/dockers/docker-eventd/dhcp_relay_regex.json similarity index 100% rename from dockers/docker-dhcp-relay/dhcp_relay_regex.json rename to dockers/docker-eventd/dhcp_relay_regex.json diff --git a/files/build_templates/dockerd_regex.json b/dockers/docker-eventd/dockerd_regex.json similarity index 100% rename from files/build_templates/dockerd_regex.json rename to dockers/docker-eventd/dockerd_regex.json diff --git a/files/build_templates/events_info.json b/dockers/docker-eventd/host_events_info.json similarity index 87% rename from files/build_templates/events_info.json rename to dockers/docker-eventd/host_events_info.json index e997a6a5352..4e39e5bbf88 100644 --- a/files/build_templates/events_info.json +++ b/dockers/docker-eventd/host_events_info.json @@ -5,10 +5,6 @@ "name": "monit", "parse_json": "monit_regex.json" }, - { - "name": "sshd", - "parse_json": "sshd_regex.json" - }, { "name": "systemd", "parse_json": "systemd_regex.json" diff --git a/files/build_templates/kernel_regex.json b/dockers/docker-eventd/kernel_regex.json similarity index 100% rename from files/build_templates/kernel_regex.json rename to dockers/docker-eventd/kernel_regex.json diff --git a/files/build_templates/monit_regex.json b/dockers/docker-eventd/monit_regex.json similarity index 100% rename from files/build_templates/monit_regex.json rename to dockers/docker-eventd/monit_regex.json diff --git a/files/build_templates/seu_regex.json b/dockers/docker-eventd/seu_regex.json similarity index 100% rename from files/build_templates/seu_regex.json rename to dockers/docker-eventd/seu_regex.json diff --git a/dockers/docker-eventd/start.sh b/dockers/docker-eventd/start.sh index 60cd6a00aec..afc72031c30 100755 --- a/dockers/docker-eventd/start.sh +++ b/dockers/docker-eventd/start.sh @@ -3,4 +3,3 @@ if [ "${RUNTIME_OWNER}" == "" ]; then RUNTIME_OWNER="kube" fi - diff --git a/dockers/docker-orchagent/events_info.json b/dockers/docker-eventd/swss_events_info.json similarity index 100% rename from dockers/docker-orchagent/events_info.json rename to dockers/docker-eventd/swss_events_info.json diff --git a/dockers/docker-orchagent/swss_regex.json b/dockers/docker-eventd/swss_regex.json similarity index 100% rename from dockers/docker-orchagent/swss_regex.json rename to dockers/docker-eventd/swss_regex.json diff --git a/files/build_templates/syncd_events_info.json b/dockers/docker-eventd/syncd_events_info.json similarity index 100% rename from files/build_templates/syncd_events_info.json rename to dockers/docker-eventd/syncd_events_info.json diff --git a/files/build_templates/syncd_regex.json b/dockers/docker-eventd/syncd_regex.json similarity index 100% rename from files/build_templates/syncd_regex.json rename to dockers/docker-eventd/syncd_regex.json diff --git a/files/build_templates/systemd_regex.json b/dockers/docker-eventd/systemd_regex.json similarity index 100% rename from files/build_templates/systemd_regex.json rename to dockers/docker-eventd/systemd_regex.json diff --git a/dockers/docker-fpm-frr/Dockerfile.j2 b/dockers/docker-fpm-frr/Dockerfile.j2 index 98c4593811f..7a4a7f9bb55 100644 --- a/dockers/docker-fpm-frr/Dockerfile.j2 +++ b/dockers/docker-fpm-frr/Dockerfile.j2 @@ -59,12 +59,4 @@ RUN chmod a+x /usr/bin/TSA && \ chmod a+x /usr/bin/TSC && \ chmod a+x /usr/bin/zsocket.sh -{% if include_system_eventd == "y" and build_reduce_image_size != "y" %} -COPY ["*.json", "/etc/rsyslog.d/"] -COPY ["files/rsyslog_plugin.conf.j2", "/etc/rsyslog.d/"] -RUN j2 -f json /etc/rsyslog.d/rsyslog_plugin.conf.j2 /etc/rsyslog.d/events_info.json > /etc/rsyslog.d/bgp_events.conf -RUN rm -f /etc/rsyslog.d/rsyslog_plugin.conf.j2 -RUN rm -f /etc/rsyslog.d/events_info.json -{% endif %} - ENTRYPOINT ["/usr/bin/docker_init.sh"] diff --git a/dockers/docker-orchagent/Dockerfile.j2 b/dockers/docker-orchagent/Dockerfile.j2 index fb90b4f09c2..b03f13e749c 100755 --- a/dockers/docker-orchagent/Dockerfile.j2 +++ b/dockers/docker-orchagent/Dockerfile.j2 @@ -80,14 +80,4 @@ RUN sonic-cfggen -a "{\"ENABLE_ASAN\":\"{{ENABLE_ASAN}}\"}" -t /usr/share/sonic/ RUN rm -f /usr/share/sonic/templates/docker-init.j2 RUN chmod 755 /usr/bin/docker-init.sh -{% if include_system_eventd == "y" and build_reduce_image_size != "y" %} -# Copy all regex json files and rsyslog_plugin.conf to rsyslog.d -COPY ["*.json", "/etc/rsyslog.d/"] -COPY ["files/rsyslog_plugin.conf.j2", "/etc/rsyslog.d/"] -# Create swss rsyslog_plugin conf file -RUN j2 -f json /etc/rsyslog.d/rsyslog_plugin.conf.j2 /etc/rsyslog.d/events_info.json > /etc/rsyslog.d/swss_events.conf -RUN rm -f /etc/rsyslog.d/rsyslog_plugin.conf.j2 -RUN rm -f /etc/rsyslog.d/events_info.json -{% endif %} - ENTRYPOINT ["/usr/bin/docker-init.sh"] diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index b4204ce3f31..8377b5346a6 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -339,6 +339,13 @@ function postStartAction() docker cp $PSENSOR pmon:/usr/bin/ fi fi +{%- elif docker_container_name == "eventd" %} + HOST_RSYSLOG_PLUGIN_CONF_FILE="/etc/rsyslog.d/host_events.conf" + if [ ! -f ${HOST_RSYSLOG_PLUGIN_CONF_FILE} ]; then + for f in $(docker exec -i eventd ls /etc/rsyslog.d/rsyslog_plugin_conf); do docker cp eventd:/etc/rsyslog.d/rsyslog_plugin_conf/$f /etc/rsyslog.d/; done + systemctl reset-failed rsyslog + systemctl restart rsyslog + fi {%- else %} : # nothing {%- endif %} diff --git a/files/build_templates/eventd.service.j2 b/files/build_templates/eventd.service.j2 index 95e2805f7ca..19a02460e9f 100644 --- a/files/build_templates/eventd.service.j2 +++ b/files/build_templates/eventd.service.j2 @@ -1,7 +1,7 @@ [Unit] Description=EVENTD container Requires=config-setup.service -After=config-setup.service +After=rsyslog-config.service BindsTo=sonic.target After=sonic.target StartLimitIntervalSec=1200 diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index ab4a3084d33..f071df8c46a 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -367,22 +367,6 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/sonic-db-cli_*.deb || \ # Install sonic-rsyslog-plugin sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/sonic-rsyslog-plugin_*.deb || \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f - -# Generate host conf for rsyslog_plugin -j2 -f json $BUILD_TEMPLATES/rsyslog_plugin.conf.j2 $BUILD_TEMPLATES/events_info.json | sudo tee $FILESYSTEM_ROOT_ETC/rsyslog.d/host_events.conf -sudo cp $BUILD_TEMPLATES/monit_regex.json $FILESYSTEM_ROOT_ETC/rsyslog.d/ -sudo cp $BUILD_TEMPLATES/sshd_regex.json $FILESYSTEM_ROOT_ETC/rsyslog.d/ -sudo cp $BUILD_TEMPLATES/systemd_regex.json $FILESYSTEM_ROOT_ETC/rsyslog.d/ -sudo cp $BUILD_TEMPLATES/kernel_regex.json $FILESYSTEM_ROOT_ETC/rsyslog.d/ -sudo cp $BUILD_TEMPLATES/dockerd_regex.json $FILESYSTEM_ROOT_ETC/rsyslog.d/ -sudo cp $BUILD_TEMPLATES/seu_regex.json $FILESYSTEM_ROOT_ETC/rsyslog.d/ -sudo cp $BUILD_TEMPLATES/zebra_regex.json $FILESYSTEM_ROOT_ETC/rsyslog.d/ -sudo cp $BUILD_TEMPLATES/bgpd_regex.json $FILESYSTEM_ROOT_ETC/rsyslog.d/ - - -j2 -f json $BUILD_TEMPLATES/rsyslog_plugin.conf.j2 $BUILD_TEMPLATES/syncd_events_info.json | sudo tee $FILESYSTEM_ROOT_ETC/rsyslog.d/syncd_events.conf -sudo cp $BUILD_TEMPLATES/syncd_regex.json $FILESYSTEM_ROOT_ETC/rsyslog.d/ - {% endif %} # Install custom-built monit package and SONiC configuration files diff --git a/files/build_templates/sshd_regex.json b/files/build_templates/sshd_regex.json deleted file mode 100644 index dd664bd1ea7..00000000000 --- a/files/build_templates/sshd_regex.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - { - "tag": "event-sshd", - "regex": "auth fail: Password Incorrect. user:.([a-zA-Z0-9-_]*)", - "params": [ "username" ] - } -] diff --git a/files/build_templates/zebra_regex.json b/files/build_templates/zebra_regex.json deleted file mode 100644 index bdbd68ec464..00000000000 --- a/files/build_templates/zebra_regex.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - { - "tag": "zebra-no-buff", - "regex": "No buffer space available", - "params": [] - } -] diff --git a/files/image_config/rsyslog/rsyslog.d/00-sonic.conf.j2 b/files/image_config/rsyslog/rsyslog.d/00-sonic.conf.j2 index a5b4689741d..1aa223db219 100644 --- a/files/image_config/rsyslog/rsyslog.d/00-sonic.conf.j2 +++ b/files/image_config/rsyslog/rsyslog.d/00-sonic.conf.j2 @@ -13,12 +13,6 @@ $ModLoad omprog if re_match($programname, "bgp[0-9]*#(frr|zebra|staticd|watchfrr)") then { /var/log/frr/zebra.log - {% if include_system_eventd == "y" and build_reduce_image_size != "y" %} - action(type="omprog" - binary="/usr/bin/rsyslog_plugin -r /etc/rsyslog.d/zebra_regex.json -m sonic-events-bgp" - output="/var/log/rsyslog_plugin.log" - template="prog_msg") - {% endif %} stop } diff --git a/rules/docker-dhcp-relay.mk b/rules/docker-dhcp-relay.mk index c8aa011d43f..0ea0fe3db06 100644 --- a/rules/docker-dhcp-relay.mk +++ b/rules/docker-dhcp-relay.mk @@ -6,10 +6,10 @@ DOCKER_DHCP_RELAY_DBG = $(DOCKER_DHCP_RELAY_STEM)-$(DBG_IMAGE_MARK).gz $(DOCKER_DHCP_RELAY)_PATH = $(DOCKERS_PATH)/$(DOCKER_DHCP_RELAY_STEM) -$(DOCKER_DHCP_RELAY)_DEPENDS += $(ISC_DHCP_RELAY) $(SONIC_DHCPMON) $(SONIC_DHCPRELAY) $(LIBSWSSCOMMON) $(SONIC_RSYSLOG_PLUGIN) +$(DOCKER_DHCP_RELAY)_DEPENDS += $(ISC_DHCP_RELAY) $(SONIC_DHCPMON) $(SONIC_DHCPRELAY) $(LIBSWSSCOMMON) $(DOCKER_DHCP_RELAY)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BOOKWORM)_DBG_DEPENDS) -$(DOCKER_DHCP_RELAY)_DBG_DEPENDS += $(ISC_DHCP_RELAY_DBG) $(SONIC_DHCPRELAY_DBG) $(SONIC_DHCPMON_DBG) $(SONIC_RSYSLOG_PLUGIN) +$(DOCKER_DHCP_RELAY)_DBG_DEPENDS += $(ISC_DHCP_RELAY_DBG) $(SONIC_DHCPRELAY_DBG) $(SONIC_DHCPMON_DBG) $(DOCKER_DHCP_RELAY)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BOOKWORM)_DBG_IMAGE_PACKAGES) diff --git a/rules/docker-dhcp-server.mk b/rules/docker-dhcp-server.mk index 530fdd9a411..83ee3a47d29 100644 --- a/rules/docker-dhcp-server.mk +++ b/rules/docker-dhcp-server.mk @@ -6,7 +6,7 @@ DOCKER_DHCP_SERVER_DBG = $(DOCKER_DHCP_SERVER_STEM)-$(DBG_IMAGE_MARK).gz $(DOCKER_DHCP_SERVER)_PATH = $(DOCKERS_PATH)/$(DOCKER_DHCP_SERVER_STEM) -$(DOCKER_DHCP_SERVER)_DEPENDS = $(LIBSWSSCOMMON) $(SONIC_RSYSLOG_PLUGIN) +$(DOCKER_DHCP_SERVER)_DEPENDS = $(LIBSWSSCOMMON) $(DOCKER_DHCP_SERVER)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BOOKWORM)_DBG_DEPENDS) $(DOCKER_DHCP_SERVER)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BOOKWORM)_DBG_IMAGE_PACKAGES) diff --git a/rules/docker-eventd.mk b/rules/docker-eventd.mk index 510dc338af0..7b322fe065a 100644 --- a/rules/docker-eventd.mk +++ b/rules/docker-eventd.mk @@ -35,7 +35,7 @@ $(DOCKER_EVENTD)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) $(DOCKER_EVENTD)_CONTAINER_NAME = eventd $(DOCKER_EVENTD)_RUN_OPT += -t $(DOCKER_EVENTD)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro -$(DOCKER_EVENTD)_RUN_OPT += -v /etc/localtime:/etc/localtime:ro +$(DOCKER_EVENTD)_RUN_OPT += -v /etc/localtime:/etc/localtime:ro SONIC_BOOKWORM_DOCKERS += $(DOCKER_EVENTD) SONIC_BOOKWORM_DBG_DOCKERS += $(DOCKER_EVENTD_DBG) diff --git a/rules/docker-fpm-frr.mk b/rules/docker-fpm-frr.mk index edfa17f5eb6..e81105caaec 100644 --- a/rules/docker-fpm-frr.mk +++ b/rules/docker-fpm-frr.mk @@ -7,10 +7,10 @@ DOCKER_FPM_FRR_DBG = $(DOCKER_FPM_FRR_STEM)-$(DBG_IMAGE_MARK).gz $(DOCKER_FPM_FRR)_PATH = $(DOCKERS_PATH)/$(DOCKER_FPM_FRR_STEM) $(DOCKER_FPM_FRR)_PYTHON_WHEELS += $(SONIC_BGPCFGD) $(SONIC_FRR_MGMT_FRAMEWORK) -$(DOCKER_FPM_FRR)_DEPENDS += $(FRR) $(FRR_SNMP) $(SWSS) $(LIBYANG2) $(SONIC_RSYSLOG_PLUGIN) +$(DOCKER_FPM_FRR)_DEPENDS += $(FRR) $(FRR_SNMP) $(SWSS) $(LIBYANG2) $(DOCKER_FPM_FRR)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BOOKWORM)_DBG_DEPENDS) $(DOCKER_FPM_FRR)_DBG_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG) \ - $(FRR_DBG) $(FRR_SNMP_DBG) $(LIBYANG2_DBG) $(SONIC_RSYSLOG_PLUGIN) + $(FRR_DBG) $(FRR_SNMP_DBG) $(LIBYANG2_DBG) $(DOCKER_FPM_FRR)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BOOKWORM)_DBG_IMAGE_PACKAGES) diff --git a/rules/docker-orchagent.mk b/rules/docker-orchagent.mk index 2094a6ee374..dc33adb3854 100644 --- a/rules/docker-orchagent.mk +++ b/rules/docker-orchagent.mk @@ -4,7 +4,7 @@ DOCKER_ORCHAGENT_STEM = docker-orchagent DOCKER_ORCHAGENT = $(DOCKER_ORCHAGENT_STEM).gz DOCKER_ORCHAGENT_DBG = $(DOCKER_ORCHAGENT_STEM)-$(DBG_IMAGE_MARK).gz -$(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS) $(SONIC_RSYSLOG_PLUGIN) $(LIB_SONIC_DASH_API) +$(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS) $(LIB_SONIC_DASH_API) ifeq ($(ENABLE_ASAN), y) $(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS_DBG) @@ -13,8 +13,7 @@ endif $(DOCKER_ORCHAGENT)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BOOKWORM)_DBG_DEPENDS) $(DOCKER_ORCHAGENT)_DBG_DEPENDS += $(SWSS_DBG) \ $(LIBSWSSCOMMON_DBG) \ - $(LIBSAIREDIS_DBG) \ - $(SONIC_RSYSLOG_PLUGIN) + $(LIBSAIREDIS_DBG) $(DOCKER_ORCHAGENT)_PYTHON_WHEELS += $(SCAPY) $(DOCKER_ORCHAGENT)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BOOKWORM)_DBG_IMAGE_PACKAGES) From 0d835e0186e8b53aed22ce2fffddcbe820355c72 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Wed, 12 Feb 2025 16:01:28 +0800 Subject: [PATCH 2/9] [submodule] Update submodule sonic-gnmi to the latest HEAD automatically (#21713) #### Why I did it src/sonic-gnmi ``` * 450bcdd - (HEAD -> master, origin/master, origin/HEAD) GNOI Implementation of OS.Activate (#351) (3 hours ago) [Dawei Huang] * 795f7ea - Merge pull request #172 from faraazbrcm/rpc_from_proto (5 hours ago) [anand-kumar-subramanian] * 4b2144a - Merge branch 'master' into rpc_from_proto (2 days ago) [Mohammed Faraaz] * 913c789 - Support for YANG RPCs (11 months ago) [Mohammed Faraaz] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-gnmi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-gnmi b/src/sonic-gnmi index 1425d56c3cf..450bcdd8dac 160000 --- a/src/sonic-gnmi +++ b/src/sonic-gnmi @@ -1 +1 @@ -Subproject commit 1425d56c3cfeadfffed1b9965cb73a9090d077fe +Subproject commit 450bcdd8dacdca214c8226d25e49a7e0821a3295 From b25d4c6da67a3e41a368a2e758c3f2ce98c2f057 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Wed, 12 Feb 2025 19:04:16 +0800 Subject: [PATCH 3/9] [submodule] Update submodule sonic-swss-common to the latest HEAD automatically (#21702) #### Why I did it src/sonic-swss-common ``` * eb30bb7 - (HEAD -> master, origin/master, origin/HEAD) Add swss::Logger to c-api (#969) (33 hours ago) [yue-fred-gao] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-swss-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss-common b/src/sonic-swss-common index 1593cc64305..eb30bb72eff 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit 1593cc64305c3df68f504c1555b78f5e1a483e62 +Subproject commit eb30bb72effea2fa184cb9984b395e92b44d4eb6 From 6e37b4bae186e647f957153edbf10133718ac203 Mon Sep 17 00:00:00 2001 From: Feng-msft Date: Wed, 12 Feb 2025 22:41:43 +1100 Subject: [PATCH 4/9] create bmp container per_namespace for multi-asic (#21712) Why I did it To support multi-asic platform, create bmp container per_namespace Work item tracking Microsoft ADO (number only):27588904 How I did it move bmp.service from single into per namespace --- files/build_templates/bmp.service.j2 | 16 ---------------- .../build_templates/per_namespace/bmp.service.j2 | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) delete mode 100644 files/build_templates/bmp.service.j2 create mode 100644 files/build_templates/per_namespace/bmp.service.j2 diff --git a/files/build_templates/bmp.service.j2 b/files/build_templates/bmp.service.j2 deleted file mode 100644 index 72ab295d04d..00000000000 --- a/files/build_templates/bmp.service.j2 +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=BMP container -Requires=database.service -After=database.service -Before=ntp-config.service -BindsTo=sonic.target -After=sonic.target -StartLimitIntervalSec=1200 -StartLimitBurst=3 - -[Service] -User={{ sonicadmin_user }} -ExecStartPre=/usr/local/bin/{{docker_container_name}}.sh start -ExecStart=/usr/local/bin/{{docker_container_name}}.sh wait -ExecStop=/usr/local/bin/{{docker_container_name}}.sh stop -RestartSec=30 diff --git a/files/build_templates/per_namespace/bmp.service.j2 b/files/build_templates/per_namespace/bmp.service.j2 new file mode 100644 index 00000000000..f493deb8d8f --- /dev/null +++ b/files/build_templates/per_namespace/bmp.service.j2 @@ -0,0 +1,16 @@ +[Unit] +Description=BMP container +Requires=database{% if multi_instance == 'true' %}@%i{% endif %}.service +After=database{% if multi_instance == 'true' %}@%i{% endif %}.service +Before=ntp-config.service +BindsTo=sonic.target +After=sonic.target +StartLimitIntervalSec=1200 +StartLimitBurst=3 + +[Service] +User={{ sonicadmin_user }} +ExecStartPre=/usr/local/bin/{{docker_container_name}}.sh start{% if multi_instance == 'true' %} %i{% endif %} +ExecStart=/usr/local/bin/{{docker_container_name}}.sh wait{% if multi_instance == 'true' %} %i{% endif %} +ExecStop=/usr/local/bin/{{docker_container_name}}.sh stop{% if multi_instance == 'true' %} %i{% endif %} +RestartSec=30 From 20cfff0abdad51f8a83c21f66f7ec512b2d4f8ce Mon Sep 17 00:00:00 2001 From: Chris <156943338+ccroy-arista@users.noreply.github.com> Date: Wed, 12 Feb 2025 15:05:03 -0800 Subject: [PATCH 5/9] sonic-buildimage: ignore missing hwsku dict intfs (#20618) sonic-buildimage: ignore missing hwsku dict intfs --- src/sonic-config-engine/portconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-config-engine/portconfig.py b/src/sonic-config-engine/portconfig.py index b2550b12125..3d2bc55d023 100644 --- a/src/sonic-config-engine/portconfig.py +++ b/src/sonic-config-engine/portconfig.py @@ -417,7 +417,7 @@ def parse_platform_json_file(hwsku_json_file, platform_json_file): for intf in port_dict[INTF_KEY]: if intf not in hwsku_dict[INTF_KEY]: - raise Exception("{} is not available in hwsku_dict".format(intf)) + continue # take default_brkout_mode from hwsku.json brkout_mode = hwsku_dict[INTF_KEY][intf][BRKOUT_MODE] From d742902835c8b4c63180dfb767acb200c440ee70 Mon Sep 17 00:00:00 2001 From: Lawrence Lee Date: Wed, 12 Feb 2025 15:14:04 -0800 Subject: [PATCH 6/9] Checkout sonic-dash-api submodule when building sonic-mgmt docker images (#21714) Checkout sonic-dash-api submodule when building sonic-mgmt docker images --- .azure-pipelines/docker-sonic-mgmt-py3-only.yml | 2 +- .azure-pipelines/docker-sonic-mgmt.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.azure-pipelines/docker-sonic-mgmt-py3-only.yml b/.azure-pipelines/docker-sonic-mgmt-py3-only.yml index 8019e957fdc..04f34b251f5 100644 --- a/.azure-pipelines/docker-sonic-mgmt-py3-only.yml +++ b/.azure-pipelines/docker-sonic-mgmt-py3-only.yml @@ -40,7 +40,7 @@ stages: clean: true - bash: | set -xe - git submodule update --init --recursive -- src/sonic-platform-daemons src/sonic-genl-packet src/sonic-sairedis src/ptf src/sonic-device-data + git submodule update --init --recursive -- src/sonic-platform-daemons src/sonic-genl-packet src/sonic-sairedis src/ptf src/sonic-device-data src/sonic-dash-api make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y configure PLATFORM=generic make -f Makefile.work BLDENV=bullseye SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y LEGACY_SONIC_MGMT_DOCKER=n target/docker-sonic-mgmt.gz diff --git a/.azure-pipelines/docker-sonic-mgmt.yml b/.azure-pipelines/docker-sonic-mgmt.yml index 924e4230df5..77ebbef4b2a 100644 --- a/.azure-pipelines/docker-sonic-mgmt.yml +++ b/.azure-pipelines/docker-sonic-mgmt.yml @@ -40,7 +40,7 @@ stages: clean: true - bash: | set -xe - git submodule update --init --recursive -- src/sonic-platform-daemons src/sonic-genl-packet src/sonic-sairedis src/ptf src/sonic-device-data + git submodule update --init --recursive -- src/sonic-platform-daemons src/sonic-genl-packet src/sonic-sairedis src/ptf src/sonic-device-data src/sonic-dash-api make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y configure PLATFORM=generic make -f Makefile.work BLDENV=bullseye SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y LEGACY_SONIC_MGMT_DOCKER=y target/docker-sonic-mgmt.gz From 360d425bff0af951206d0f4474fc7def3aa8d728 Mon Sep 17 00:00:00 2001 From: Stephen Sun <5379172+stephenxs@users.noreply.github.com> Date: Thu, 13 Feb 2025 10:58:45 +0900 Subject: [PATCH 7/9] Support yang model for bulk size per prefix (#21266) Why I did it Support yang model for bulk size per counter HLD: sonic-net/SONiC#1864 --- .../tests_config/flex_counter.json | 1 + .../yang-models/sonic-flex_counter.yang | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/flex_counter.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/flex_counter.json index cd39cd899c7..666e74b00b0 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/flex_counter.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/flex_counter.json @@ -163,6 +163,7 @@ "PORT": { "FLEX_COUNTER_STATUS": "enable", "BULK_CHUNK_SIZE": 100, + "BULK_CHUNK_SIZE_PER_PREFIX": "SAI_PORT_STAT_IF_OUT_QLEN:0;SAI_PORT_STAT_IF_IN_FEC:32", "POLL_INTERVAL": 1000 }, "PORT_BUFFER_DROP": { diff --git a/src/sonic-yang-models/yang-models/sonic-flex_counter.yang b/src/sonic-yang-models/yang-models/sonic-flex_counter.yang index 9f4a10feddb..2494fb5e164 100644 --- a/src/sonic-yang-models/yang-models/sonic-flex_counter.yang +++ b/src/sonic-yang-models/yang-models/sonic-flex_counter.yang @@ -47,6 +47,11 @@ module sonic-flex_counter { } } + typedef bulk_chunk_size_per_prefix { + type string; + description "Bulk chunk size per counter name prefix"; + } + description "FLEX_COUNTER_TABLE part of config_db.json"; /* below are in alphabetical order */ @@ -111,6 +116,9 @@ module sonic-flex_counter { leaf BULK_CHUNK_SIZE { type bulk_chunk_size; } + leaf BULK_CHUNK_SIZE_PER_PREFIX { + type bulk_chunk_size_per_prefix; + } } container PG_WATERMARK { @@ -127,6 +135,9 @@ module sonic-flex_counter { leaf BULK_CHUNK_SIZE { type bulk_chunk_size; } + leaf BULK_CHUNK_SIZE_PER_PREFIX { + type bulk_chunk_size_per_prefix; + } } container PORT { @@ -143,6 +154,9 @@ module sonic-flex_counter { leaf BULK_CHUNK_SIZE { type bulk_chunk_size; } + leaf BULK_CHUNK_SIZE_PER_PREFIX { + type bulk_chunk_size_per_prefix; + } } container PORT_RATES { @@ -169,6 +183,9 @@ module sonic-flex_counter { leaf BULK_CHUNK_SIZE { type bulk_chunk_size; } + leaf BULK_CHUNK_SIZE_PER_PREFIX { + type bulk_chunk_size_per_prefix; + } } container QUEUE { @@ -185,6 +202,9 @@ module sonic-flex_counter { leaf BULK_CHUNK_SIZE { type bulk_chunk_size; } + leaf BULK_CHUNK_SIZE_PER_PREFIX { + type bulk_chunk_size_per_prefix; + } } container QUEUE_WATERMARK { @@ -201,6 +221,9 @@ module sonic-flex_counter { leaf BULK_CHUNK_SIZE { type bulk_chunk_size; } + leaf BULK_CHUNK_SIZE_PER_PREFIX { + type bulk_chunk_size_per_prefix; + } } container RIF { From 5e8e658ada2429dd0e4289957ad61985c380fc4a Mon Sep 17 00:00:00 2001 From: "Marty Y. Lok" <76118573+mlok-nokia@users.noreply.github.com> Date: Fri, 14 Feb 2025 14:44:00 -0500 Subject: [PATCH 8/9] [Nokia][chassis] Update Nokia-IXR7250E chassis device data (#21703) -- No need to remove /sys/firmware/efi/efivars/dump* in the platf_reboot since pstore has handled it in 202405 branch Signed-off-by: mlok --- device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot | 2 +- device/nokia/x86_64-nokia_ixr7250e_sup-r0/platform_reboot | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot index 454a14c5ab7..982ef42cfa5 100755 --- a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot +++ b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot @@ -44,6 +44,6 @@ sleep 2 echo "w" > /dev/watchdog kick_date=`date -u` echo "last watchdog kick $kick_date" > /var/log/nokia-watchdog-last.log -rm -f /sys/firmware/efi/efivars/dump-* +# rm -f /sys/firmware/efi/efivars/dump-* sync exec /sbin/reboot $@ diff --git a/device/nokia/x86_64-nokia_ixr7250e_sup-r0/platform_reboot b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/platform_reboot index dc4f934339c..21e33c1fb92 100755 --- a/device/nokia/x86_64-nokia_ixr7250e_sup-r0/platform_reboot +++ b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/platform_reboot @@ -33,7 +33,7 @@ sleep 2 echo "w" > /dev/watchdog kick_date=`date -u` echo "last watchdog kick $kick_date" > /var/log/nokia-watchdog-last.log -rm -f /sys/firmware/efi/efivars/dump-* +# rm -f /sys/firmware/efi/efivars/dump-* echo "Shutdown midplane" ifconfig xe0 down sync From 715aa1713609724d2951719e0879fdb2472cc525 Mon Sep 17 00:00:00 2001 From: Vivek Reddy Date: Thu, 6 Feb 2025 14:01:06 +0000 Subject: [PATCH 9/9] Integrate HW-MGMT 7.0040.2108 Changes --- platform/mellanox/hw-management.mk | 2 +- platform/mellanox/hw-management/hw-mgmt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/mellanox/hw-management.mk b/platform/mellanox/hw-management.mk index df1d3914e00..0f81c51083f 100644 --- a/platform/mellanox/hw-management.mk +++ b/platform/mellanox/hw-management.mk @@ -17,7 +17,7 @@ # # Mellanox HW Management -MLNX_HW_MANAGEMENT_VERSION = 7.0040.2104 +MLNX_HW_MANAGEMENT_VERSION = 7.0040.2108 export MLNX_HW_MANAGEMENT_VERSION diff --git a/platform/mellanox/hw-management/hw-mgmt b/platform/mellanox/hw-management/hw-mgmt index 7051b52c03b..bef05ae7dc8 160000 --- a/platform/mellanox/hw-management/hw-mgmt +++ b/platform/mellanox/hw-management/hw-mgmt @@ -1 +1 @@ -Subproject commit 7051b52c03b884876345a663b46a1b9b11f4e45c +Subproject commit bef05ae7dc8cb807f95a2c123ab0b4dc123770f9