From eafe23ec272ae6a555be0cfeb9a57a70422628b8 Mon Sep 17 00:00:00 2001 From: Adam Yeung <47261130+adyeung@users.noreply.github.com> Date: Wed, 2 Aug 2023 14:01:43 -0700 Subject: [PATCH 1/5] Create sonic_frr_update_process.md --- tsc/frr/sonic_frr_update_process.md | 78 +++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 tsc/frr/sonic_frr_update_process.md diff --git a/tsc/frr/sonic_frr_update_process.md b/tsc/frr/sonic_frr_update_process.md new file mode 100644 index 0000000000..b3bcd8bda3 --- /dev/null +++ b/tsc/frr/sonic_frr_update_process.md @@ -0,0 +1,78 @@ +# **SONiC Community FRR Upgrade Process Proposal** + +FRR upgrade and patch cadence is largely on need basis in the current SONiC release program. This SONiC FRR upgrade process proposal is to formalize the FRR upgrade cadence and process for future SONiC release programs. + +# SONiC FRR Version Upgrade History + +

+ +

+ + +# FRR Project Release Cadence +- FRR release numbering scheme x.y.z-s# +- New FRR releases roughly every 4 months + - Apr 2023 - Release 8.5.1 (48 fixes) + - Mar 2023 - Release 8.5 (947+ commits) + - Jan 2023 - Release 8.4.2 (22 fixes) + - Nov 2022 - Release 8.4.1 (16 fixes) + - Nov 2022 - Release 8.4 (700+ commits) + - Aug 2022 - Release 8.3.1 (14 fixes) + - Jul 2022 - Release 8.3 (1000+ commits) + - Mar 2022 - Release 8.2.2 (800+ commits) + - Nov 2021 - Release 8.1.0 (1200+ commits) + - Jul 2021 - Release 8.0.0 (2200+ commits) + +- SONiC to stay out from major/minor releases (x.y) and use patch release (.z) for stability (eg, FRR 8.3.1 instead of 8.3 if it is for 202211 release) + +# SONiC Release FRR Upgrade +- SONiC default to rebase FRR in every November community release +- SONiC FRR upgrade test requirements + - MANDATORY: Pass all Azure pipeline build test and LGTM as required by the standard code PR merge process + - OPTIONAL: Additional tests in respect to specific changeset in the upgrade as deem necessary, manual tests should be automated and submitted to improve future test coverage +- Rotate SONiC FRR maintenance duty among repo maintainer org and others (BRCM, MSFT, Alibaba, NVDA, DELL) +- Responsibility of SONiC FRR release maintainer + - Default 12 months assignment (or until the next upgrade) + - Upgrade FRR version in Nov release, resolve SONiC FRR upgrade integration issues + - If there is a need for May release upgrade due to feature requirement or other reasons, it should be requested in the May release plan and have the same maintainer to handle the second upgrade + - Triage and fix SONiC FRR issues when applicable. Fix may come from SONiC contributors or from FRR community, maintainer is responsible to drive the fix to unblock SONiC community + - Submit fixes to FRR project, submit new FRR topo test to FRR project if there is a gap + - Release maintainer to subscribe to FRR project, and be the FRR Point-of-Contact on behalf of SONiC + - Bring in FRR vulnerabilities and critical patches to SONiC + +# SONiC FRR vulnerability and patch upgrade in between SONiC releases + +- FRR CVE Fixes + - Reference nvd.nist.gov cvss v3.x [rating](https://nvd.nist.gov/vuln-metrics/cvss#) + - Bring in Critical and High FRR CVE patches into SONiC + - Sample of [Critical](https://nvd.nist.gov/vuln/search/results?form_type=Advanced&results_type=overview&search_type=all&isCpeNameSearch=false&cpe_vendor=cpe%3A%2F%3Afrrouting&cpe_product=cpe%3A%2F%3A%3Afrrouting&cvss_version=3&cvss_v3_severity=CRITICAL), sample of [High](https://nvd.nist.gov/vuln/search/results?form_type=Advanced&results_type=overview&search_type=all&isCpeNameSearch=false&cpe_vendor=cpe%3A%2F%3Afrrouting&cpe_product=cpe%3A%2F%3A%3Afrrouting&cvss_version=3&cvss_v3_severity=HIGH) + - There are regular security scan in Azure pipeline, CVEs will be filed to sonic-buildimage/issues + - SONiC FRR release maintainer should subscribe to nvd.nist.gov for FRR alerts + - Need a process to bring in CVEs to earlier SONiC releases too (open to suggestions) + +- Patch FRR Bug Fixes + - SONiC FRR release maintainer should subscribe to FRR project to bring in critical patch which is applicable to SONiC + +# SONiC FRR Upgrade Steps +- Create sonic-frr branch for the target FRR version + - Contact release manager +- Find new package dependencies + - Upload newly required packages to a common location (azure?) +- Submodule update to new FRR commit id. +- Code changes + - Version change in Makefiles + - New Makefiles for new packages (if any.) + - Port the patches + - Evaluate whether existing FRR patches still applicable to new FRR version + - Apply the old patches into new FRR version, and generate new patch files + - Keep original credentials + - If the changes are already present in new FRR version, discard the old patch file + - If the patch does not apply, manually merge the changes and resolve any conflicts + - Build and verify + - Use PTF on local server, – or – + - Manually verify BGP, VRF, IPv4, IPv6 (on sonic-vs.) + - Create PR +- FRR 8.2.2 upgrade PRs for reference + - [https://github.com/sonic-net/sonic-buildimage/pull/10691](https://github.com/sonic-net/sonic-buildimage/pull/10691) + - [https://github.com/sonic-net/sonic-buildimage/pull/11502](https://github.com/sonic-net/sonic-buildimage/pull/11502) + - [https://github.com/sonic-net/sonic-buildimage/pull/10947](https://github.com/sonic-net/sonic-buildimage/pull/10947) From 98e06fa815b1e6683867260e06a42529b0620158 Mon Sep 17 00:00:00 2001 From: Adam Yeung <47261130+adyeung@users.noreply.github.com> Date: Wed, 2 Aug 2023 14:02:12 -0700 Subject: [PATCH 2/5] Add files via upload --- tsc/frr/frr.png | Bin 0 -> 103051 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tsc/frr/frr.png diff --git a/tsc/frr/frr.png b/tsc/frr/frr.png new file mode 100644 index 0000000000000000000000000000000000000000..66fe10949d64bda0058176206da7648769375445 GIT binary patch literal 103051 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

c^SXX@B^85AqJ@BSAX|vywi@pNLr#q~fIx;7 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 Date: Tue, 29 Aug 2023 15:29:13 -0700 Subject: [PATCH 3/5] Update sonic_frr_update_process.md --- tsc/frr/sonic_frr_update_process.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/tsc/frr/sonic_frr_update_process.md b/tsc/frr/sonic_frr_update_process.md index b3bcd8bda3..a032bf5bd0 100644 --- a/tsc/frr/sonic_frr_update_process.md +++ b/tsc/frr/sonic_frr_update_process.md @@ -32,13 +32,13 @@ FRR upgrade and patch cadence is largely on need basis in the current SONiC rele - OPTIONAL: Additional tests in respect to specific changeset in the upgrade as deem necessary, manual tests should be automated and submitted to improve future test coverage - Rotate SONiC FRR maintenance duty among repo maintainer org and others (BRCM, MSFT, Alibaba, NVDA, DELL) - Responsibility of SONiC FRR release maintainer - - Default 12 months assignment (or until the next upgrade) + - Default 12 months assignment - Upgrade FRR version in Nov release, resolve SONiC FRR upgrade integration issues - - If there is a need for May release upgrade due to feature requirement or other reasons, it should be requested in the May release plan and have the same maintainer to handle the second upgrade - - Triage and fix SONiC FRR issues when applicable. Fix may come from SONiC contributors or from FRR community, maintainer is responsible to drive the fix to unblock SONiC community + - Triage and fix SONiC FRR issues when applicable. Fix may come from SONiC contributors or from FRR community, maintainer is responsible to drive the fix to unblock SONiC community - Submit fixes to FRR project, submit new FRR topo test to FRR project if there is a gap - Release maintainer to subscribe to FRR project, and be the FRR Point-of-Contact on behalf of SONiC - Bring in FRR vulnerabilities and critical patches to SONiC + - If there is a need for May release upgrade due to feature requirement or other reasons, it should be requested in the May release plan and get a consensus with the FRR release maintainer. The person or organization requested the upgrade will be responsible of carrying out FRR upgrade with the same FRR upgrade process described in this proposal. FRR release maintainer will need to work closely with the person or organization to oversee the mid term upgrade, he/she will continue to assume the role of FRR release maintainer until the end of his/her term # SONiC FRR vulnerability and patch upgrade in between SONiC releases @@ -57,22 +57,23 @@ FRR upgrade and patch cadence is largely on need basis in the current SONiC rele - Create sonic-frr branch for the target FRR version - Contact release manager - Find new package dependencies - - Upload newly required packages to a common location (azure?) -- Submodule update to new FRR commit id. + - Upload newly required packages to a common location (Azure) +- Submodule update to new FRR commit id - Code changes - Version change in Makefiles - - New Makefiles for new packages (if any.) - - Port the patches - - Evaluate whether existing FRR patches still applicable to new FRR version - - Apply the old patches into new FRR version, and generate new patch files - - Keep original credentials - - If the changes are already present in new FRR version, discard the old patch file - - If the patch does not apply, manually merge the changes and resolve any conflicts + - New Makefiles for new packages (if any) + - Port patches + - Evaluate whether existing FRR patches still applicable to new FRR version + - Apply the old patches into new FRR version, and generate new patch files. Keep original credentials + - If the changes are already present in new FRR version, discard the old patch file + - If the patch does not apply, manually merge the changes and resolve any conflicts - Build and verify - Use PTF on local server, – or – - Manually verify BGP, VRF, IPv4, IPv6 (on sonic-vs.) - - Create PR -- FRR 8.2.2 upgrade PRs for reference + - Create PR with the following template + - [https://github.com/sonic-net/sonic-buildimage/pull/15965](https://github.com/sonic-net/sonic-buildimage/pull/15965) +- FRR upgrade PRs for reference + - [https://github.com/sonic-net/sonic-buildimage/pull/15965](https://github.com/sonic-net/sonic-buildimage/pull/15965) - [https://github.com/sonic-net/sonic-buildimage/pull/10691](https://github.com/sonic-net/sonic-buildimage/pull/10691) - [https://github.com/sonic-net/sonic-buildimage/pull/11502](https://github.com/sonic-net/sonic-buildimage/pull/11502) - [https://github.com/sonic-net/sonic-buildimage/pull/10947](https://github.com/sonic-net/sonic-buildimage/pull/10947) From 04c32b40e3b7c059976c76b6a48b022cd29590cd Mon Sep 17 00:00:00 2001 From: Adam Yeung <47261130+adyeung@users.noreply.github.com> Date: Tue, 29 Aug 2023 15:39:21 -0700 Subject: [PATCH 4/5] Update sonic_frr_update_process.md --- tsc/frr/sonic_frr_update_process.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tsc/frr/sonic_frr_update_process.md b/tsc/frr/sonic_frr_update_process.md index a032bf5bd0..c585706bf7 100644 --- a/tsc/frr/sonic_frr_update_process.md +++ b/tsc/frr/sonic_frr_update_process.md @@ -29,12 +29,12 @@ FRR upgrade and patch cadence is largely on need basis in the current SONiC rele - SONiC default to rebase FRR in every November community release - SONiC FRR upgrade test requirements - MANDATORY: Pass all Azure pipeline build test and LGTM as required by the standard code PR merge process - - OPTIONAL: Additional tests in respect to specific changeset in the upgrade as deem necessary, manual tests should be automated and submitted to improve future test coverage + - OPTIONAL: Additional tests in respect to specific changeset in the upgrade as deem necessary, manual tests should be automated and submitted to improve future test coverage - Rotate SONiC FRR maintenance duty among repo maintainer org and others (BRCM, MSFT, Alibaba, NVDA, DELL) - Responsibility of SONiC FRR release maintainer - Default 12 months assignment - Upgrade FRR version in Nov release, resolve SONiC FRR upgrade integration issues - - Triage and fix SONiC FRR issues when applicable. Fix may come from SONiC contributors or from FRR community, maintainer is responsible to drive the fix to unblock SONiC community + - Triage and fix SONiC FRR issues when applicable. Fix may come from SONiC contributors or from FRR community, maintainer is responsible to drive the fix to unblock SONiC community - Submit fixes to FRR project, submit new FRR topo test to FRR project if there is a gap - Release maintainer to subscribe to FRR project, and be the FRR Point-of-Contact on behalf of SONiC - Bring in FRR vulnerabilities and critical patches to SONiC @@ -71,7 +71,7 @@ FRR upgrade and patch cadence is largely on need basis in the current SONiC rele - Use PTF on local server, – or – - Manually verify BGP, VRF, IPv4, IPv6 (on sonic-vs.) - Create PR with the following template - - [https://github.com/sonic-net/sonic-buildimage/pull/15965](https://github.com/sonic-net/sonic-buildimage/pull/15965) + - [https://github.com/sonic-net/sonic-buildimage/pull/15965](https://github.com/sonic-net/sonic-buildimage/pull/15965) - FRR upgrade PRs for reference - [https://github.com/sonic-net/sonic-buildimage/pull/15965](https://github.com/sonic-net/sonic-buildimage/pull/15965) - [https://github.com/sonic-net/sonic-buildimage/pull/10691](https://github.com/sonic-net/sonic-buildimage/pull/10691) From 0383076bd85d8a502aec9325d397c3412dc4a5ec Mon Sep 17 00:00:00 2001 From: Adam Yeung <47261130+adyeung@users.noreply.github.com> Date: Wed, 4 Oct 2023 17:08:50 -0700 Subject: [PATCH 5/5] Update sonic_frr_update_process.md --- tsc/frr/sonic_frr_update_process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsc/frr/sonic_frr_update_process.md b/tsc/frr/sonic_frr_update_process.md index c585706bf7..b03342b68a 100644 --- a/tsc/frr/sonic_frr_update_process.md +++ b/tsc/frr/sonic_frr_update_process.md @@ -23,7 +23,7 @@ FRR upgrade and patch cadence is largely on need basis in the current SONiC rele - Nov 2021 - Release 8.1.0 (1200+ commits) - Jul 2021 - Release 8.0.0 (2200+ commits) -- SONiC to stay out from major/minor releases (x.y) and use patch release (.z) for stability (eg, FRR 8.3.1 instead of 8.3 if it is for 202211 release) +- SONiC to stay out from major/minor releases (x.y) and use patch release (.z) for stability (eg, FRR 8.3.1 instead of 8.3 if it is for 202211 release). Another example, at the time of SONiC FRR upgrade, the following FRR versions are avaialble 9.0.1, 8.5.3, 9.0, the guidance is to upgrade with the latest patch release 9.0.1 # SONiC Release FRR Upgrade - SONiC default to rebase FRR in every November community release