From 9e47468c88accdbaf45f517ef56f00f5319cea71 Mon Sep 17 00:00:00 2001 From: dplore Date: Thu, 13 Jun 2024 17:45:42 -0700 Subject: [PATCH 1/5] add bgp cumulative link-bandwidth --- .../openconfig-bgp-common-multiprotocol.yang | 11 +++- .../bgp/openconfig-bgp-common-structure.yang | 10 ++- release/models/bgp/openconfig-bgp-common.yang | 61 ++++++++++++++++--- release/models/bgp/openconfig-bgp-global.yang | 10 ++- .../models/bgp/openconfig-bgp-peer-group.yang | 10 ++- release/models/bgp/openconfig-bgp.yang | 12 +++- 6 files changed, 93 insertions(+), 21 deletions(-) diff --git a/release/models/bgp/openconfig-bgp-common-multiprotocol.yang b/release/models/bgp/openconfig-bgp-common-multiprotocol.yang index 705019c01..e3dfdf643 100644 --- a/release/models/bgp/openconfig-bgp-common-multiprotocol.yang +++ b/release/models/bgp/openconfig-bgp-common-multiprotocol.yang @@ -24,12 +24,18 @@ submodule openconfig-bgp-common-multiprotocol { for multiple protocols in BGP. The groupings are common across multiple contexts."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-06-13" { + description + "Clarification to last-prefix-limit-exceeded in description"; + reference "9.8.0"; + } revision "2023-12-28" { description "Clarification to last-prefix-limit-exceeded in description"; - reference "9.7.1"; + reference "9.7.1"; } revision "2023-12-28" { @@ -38,6 +44,7 @@ submodule openconfig-bgp-common-multiprotocol { community for BGP multipath."; reference "9.7.0"; } + revision "2023-11-02" { description "Fix revision '2023-03-31': send-community-type was added to the diff --git a/release/models/bgp/openconfig-bgp-common-structure.yang b/release/models/bgp/openconfig-bgp-common-structure.yang index e737d9d13..a09ab8b41 100644 --- a/release/models/bgp/openconfig-bgp-common-structure.yang +++ b/release/models/bgp/openconfig-bgp-common-structure.yang @@ -21,12 +21,18 @@ submodule openconfig-bgp-common-structure { "This sub-module contains groupings that are common across multiple BGP contexts and provide structure around other primitive groupings."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-06-13" { + description + "Clarification to last-prefix-limit-exceeded in description"; + reference "9.8.0"; + } revision "2023-12-28" { description "Clarification to last-prefix-limit-exceeded in description"; - reference "9.7.1"; + reference "9.7.1"; } revision "2023-12-28" { diff --git a/release/models/bgp/openconfig-bgp-common.yang b/release/models/bgp/openconfig-bgp-common.yang index fe3f82477..944a1113c 100644 --- a/release/models/bgp/openconfig-bgp-common.yang +++ b/release/models/bgp/openconfig-bgp-common.yang @@ -24,19 +24,25 @@ submodule openconfig-bgp-common { may be application to a subset of global, peer-group or neighbor contexts."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-06-13" { + description + "Clarification to last-prefix-limit-exceeded in description"; + reference "9.8.0"; + } revision "2023-12-28" { description "Clarification to last-prefix-limit-exceeded in description"; - reference "9.7.1"; + reference "9.7.1"; } revision "2023-12-28" { description "Add support for controling use of link-bandwidth extended community for BGP multipath."; - reference "9.7.0"; + reference "9.7.0"; } revision "2023-11-02" { @@ -698,17 +704,52 @@ submodule openconfig-bgp-common { description "Parameters controlling usage of of DMZ Link-Bandwidth extended community in pultipath RIB/FIB formation"; + leaf enabled { type boolean; description - "When set to TRUE, BGP multiplepath shall distributed traffic - load among contributing routes proportionally to value of - Local Administrator subfield of link-bandwidth extended - community [draft-ietf-idr-link-bandwidth-07]. - This leaf has no effect if BGP multi-path is disabled or - if maximum-path attribute of BGP multi-path value is set - to 1"; + "When set to TRUE, BGP multiplepath shall distributed traffic + load among contributing routes proportionally to value of + Local Administrator subfield of link-bandwidth extended + community [draft-ietf-idr-link-bandwidth-07]. + This leaf has no effect if BGP multi-path is disabled or + if maximum-path attribute of BGP multi-path value is set + to 1"; } + + leaf cumulative { + type boolean; + when "../enabled = 'TRUE'"; + description + "When set to TRUE, and sending of link-bandwidth community values + is enabled, the system will sum the bgp link-bandwidth community + values for equal cost paths as defined in draft-ietf-bess-ebgp-dmz."; + reference + "https://datatracker.ietf.org/doc/draft-ietf-bess-ebgp-dmz/"; + } + + leaf non-transitive { + type boolean; + when "../enabled = 'TRUE'"; + description + "When set to TRUE and sending of link-bandwidth community values is + enabled, the system will send the link-bandwidth community to eBGP + peers."; + reference + "https://datatracker.ietf.org/doc/draft-ietf-bess-ebgp-dmz/"; + } + + leaf equal { + type boolean; + when "../enabled = 'TRUE'"; + description + "When set to TRUE, and sending of link-bandwidth community values + is enabled, the system divide the summed bandwidth equally across + available paths as defined in draft-ietf-bess-ebgp-dmz."; + reference + "https://datatracker.ietf.org/doc/draft-ietf-bess-ebgp-dmz/"; + } + } grouping bgp-common-use-multiple-paths-ebgp-config { diff --git a/release/models/bgp/openconfig-bgp-global.yang b/release/models/bgp/openconfig-bgp-global.yang index 28e73bac5..6fabd6e55 100644 --- a/release/models/bgp/openconfig-bgp-global.yang +++ b/release/models/bgp/openconfig-bgp-global.yang @@ -27,12 +27,18 @@ submodule openconfig-bgp-global { "This sub-module contains groupings that are specific to the global context of the OpenConfig BGP module"; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-06-13" { + description + "Clarification to last-prefix-limit-exceeded in description"; + reference "9.8.0"; + } revision "2023-12-28" { description "Clarification to last-prefix-limit-exceeded in description"; - reference "9.7.1"; + reference "9.7.1"; } revision "2023-12-28" { diff --git a/release/models/bgp/openconfig-bgp-peer-group.yang b/release/models/bgp/openconfig-bgp-peer-group.yang index 9091e68e1..b53b3c09c 100644 --- a/release/models/bgp/openconfig-bgp-peer-group.yang +++ b/release/models/bgp/openconfig-bgp-peer-group.yang @@ -25,12 +25,18 @@ submodule openconfig-bgp-peer-group { "This sub-module contains groupings that are specific to the peer-group context of the OpenConfig BGP module."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-06-13" { + description + "Clarification to last-prefix-limit-exceeded in description"; + reference "9.8.0"; + } revision "2023-12-28" { description "Clarification to last-prefix-limit-exceeded in description"; - reference "9.7.1"; + reference "9.7.1"; } revision "2023-12-28" { diff --git a/release/models/bgp/openconfig-bgp.yang b/release/models/bgp/openconfig-bgp.yang index de65238c9..de275a98e 100644 --- a/release/models/bgp/openconfig-bgp.yang +++ b/release/models/bgp/openconfig-bgp.yang @@ -68,19 +68,25 @@ module openconfig-bgp { whereas leaf not present inherits its value from the leaf present at the next higher level in the hierarchy."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-06-13" { + description + "Clarification to last-prefix-limit-exceeded in description"; + reference "9.8.0"; + } revision "2023-12-28" { description "Clarification to last-prefix-limit-exceeded in description"; - reference "9.7.1"; + reference "9.7.1"; } revision "2023-12-28" { description "Add support for controling use of link-bandwidth extended community for BGP multipath."; - reference "9.7.0"; + reference "9.7.0"; } revision "2023-11-02" { From e9a0a707ba9c99322fb58217ec361633f1ed2191 Mon Sep 17 00:00:00 2001 From: dplore Date: Thu, 13 Jun 2024 18:09:04 -0700 Subject: [PATCH 2/5] Add neighbor --- .../bgp/openconfig-bgp-common-multiprotocol.yang | 2 +- .../bgp/openconfig-bgp-common-structure.yang | 2 +- release/models/bgp/openconfig-bgp-common.yang | 2 +- release/models/bgp/openconfig-bgp-global.yang | 2 +- release/models/bgp/openconfig-bgp-neighbor.yang | 14 +++++++++++--- release/models/bgp/openconfig-bgp-peer-group.yang | 2 +- release/models/bgp/openconfig-bgp.yang | 2 +- 7 files changed, 17 insertions(+), 9 deletions(-) diff --git a/release/models/bgp/openconfig-bgp-common-multiprotocol.yang b/release/models/bgp/openconfig-bgp-common-multiprotocol.yang index e3dfdf643..bb01eca56 100644 --- a/release/models/bgp/openconfig-bgp-common-multiprotocol.yang +++ b/release/models/bgp/openconfig-bgp-common-multiprotocol.yang @@ -28,7 +28,7 @@ submodule openconfig-bgp-common-multiprotocol { revision "2024-06-13" { description - "Clarification to last-prefix-limit-exceeded in description"; + "Add link-bandwidth parameters for cumulative, non-transitive and equal."; reference "9.8.0"; } diff --git a/release/models/bgp/openconfig-bgp-common-structure.yang b/release/models/bgp/openconfig-bgp-common-structure.yang index a09ab8b41..7e57d5285 100644 --- a/release/models/bgp/openconfig-bgp-common-structure.yang +++ b/release/models/bgp/openconfig-bgp-common-structure.yang @@ -25,7 +25,7 @@ submodule openconfig-bgp-common-structure { revision "2024-06-13" { description - "Clarification to last-prefix-limit-exceeded in description"; + "Add link-bandwidth parameters for cumulative, non-transitive and equal."; reference "9.8.0"; } diff --git a/release/models/bgp/openconfig-bgp-common.yang b/release/models/bgp/openconfig-bgp-common.yang index 944a1113c..1b60e4810 100644 --- a/release/models/bgp/openconfig-bgp-common.yang +++ b/release/models/bgp/openconfig-bgp-common.yang @@ -28,7 +28,7 @@ submodule openconfig-bgp-common { revision "2024-06-13" { description - "Clarification to last-prefix-limit-exceeded in description"; + "Add link-bandwidth parameters for cumulative, non-transitive and equal."; reference "9.8.0"; } diff --git a/release/models/bgp/openconfig-bgp-global.yang b/release/models/bgp/openconfig-bgp-global.yang index 6fabd6e55..44d42f148 100644 --- a/release/models/bgp/openconfig-bgp-global.yang +++ b/release/models/bgp/openconfig-bgp-global.yang @@ -31,7 +31,7 @@ submodule openconfig-bgp-global { revision "2024-06-13" { description - "Clarification to last-prefix-limit-exceeded in description"; + "Add link-bandwidth parameters for cumulative, non-transitive and equal."; reference "9.8.0"; } diff --git a/release/models/bgp/openconfig-bgp-neighbor.yang b/release/models/bgp/openconfig-bgp-neighbor.yang index 3087ae03c..ced523da1 100644 --- a/release/models/bgp/openconfig-bgp-neighbor.yang +++ b/release/models/bgp/openconfig-bgp-neighbor.yang @@ -30,19 +30,25 @@ submodule openconfig-bgp-neighbor { "This sub-module contains groupings that are specific to the neighbor context of the OpenConfig BGP module."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-06-13" { + description + "Add link-bandwidth parameters for cumulative, non-transitive and equal."; + reference "9.8.0"; + } revision "2023-12-28" { description "Clarification to last-prefix-limit-exceeded in description"; - reference "9.7.1"; + reference "9.7.1"; } revision "2023-12-28" { description "Add support for controling use of link-bandwidth extended community for BGP multipath."; - reference "9.7.0"; + reference "9.7.0"; } revision "2023-11-02" { @@ -757,6 +763,7 @@ submodule openconfig-bgp-neighbor { group"; uses bgp-neighbor-config; uses bgp-common-neighbor-group-config; + uses bgp-common-use-multiple-paths-link-bandwidth-config; } container state { config false; @@ -765,6 +772,7 @@ submodule openconfig-bgp-neighbor { uses bgp-neighbor-config; uses bgp-common-neighbor-group-config; uses bgp-neighbor-state; + uses bgp-common-use-multiple-paths-link-bandwidth-config; } container timers { diff --git a/release/models/bgp/openconfig-bgp-peer-group.yang b/release/models/bgp/openconfig-bgp-peer-group.yang index b53b3c09c..fdf22749b 100644 --- a/release/models/bgp/openconfig-bgp-peer-group.yang +++ b/release/models/bgp/openconfig-bgp-peer-group.yang @@ -29,7 +29,7 @@ submodule openconfig-bgp-peer-group { revision "2024-06-13" { description - "Clarification to last-prefix-limit-exceeded in description"; + "Add link-bandwidth parameters for cumulative, non-transitive and equal."; reference "9.8.0"; } diff --git a/release/models/bgp/openconfig-bgp.yang b/release/models/bgp/openconfig-bgp.yang index de275a98e..784513404 100644 --- a/release/models/bgp/openconfig-bgp.yang +++ b/release/models/bgp/openconfig-bgp.yang @@ -72,7 +72,7 @@ module openconfig-bgp { revision "2024-06-13" { description - "Clarification to last-prefix-limit-exceeded in description"; + "Add link-bandwidth parameters for cumulative, non-transitive and equal."; reference "9.8.0"; } From 3fef88181495bd7c850f38a9c2df12bf9767a71c Mon Sep 17 00:00:00 2001 From: dplore Date: Thu, 13 Jun 2024 18:40:31 -0700 Subject: [PATCH 3/5] fix neighbor groupings --- release/models/bgp/openconfig-bgp-neighbor.yang | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/release/models/bgp/openconfig-bgp-neighbor.yang b/release/models/bgp/openconfig-bgp-neighbor.yang index ced523da1..f630e34ad 100644 --- a/release/models/bgp/openconfig-bgp-neighbor.yang +++ b/release/models/bgp/openconfig-bgp-neighbor.yang @@ -280,6 +280,21 @@ submodule openconfig-bgp-neighbor { container ebgp { description "Multipath configuration for eBGP"; + container link-bandwidth-ext-community { + description + "Usage of DMZ Link-Bandwidth extended community"; + container config { + description + "Configuration parameters relating to usage of link-bandwidth"; + uses bgp-common-use-multiple-paths-link-bandwidth-config; + } + container state { + config false; + description + "State information relating to usage of link-bandwidth"; + uses bgp-common-use-multiple-paths-link-bandwidth-config; + } + } container config { description "Configuration parameters relating to eBGP multipath"; @@ -763,7 +778,6 @@ submodule openconfig-bgp-neighbor { group"; uses bgp-neighbor-config; uses bgp-common-neighbor-group-config; - uses bgp-common-use-multiple-paths-link-bandwidth-config; } container state { config false; @@ -772,7 +786,6 @@ submodule openconfig-bgp-neighbor { uses bgp-neighbor-config; uses bgp-common-neighbor-group-config; uses bgp-neighbor-state; - uses bgp-common-use-multiple-paths-link-bandwidth-config; } container timers { From 032d2ae8527c95d35b2542126bb1b624913911b7 Mon Sep 17 00:00:00 2001 From: dplore Date: Mon, 19 Aug 2024 18:43:46 -0700 Subject: [PATCH 4/5] move to bgp/*/link-bw/ tree instead of multiple-paths, rename leaves --- .../bgp/openconfig-bgp-common-structure.yang | 22 +++++++++++ release/models/bgp/openconfig-bgp-common.yang | 39 ++++++++++--------- release/models/bgp/openconfig-bgp-global.yang | 1 + .../models/bgp/openconfig-bgp-neighbor.yang | 1 + .../models/bgp/openconfig-bgp-peer-group.yang | 1 + 5 files changed, 45 insertions(+), 19 deletions(-) diff --git a/release/models/bgp/openconfig-bgp-common-structure.yang b/release/models/bgp/openconfig-bgp-common-structure.yang index 7e57d5285..971ecd225 100644 --- a/release/models/bgp/openconfig-bgp-common-structure.yang +++ b/release/models/bgp/openconfig-bgp-common-structure.yang @@ -325,4 +325,26 @@ submodule openconfig-bgp-common-structure { } } + grouping bgp-common-structure-link-bw { + description + "Structural grouping used to include link bandwidth configuration and + state for BGP neighbors, peer groups and global."; + + container link-bw { + description + "Parameters relating to BGP link bandwidth."; + container config { + description + "Configuration parameters relating to link bandwidth."; + uses bgp-common-link-bw-config; + } + container state { + config false; + description + "State information parameters relating to link bandwidth."; + uses bgp-common-link-bw-config; + } + } + } + } diff --git a/release/models/bgp/openconfig-bgp-common.yang b/release/models/bgp/openconfig-bgp-common.yang index 1b60e4810..32fb1fbe1 100644 --- a/release/models/bgp/openconfig-bgp-common.yang +++ b/release/models/bgp/openconfig-bgp-common.yang @@ -703,7 +703,7 @@ submodule openconfig-bgp-common { grouping bgp-common-use-multiple-paths-link-bandwidth-config { description "Parameters controlling usage of of DMZ Link-Bandwidth - extended community in pultipath RIB/FIB formation"; + extended community in multipath RIB/FIB formation"; leaf enabled { type boolean; @@ -716,42 +716,43 @@ submodule openconfig-bgp-common { if maximum-path attribute of BGP multi-path value is set to 1"; } + } + + grouping bgp-common-link-bw-config { + description + "Configuration parameters relating to link-bandwidth for BGP."; + reference + "https://datatracker.ietf.org/doc/draft-ietf-bess-ebgp-dmz/05"; - leaf cumulative { + leaf send-cumulative { type boolean; - when "../enabled = 'TRUE'"; description "When set to TRUE, and sending of link-bandwidth community values is enabled, the system will sum the bgp link-bandwidth community - values for equal cost paths as defined in draft-ietf-bess-ebgp-dmz."; - reference - "https://datatracker.ietf.org/doc/draft-ietf-bess-ebgp-dmz/"; + values for equal cost paths as defined in + draft-ietf-bess-ebgp-dmz-05."; } - leaf non-transitive { + leaf non-transitive-ebgp { type boolean; - when "../enabled = 'TRUE'"; + when "../send-cumulative = 'TRUE'"; description "When set to TRUE and sending of link-bandwidth community values is - enabled, the system will send the link-bandwidth community to eBGP - peers."; - reference - "https://datatracker.ietf.org/doc/draft-ietf-bess-ebgp-dmz/"; + enabled, the system will send the non-transitive link-bandwidth + community learned from iBGP peers to eBGP peers."; } - leaf equal { + leaf divide { type boolean; - when "../enabled = 'TRUE'"; + when "../send-cumulative = 'TRUE'"; description "When set to TRUE, and sending of link-bandwidth community values - is enabled, the system divide the summed bandwidth equally across - available paths as defined in draft-ietf-bess-ebgp-dmz."; - reference - "https://datatracker.ietf.org/doc/draft-ietf-bess-ebgp-dmz/"; + is enabled, the system divides the summed bandwidth equally across + available paths as defined in draft-ietf-bess-ebgp-dmz-05."; } - } + grouping bgp-common-use-multiple-paths-ebgp-config { description "Configuration parameters relating to multipath for eBGP"; diff --git a/release/models/bgp/openconfig-bgp-global.yang b/release/models/bgp/openconfig-bgp-global.yang index 44d42f148..08db480ec 100644 --- a/release/models/bgp/openconfig-bgp-global.yang +++ b/release/models/bgp/openconfig-bgp-global.yang @@ -431,6 +431,7 @@ submodule openconfig-bgp-global { uses bgp-common-route-selection-options; uses bgp-common-global-group-use-multiple-paths; uses bgp-common-structure-neighbor-group-add-paths; + uses bgp-common-structure-link-bw; uses bgp-global-mp-all-afi-safi-list-contents; uses oc-rpol:default-policy-group; } diff --git a/release/models/bgp/openconfig-bgp-neighbor.yang b/release/models/bgp/openconfig-bgp-neighbor.yang index f630e34ad..70132a55c 100644 --- a/release/models/bgp/openconfig-bgp-neighbor.yang +++ b/release/models/bgp/openconfig-bgp-neighbor.yang @@ -765,6 +765,7 @@ submodule openconfig-bgp-neighbor { uses bgp-common-structure-neighbor-group-add-paths; uses bgp-common-mp-all-afi-safi-list-contents; uses bgp-neighbor-use-multiple-paths; + uses bgp-common-structure-link-bw; } } diff --git a/release/models/bgp/openconfig-bgp-peer-group.yang b/release/models/bgp/openconfig-bgp-peer-group.yang index fdf22749b..be42dd959 100644 --- a/release/models/bgp/openconfig-bgp-peer-group.yang +++ b/release/models/bgp/openconfig-bgp-peer-group.yang @@ -260,6 +260,7 @@ submodule openconfig-bgp-peer-group { uses bgp-common-structure-neighbor-group-add-paths; uses bgp-common-global-group-use-multiple-paths; uses bgp-common-mp-all-afi-safi-list-contents; + uses bgp-common-structure-link-bw; } } From 0613112fb3ab0e4a09b78d2222ff9b73ec2671a7 Mon Sep 17 00:00:00 2001 From: dplore Date: Tue, 20 Aug 2024 09:19:54 -0700 Subject: [PATCH 5/5] correct typo --- release/models/bgp/openconfig-bgp-common.yang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/models/bgp/openconfig-bgp-common.yang b/release/models/bgp/openconfig-bgp-common.yang index 32fb1fbe1..52f122aed 100644 --- a/release/models/bgp/openconfig-bgp-common.yang +++ b/release/models/bgp/openconfig-bgp-common.yang @@ -702,7 +702,7 @@ submodule openconfig-bgp-common { grouping bgp-common-use-multiple-paths-link-bandwidth-config { description - "Parameters controlling usage of of DMZ Link-Bandwidth + "Parameters controlling usage of DMZ Link-Bandwidth extended community in multipath RIB/FIB formation"; leaf enabled {