From c10c054655dd09a73ea306b027c3cc1a2caf38a3 Mon Sep 17 00:00:00 2001 From: zitingguo Date: Mon, 17 Jun 2024 14:11:06 +0000 Subject: [PATCH 1/3] add suppress-fib-pending field in yang Signed-off-by: zitingguo-ms --- .../tests/files/sample_config_db.json | 4 ++- .../tests/device_metadata.json | 10 ++++++ .../tests_config/device_metadata.json | 31 ++++++++++++++++++- .../yang-models/sonic-device_metadata.yang | 9 ++++++ 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 95b60da764f..40a52d0c871 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -364,7 +364,9 @@ "bgp_adv_lo_prefix_as_128": "true", "yang_config_validation": "disable", "rack_mgmt_map": "dummy_value", - "timezone": "Europe/Kiev" + "timezone": "Europe/Kiev", + "synchronous_mode": "enable", + "suppress-fib-pending": "enabled" } }, "VLAN": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json index 65288b8b2db..104a32ac9b4 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json @@ -146,5 +146,15 @@ "DEVICE_METADATA_INVALID_CREATE_ONLY_CONFIG_DB_BUFFERS": { "desc": "Verifying invalid create_only_config_db_buffers value", "eStrKey": "InvalidValue" + }, + "DEVICE_METADATA_SUPPRESS_PENDING_FIB_ENABLED": { + "desc": "Enable bgp-suppress-fib-pending" + }, + "DEVICE_METADATA_SUPPRESS_PENDING_FIB_DISABLED": { + "desc": "Disable bgp-suppress-fib-pending" + }, + "DEVICE_METADATA_SUPPRESS_PENDING_FIB_ENABLED_SYNCHRONOUS_MODE_DISABLED": { + "desc": "Enable bgp-suppress-fib-pending when synchronous mode is disabled", + "eStr": ["ASIC synchronous mode must be enabled in order to enable suppress FIB pending feature"] } } 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 b8053aa6ac6..f2e0cf121b9 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 @@ -386,5 +386,34 @@ } } } - } + }, + "DEVICE_METADATA_SUPPRESS_PENDING_FIB_ENABLED": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "synchronous_mode": "enable", + "suppress-fib-pending": "enabled" + } + } + } + }, + "DEVICE_METADATA_SUPPRESS_PENDING_FIB_DISABLED": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "synchronous_mode": "disable", + "suppress-fib-pending": "disabled" + } + } + } + }, + "DEVICE_METADATA_SUPPRESS_PENDING_FIB_ENABLED_SYNCHRONOUS_MODE_DISABLED": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "synchronous_mode": "disable", + "suppress-fib-pending": "enabled" + } + } + } } 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 392bbf941f6..74c928f1dd6 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -230,6 +230,15 @@ module sonic-device_metadata { otherwise the maximum available buffers (which are read from SAI) will be created, regardless of the CONFIG_DB buffers configuration."; } + + leaf suppress-fib-pending { + type stypes:admin_mode; + default enabled; + description "Enable BGP suppress FIB pending feature. BGP will wait for route FIB installation before announcing routes"; + must "((current() = 'disabled') or (current() = 'enabled' and ../synchronous_mode = 'enable'))" { + error-message "ASIC synchronous mode must be enabled in order to enable suppress FIB pending feature"; + } + } } /* end of container localhost */ } From 0dd56dbb54674e71404ed07e8444fd218fa576de Mon Sep 17 00:00:00 2001 From: zitingguo Date: Tue, 18 Jun 2024 00:20:41 +0000 Subject: [PATCH 2/3] fix --- .../tests/yang_model_tests/tests_config/device_metadata.json | 1 + 1 file changed, 1 insertion(+) 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 f2e0cf121b9..27771f99820 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 @@ -416,4 +416,5 @@ } } } + } } From 290a63804ab5a77b1f9fbbd1bb392186208aca80 Mon Sep 17 00:00:00 2001 From: zitingguo Date: Thu, 20 Jun 2024 07:41:06 +0000 Subject: [PATCH 3/3] change default status to disabled Signed-off-by: zitingguo-ms --- src/sonic-yang-models/tests/files/sample_config_db.json | 2 +- src/sonic-yang-models/yang-models/sonic-device_metadata.yang | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 40a52d0c871..4a743fda6bf 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -366,7 +366,7 @@ "rack_mgmt_map": "dummy_value", "timezone": "Europe/Kiev", "synchronous_mode": "enable", - "suppress-fib-pending": "enabled" + "suppress-fib-pending": "disabled" } }, "VLAN": { 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 74c928f1dd6..8c68fe2fdaa 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -233,7 +233,7 @@ module sonic-device_metadata { leaf suppress-fib-pending { type stypes:admin_mode; - default enabled; + default disabled; description "Enable BGP suppress FIB pending feature. BGP will wait for route FIB installation before announcing routes"; must "((current() = 'disabled') or (current() = 'enabled' and ../synchronous_mode = 'enable'))" { error-message "ASIC synchronous mode must be enabled in order to enable suppress FIB pending feature";