From aab70154a7f0e5982f322d491bbe254ce5a57a75 Mon Sep 17 00:00:00 2001 From: liuh-80 Date: Sun, 27 Apr 2025 06:16:57 +0000 Subject: [PATCH 1/4] Add Orchagent ZMQ table feature flag --- .../yang_model_tests/tests_config/device_metadata.json | 9 +++++++++ .../yang-models/sonic-device_metadata.yang | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json index 59a56d8a0c3..f2684d06135 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json @@ -669,5 +669,14 @@ } } } + }, + "DEVICE_METADATA_VALID_ORCH_ZMQ_TABLES": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "orch_zmq_tables": ["ROUTE_TABLE"] + } + } + } } } diff --git a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang index 0711a6e0f5d..8b5d478ced1 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -299,6 +299,11 @@ module sonic-device_metadata { type string; description "Set source of anchor route"; } + + leaf-list orch_zmq_tables { + type string; + description "Orchagent ZMQ enabled table list"; + } } /* end of container localhost */ } From 05edeada05119be390322679420827b7410f20ca Mon Sep 17 00:00:00 2001 From: liuh-80 Date: Mon, 28 Apr 2025 03:03:35 +0000 Subject: [PATCH 2/4] Improve config by comments --- dockers/docker-orchagent/docker-init.j2 | 1 + .../docker-orchagent/orch_zmq_tables.conf.j2 | 29 +++++++++++++++++++ rules/sonic-config.dep | 2 +- .../tests_config/device_metadata.json | 13 +++++++-- .../yang-models/sonic-device_metadata.yang | 13 +++++++-- 5 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 dockers/docker-orchagent/orch_zmq_tables.conf.j2 diff --git a/dockers/docker-orchagent/docker-init.j2 b/dockers/docker-orchagent/docker-init.j2 index 39e95c73332..2363551b082 100755 --- a/dockers/docker-orchagent/docker-init.j2 +++ b/dockers/docker-orchagent/docker-init.j2 @@ -11,6 +11,7 @@ CFGGEN_PARAMS=" \ -a "{\"ENABLE_ASAN\":\"{{ENABLE_ASAN}}\"}" \ {% endif %} -y /etc/sonic/constants.yml \ + -t /usr/share/sonic/templates/orch_zmq_tables.conf.j2,/etc/swss/orch_zmq_tables.conf \ -t /usr/share/sonic/templates/switch.json.j2,/etc/swss/config.d/switch.json \ -t /usr/share/sonic/templates/vxlan.json.j2,/etc/swss/config.d/vxlan.json \ -t /usr/share/sonic/templates/ipinip.json.j2,/etc/swss/config.d/ipinip.json \ diff --git a/dockers/docker-orchagent/orch_zmq_tables.conf.j2 b/dockers/docker-orchagent/orch_zmq_tables.conf.j2 new file mode 100644 index 00000000000..562aaab1b57 --- /dev/null +++ b/dockers/docker-orchagent/orch_zmq_tables.conf.j2 @@ -0,0 +1,29 @@ +{% if DEVICE_METADATA.localhost.orch_dash_zmq_enabled != "true" %} +DASH_VNET_TABLE +DASH_QOS_TABLE +DASH_ENI_TABLE +DASH_ACL_IN_TABLE +DASH_ACL_OUT_TABLE +DASH_ACL_GROUP_TABLE +DASH_ACL_RULE_TABLE +DASH_HA_SET_TABLE +DASH_HA_SCOPE_TABLE +DASH_PREFIX_TAG_TABLE +DASH_ROUTING_TYPE_TABLE +DASH_APPLIANCE_TABLE +DASH_ROUTE_TABLE +DASH_ROUTE_RULE_TABLE +DASH_VNET_MAPPING_TABLE +DASH_ENI_ROUTE_TABLE +DASH_ROUTE_GROUP_TABLE +DASH_TUNNEL_TABLE +DASH_PA_VALIDATION_TABLE +DASH_METER_POLICY_TABLE +DASH_METER_RULE_TABLE +DASH_ROUTING_APPLIANCE_TABLE +DASH_ENI_FORWARD_TABLE +{% endif %} +{% if DEVICE_METADATA.localhost.orch_route_zmq_enabled != "true" %} +ROUTE_TABLE +LABEL_ROUTE_TABLE +{% endif %} \ No newline at end of file diff --git a/rules/sonic-config.dep b/rules/sonic-config.dep index 2b8b98fcd42..52a9284560f 100644 --- a/rules/sonic-config.dep +++ b/rules/sonic-config.dep @@ -4,7 +4,7 @@ SPATH := $($(SONIC_CONFIG_ENGINE_PY3)_SRC_PATH) DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/sonic-config.mk rules/sonic-config.dep DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) DEP_FILES += $(shell git ls-files $(SPATH)) -DEP_FILES += files/image_config/interfaces/interfaces.j2 dockers/docker-orchagent/ports.json.j2 dockers/docker-dhcp-relay/wait_for_intf.sh.j2 dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 dockers/docker-lldp/lldpd.conf.j2 dockers/docker-orchagent/ipinip.json.j2 $(shell find device -type f | sort) files/build_templates/qos_config.j2 dockers/docker-orchagent/switch.json.j2 dockers/docker-orchagent/vxlan.json.j2 files/image_config/constants/constants.yml +DEP_FILES += files/image_config/interfaces/interfaces.j2 dockers/docker-orchagent/ports.json.j2 dockers/docker-dhcp-relay/wait_for_intf.sh.j2 dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 dockers/docker-lldp/lldpd.conf.j2 dockers/docker-orchagent/ipinip.json.j2 $(shell find device -type f | sort) files/build_templates/qos_config.j2 dockers/docker-orchagent/switch.json.j2 dockers/docker-orchagent/vxlan.json.j2 files/image_config/constants/constants.yml dockers/docker-orchagent/orch_zmq_tables.conf.j2 ifeq ($(ENABLE_PY2_MODULES), y) $(SONIC_CONFIG_ENGINE_PY2)_CACHE_MODE := GIT_CONTENT_SHA diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json index f2684d06135..765673ee749 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json @@ -670,11 +670,20 @@ } } }, - "DEVICE_METADATA_VALID_ORCH_ZMQ_TABLES": { + "DEVICE_METADATA_VALID_ORCH_DASH_ZMQ": { "sonic-device_metadata:sonic-device_metadata": { "sonic-device_metadata:DEVICE_METADATA": { "sonic-device_metadata:localhost": { - "orch_zmq_tables": ["ROUTE_TABLE"] + "orch_dash_zmq_enabled": true + } + } + } + }, + "DEVICE_METADATA_VALID_ORCH_ROUTE_ZMQ": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "orch_route_zmq_enabled": true } } } diff --git a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang index 8b5d478ced1..8946d5f1530 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -300,9 +300,16 @@ module sonic-device_metadata { description "Set source of anchor route"; } - leaf-list orch_zmq_tables { - type string; - description "Orchagent ZMQ enabled table list"; + leaf orch_dash_zmq_enabled { + type boolean; + description "Enable ZMQ feature on APPL_DB DASH tables."; + default "true"; + } + + leaf orch_route_zmq_enabled { + type boolean; + description "Enable ZMQ feature on APPL_DB ROUTE tables."; + default "false"; } } /* end of container localhost */ From 1d93f00e6a04549f2474752d9e967705256da29b Mon Sep 17 00:00:00 2001 From: Hua Liu <58683130+liuh-80@users.noreply.github.com> Date: Mon, 28 Apr 2025 11:05:39 +0800 Subject: [PATCH 3/4] Update orch_zmq_tables.conf.j2 --- dockers/docker-orchagent/orch_zmq_tables.conf.j2 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dockers/docker-orchagent/orch_zmq_tables.conf.j2 b/dockers/docker-orchagent/orch_zmq_tables.conf.j2 index 562aaab1b57..4d2c76323ff 100644 --- a/dockers/docker-orchagent/orch_zmq_tables.conf.j2 +++ b/dockers/docker-orchagent/orch_zmq_tables.conf.j2 @@ -1,4 +1,4 @@ -{% if DEVICE_METADATA.localhost.orch_dash_zmq_enabled != "true" %} +{% if DEVICE_METADATA.localhost.orch_dash_zmq_enabled == "true" %} DASH_VNET_TABLE DASH_QOS_TABLE DASH_ENI_TABLE @@ -23,7 +23,7 @@ DASH_METER_RULE_TABLE DASH_ROUTING_APPLIANCE_TABLE DASH_ENI_FORWARD_TABLE {% endif %} -{% if DEVICE_METADATA.localhost.orch_route_zmq_enabled != "true" %} +{% if DEVICE_METADATA.localhost.orch_route_zmq_enabled == "true" %} ROUTE_TABLE LABEL_ROUTE_TABLE -{% endif %} \ No newline at end of file +{% endif %} From 398493208c55df5cc3165fbd4c2e2e4e4a34a1f4 Mon Sep 17 00:00:00 2001 From: Hua Liu <58683130+liuh-80@users.noreply.github.com> Date: Mon, 28 Apr 2025 15:35:17 +0800 Subject: [PATCH 4/4] Update orch_zmq_tables.conf.j2 --- dockers/docker-orchagent/orch_zmq_tables.conf.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockers/docker-orchagent/orch_zmq_tables.conf.j2 b/dockers/docker-orchagent/orch_zmq_tables.conf.j2 index 4d2c76323ff..b3cb9f99644 100644 --- a/dockers/docker-orchagent/orch_zmq_tables.conf.j2 +++ b/dockers/docker-orchagent/orch_zmq_tables.conf.j2 @@ -1,4 +1,4 @@ -{% if DEVICE_METADATA.localhost.orch_dash_zmq_enabled == "true" %} +{% if DEVICE_METADATA.localhost.orch_dash_zmq_enabled == "false" %} DASH_VNET_TABLE DASH_QOS_TABLE DASH_ENI_TABLE