From bd691770523b6cbdd934eb9daf74e888495c22be Mon Sep 17 00:00:00 2001 From: zitingguo Date: Tue, 26 Dec 2023 02:24:01 +0000 Subject: [PATCH 1/6] Add yang model for BGP bbr Signed-of-by: zitingguo-ms --- src/sonic-yang-models/doc/Configuration.md | 2 + src/sonic-yang-models/setup.py | 1 + .../yang-models/sonic-bgp-bbr.yang | 37 +++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang diff --git a/src/sonic-yang-models/doc/Configuration.md b/src/sonic-yang-models/doc/Configuration.md index 4bf3a4a45aed..3c07fd2c4f4e 100644 --- a/src/sonic-yang-models/doc/Configuration.md +++ b/src/sonic-yang-models/doc/Configuration.md @@ -7,8 +7,10 @@ Table of Contents * [Introduction](#introduction) * [Configuration](#configuration) * [Config Load and Save](#config-load-and-save) + * [Incremental Configuration](#incremental-configuration) * [Redis and Json Schema](#redis-and-json-schema) + * [ACL and Mirroring](#acl-and-mirroring) * [BGP Device Global](#bgp-device-global) * [BGP Sessions](#bgp-sessions) diff --git a/src/sonic-yang-models/setup.py b/src/sonic-yang-models/setup.py index 650101c50694..95f98bd53dd8 100644 --- a/src/sonic-yang-models/setup.py +++ b/src/sonic-yang-models/setup.py @@ -85,6 +85,7 @@ def run(self): data_files=[ ('yang-models', ['./yang-models/sonic-acl.yang', './yang-models/sonic-auto_techsupport.yang', + './yang-models/sonic-bgp-bbr.yang', './yang-models/sonic-bgp-common.yang', './yang-models/sonic-bgp-device-global.yang', './yang-models/sonic-bgp-global.yang', diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang b/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang new file mode 100644 index 000000000000..5ce7e717025b --- /dev/null +++ b/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang @@ -0,0 +1,37 @@ +module sonic-bgp-bbr { + namespace "http://github.com/sonic-net/sonic-bgp-bbr"; + prefix bgpbbr; + yang-version 1.1; + + organization + "SONiC"; + + contact + "SONiC"; + + description + "SONIC BGP BBR"; + + revision 2023-12-25 { + description + "Initial revision."; + } + + container sonic-bgp-bbr { + container BGP_BBR { + + description "BGP_BBR table part of config_db.json" + + container all { + leaf status { + type string { + pattern "enabled|disabled" + } + } + } + /* end of container all */ + } + /* end of container BGP_BBR */ + } + /* end of container sonic-bgp-bbr */ +} \ No newline at end of file From a32a59076fa491f9107257168df18c7c6aa67aa2 Mon Sep 17 00:00:00 2001 From: zitingguo Date: Tue, 26 Dec 2023 08:29:24 +0000 Subject: [PATCH 2/6] Add ut for bgp_bbr yang Signed-off-by: zitingguo-ms --- .../tests/yang_model_tests/tests/bgp_bbr.json | 9 ++++++++ .../tests_config/bgp_bbr.json | 22 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests/bgp_bbr.json create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_bbr.json b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_bbr.json new file mode 100644 index 000000000000..9131028b0d3a --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_bbr.json @@ -0,0 +1,9 @@ +{ + "BGP_BBR_TABLE": { + "desc": "BGP BBR Table" + }, + "BGP_BBR_VALID_STATUS": { + "desc": "status with valid value", + "eStrKey": "Pattern" + } +} \ No newline at end of file diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json new file mode 100644 index 000000000000..7d162d6b952c --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json @@ -0,0 +1,22 @@ +{ + "BGP_BBR_TABLE": { + "sonic-bgp_bbr:sonic-bgp_bbr": { + "sonic-bgp_bbr:BGP_BBR": { + "all": + { + "status": "enabled" + } + } + } + }, + "BGP_BBR_VALID_STATUS": { + "sonic-bgp_bbr:sonic-bgp_bbr": { + "sonic-bgp_bbr:BGP_BBR": { + "all": + { + "status": "true" + } + } + } + } +} \ No newline at end of file From 7f368c3426831874532ddeff249d4b7ec99bbc2c Mon Sep 17 00:00:00 2001 From: zitingguo Date: Tue, 26 Dec 2023 09:58:07 +0000 Subject: [PATCH 3/6] Add missing semicolons Signed-off-by: zitingguo-ms --- .../tests/yang_model_tests/tests_config/bgp_bbr.json | 8 ++++---- src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json index 7d162d6b952c..562c8fb1a95d 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json @@ -1,7 +1,7 @@ { "BGP_BBR_TABLE": { - "sonic-bgp_bbr:sonic-bgp_bbr": { - "sonic-bgp_bbr:BGP_BBR": { + "sonic-bgp-bbr:sonic-bgp-bbr": { + "sonic-bgp-bbr:BGP_BBR": { "all": { "status": "enabled" @@ -10,8 +10,8 @@ } }, "BGP_BBR_VALID_STATUS": { - "sonic-bgp_bbr:sonic-bgp_bbr": { - "sonic-bgp_bbr:BGP_BBR": { + "sonic-bgp-bbr:sonic-bgp-bbr": { + "sonic-bgp-bbr:BGP_BBR": { "all": { "status": "true" diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang b/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang index 5ce7e717025b..7706d8f66d0b 100644 --- a/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang +++ b/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang @@ -20,12 +20,12 @@ module sonic-bgp-bbr { container sonic-bgp-bbr { container BGP_BBR { - description "BGP_BBR table part of config_db.json" + description "BGP_BBR table part of config_db.json"; container all { leaf status { type string { - pattern "enabled|disabled" + pattern "enabled|disabled"; } } } From 81297812ef140939b72a71437285ea5f88b40989 Mon Sep 17 00:00:00 2001 From: zitingguo Date: Wed, 27 Dec 2023 07:44:21 +0000 Subject: [PATCH 4/6] add BGP_BBR to sample_config_db.json Signed-off-by: zitingguo-ms --- src/sonic-yang-models/tests/files/sample_config_db.json | 5 +++++ 1 file changed, 5 insertions(+) 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 b9db43c876e0..98ab4de319ab 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -1597,6 +1597,11 @@ "local_ip": "12.12.0.2" } }, + "BGP_BBR": { + "all": { + "status": "enabled" + } + }, "BGP_GLOBALS": { "default": { "router_id": "5.5.5.5", From d436dd6d84db05b7a1833bb5a1482a8763afcd3b Mon Sep 17 00:00:00 2001 From: zitingguo Date: Tue, 2 Jan 2024 03:35:38 +0000 Subject: [PATCH 5/6] Update doc Signed-off-by: zitingguo-ms --- src/sonic-yang-models/doc/Configuration.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/sonic-yang-models/doc/Configuration.md b/src/sonic-yang-models/doc/Configuration.md index 3c07fd2c4f4e..269a60f6739c 100644 --- a/src/sonic-yang-models/doc/Configuration.md +++ b/src/sonic-yang-models/doc/Configuration.md @@ -12,6 +12,7 @@ Table of Contents * [Redis and Json Schema](#redis-and-json-schema) * [ACL and Mirroring](#acl-and-mirroring) + * [BGP BBR](#bgp-bbr) * [BGP Device Global](#bgp-device-global) * [BGP Sessions](#bgp-sessions) * [BUFFER_PG](#buffer_pg) @@ -369,6 +370,18 @@ and migration plan } } ``` +### BGP BBR + +The **BGP_BBR** table contains device-level BBR state. +``` +{ + "BGP_BBR": { + "all": { + "status": "enabled"/"disabled" + } + } +} +``` ### BGP Device Global The **BGP_DEVICE_GLOBAL** table contains device-level BGP global state. From a1774d6cacd270162facca29899c1b07b99d9890 Mon Sep 17 00:00:00 2001 From: zitingguo Date: Thu, 4 Jan 2024 07:08:08 +0000 Subject: [PATCH 6/6] change status type to admin_mode Signed-off-by: zitingguo-ms --- .../tests/yang_model_tests/tests/bgp_bbr.json | 6 +++--- .../tests/yang_model_tests/tests_config/bgp_bbr.json | 2 +- src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang | 10 +++++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_bbr.json b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_bbr.json index 9131028b0d3a..50d1c40b119a 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_bbr.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_bbr.json @@ -2,8 +2,8 @@ "BGP_BBR_TABLE": { "desc": "BGP BBR Table" }, - "BGP_BBR_VALID_STATUS": { - "desc": "status with valid value", - "eStrKey": "Pattern" + "BGP_BBR_INVALID_STATUS": { + "desc": "Configure status key with invalid value", + "eStrKey": "InvalidValue" } } \ No newline at end of file diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json index 562c8fb1a95d..f5379a4091f9 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_bbr.json @@ -9,7 +9,7 @@ } } }, - "BGP_BBR_VALID_STATUS": { + "BGP_BBR_INVALID_STATUS": { "sonic-bgp-bbr:sonic-bgp-bbr": { "sonic-bgp-bbr:BGP_BBR": { "all": diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang b/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang index 7706d8f66d0b..58cc8823d391 100644 --- a/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang +++ b/src/sonic-yang-models/yang-models/sonic-bgp-bbr.yang @@ -3,6 +3,10 @@ module sonic-bgp-bbr { prefix bgpbbr; yang-version 1.1; + import sonic-types { + prefix stypes; + } + organization "SONiC"; @@ -24,9 +28,9 @@ module sonic-bgp-bbr { container all { leaf status { - type string { - pattern "enabled|disabled"; - } + type stypes:admin_mode; + default enabled; + description "bgp bbr status"; } } /* end of container all */