From eb93589286ccf6f4415551ce5648d70462d69013 Mon Sep 17 00:00:00 2001 From: syuan Date: Mon, 7 Jul 2025 23:19:27 +0000 Subject: [PATCH 1/8] Initial version of SONiC FIPS POST support. --- doc/fips/SONiC-FIPS-POST.md | 88 ++++++++++++++++++++++ doc/fips/images/fips-post-compliance.png | Bin 0 -> 19359 bytes doc/fips/images/fips-post-macsec-init.png | Bin 0 -> 17076 bytes doc/fips/images/fips-post-overview.png | Bin 0 -> 23368 bytes doc/fips/images/fips-post-switch-init.png | Bin 0 -> 26484 bytes 5 files changed, 88 insertions(+) create mode 100644 doc/fips/SONiC-FIPS-POST.md create mode 100644 doc/fips/images/fips-post-compliance.png create mode 100644 doc/fips/images/fips-post-macsec-init.png create mode 100644 doc/fips/images/fips-post-overview.png create mode 100644 doc/fips/images/fips-post-switch-init.png diff --git a/doc/fips/SONiC-FIPS-POST.md b/doc/fips/SONiC-FIPS-POST.md new file mode 100644 index 00000000000..271a8f3287e --- /dev/null +++ b/doc/fips/SONiC-FIPS-POST.md @@ -0,0 +1,88 @@ +# SONiC FIPS POST support + +## Revision +| Rev | Date | Author | Change Description | +|:---:|:-----------:|:------------------:|--------------------| +| 1 | Jul-7 2025 | Song Yuan | Initial Version | + +## Table of Contents +* [Overview](#Overview) +* [Design requirements](#Design-requirements) +* [Deisgn details](#Design-details) + * [State DB](#State-DB) + * [Enabling POST in SAI switch init](#Enabling-POST-in-SAI-switch-init) + * [Enabling POST in SAI MACSec init](#Enabling-POST-in-SAI-MACSec-init) + * [Checking SAI POST status](#Checking-SAI-POST-status) + * [Handling SAI POST failure](#Handling-SAI-POST-failure) + * [Enforcing FIPS compliance](#Enforcing-FIPS-compliance} + +## Overview + +This document describes SONiC design for Federal Information Processing Standards (FIPS) 140-3 standard compliance. Especially, the focus of the document is to trigger Pre-Operational Self-Test (POST) in SONiC and also ensure SONiC’s behavior is compliant to FIPS standard after POST. + +## Design requirements + +The design must meet the following requirements: +- In order to accommodate different forwarding ASIC architecture or SAI implementation, the design should support enabling POST at either switch level (during switch init) or at MACSec engine level (during MACSec engine init). +- SONiC MACSec configuration must be processed only after POST passes. +- POST failure must not affect the operation of non-MACSec ports. +- Explicit visibility must be provided if POST fails, for example, in syslog. The syslog message must include the details of the failure. For example, SAI object Id of ports that fail POST and the corresponding MACSec engine. + +## Deisgn details + +The following figure depicts the data flow and SONiC components in the design. Orchagent is responsible for triggering POST via SAI calls and publishing POST status in State DB. MACSec container, precisely MACSecMgr, is enhanced to be POST aware and only process MACSec configuration after POST has passed. + +![](images/fips-post-overview.png) + +### State DB + +The following table is added to State DB to track POST status. +``` +POST_STATUS_TABLE + +;Store POST status + +key = POST_STATUS_TABLE|macsec +status = "in-progress" ; POST is in-progress. + "not-started" ; POST was not enabled in switch init. + "pass" ; POST passed. + "fail" ; POST failed. + "unsupported" ; POST is not supported by SAI. + +``` + +### Enabling POST in SAI switch init + +Orchagent enables POST when creating SAI switch regardless of whether the MACSec feature is supported or enabled. This can avoid triggering POST after SAI switch creation, e.g., MACSec feature is enabled later. The below flow chart depicts the process. + +![](images/fips-post-switch-init.png) + +Orchagent enables POST when creating SAI switch. After SAI switch is created, Orchagent queries SAI POST capability. If POST is supported in switch init, Orchagent sets POST status to in-progress and waits for POST completion callback. Otherwise, if POST is supported only in MACSec init, Orchagent sets POST status to not-started, which informs MACSecOrch of performing POST in its initialization. + +If POST is not supported in either switch or MACSec init, then SAI does not support POST. The possible scenarios are: +- The platform does not support MACSec. Or +- The platform does support MACSec. But the deployment does not require FIPS compliance. Or +- The platform does support MACSec, and the vendor incrementally supports FIPS when they can. +In the above scenarios, Orchagent sets POST status to unsupported, which means POST is not required and is no-op. + +### Enabling POST in SAI MACSec init + +POST is performed by MACSecOrch when POST is supported only in MACSec init. The following flow chart demonstrates the process. + +![](images/fips-post-macsec-init.png) + +POST is triggered in MACSecOrch initialization. Since POST is enabled via SAI MACSec create API, SAI MACSec object may be created proactively and before any MACSec port is configured. + +### Checking SAI POST status + +Since SAI supports POST completion callback, a callback or notification function is provided when enabling POST in SAI switch or MACSec creation. Once being invoked, the callback function sets POST status in State DB accordingly based on the POST status returned by SAI. + +### Handling SAI POST failure + +If SAI POST fails, MACSecOrch reads POST status of all MACSec ports and finds out which port has failed in POST. MACSecOrch then adds the details of the failure in syslog. + +### Enforcing FIPS compliance + +In order to be compliant to FIPS, SONiC should process MACSec configuration only after POST passes. This is achieved by enhancing MACSecMgr, running in MACSec container, to check POST status published in State DB before processing any MACSec configuration, as shown in the flow chart below: + +![](images/fips-post-compliance.png) \ No newline at end of file diff --git a/doc/fips/images/fips-post-compliance.png b/doc/fips/images/fips-post-compliance.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca899cac59bb9250af2f2a0649a30bc8b60181f GIT binary patch literal 19359 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 literal 0 HcmV?d00001 diff --git a/doc/fips/images/fips-post-macsec-init.png b/doc/fips/images/fips-post-macsec-init.png new file mode 100644 index 0000000000000000000000000000000000000000..ddef1f3dcd0c07221db4d61d44db57382169c208 GIT binary patch literal 17076 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 literal 0 HcmV?d00001 diff --git a/doc/fips/images/fips-post-switch-init.png b/doc/fips/images/fips-post-switch-init.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b2ed7e230e369840c60c4808f0f0942a142701 GIT binary patch literal 26484 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 Z$f?ckI)8MKhNqKWI@*R>a1E!}e*@OV4CMd- literal 0 HcmV?d00001 From df8ed3596bf5f61eec194ab9cd780fb35b2cc8ea Mon Sep 17 00:00:00 2001 From: syuan Date: Mon, 7 Jul 2025 23:28:38 +0000 Subject: [PATCH 2/8] Update HLD. --- doc/fips/SONiC-FIPS-POST.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/fips/SONiC-FIPS-POST.md b/doc/fips/SONiC-FIPS-POST.md index 271a8f3287e..9cc785afef6 100644 --- a/doc/fips/SONiC-FIPS-POST.md +++ b/doc/fips/SONiC-FIPS-POST.md @@ -3,7 +3,7 @@ ## Revision | Rev | Date | Author | Change Description | |:---:|:-----------:|:------------------:|--------------------| -| 1 | Jul-7 2025 | Song Yuan | Initial Version | +| 1 | Jul-7 2025 | Song Yuan (Arista Networks) | Initial Version | ## Table of Contents * [Overview](#Overview) @@ -14,7 +14,7 @@ * [Enabling POST in SAI MACSec init](#Enabling-POST-in-SAI-MACSec-init) * [Checking SAI POST status](#Checking-SAI-POST-status) * [Handling SAI POST failure](#Handling-SAI-POST-failure) - * [Enforcing FIPS compliance](#Enforcing-FIPS-compliance} + * [Enforcing FIPS compliance](#Enforcing-FIPS-compliance) ## Overview @@ -63,6 +63,7 @@ If POST is not supported in either switch or MACSec init, then SAI does not supp - The platform does not support MACSec. Or - The platform does support MACSec. But the deployment does not require FIPS compliance. Or - The platform does support MACSec, and the vendor incrementally supports FIPS when they can. + In the above scenarios, Orchagent sets POST status to unsupported, which means POST is not required and is no-op. ### Enabling POST in SAI MACSec init From cd10853837696ee86f9edf73e1273db2746eab52 Mon Sep 17 00:00:00 2001 From: syuan Date: Mon, 7 Jul 2025 23:50:27 +0000 Subject: [PATCH 3/8] Update HLD. --- doc/fips/SONiC-FIPS-POST.md | 8 ++++---- doc/fips/fips-post-compliance.png | Bin 0 -> 19359 bytes doc/fips/fips-post-macsec-init.png | Bin 0 -> 17076 bytes doc/fips/fips-post-overview.png | Bin 0 -> 23368 bytes doc/fips/fips-post-switch-init.png | Bin 0 -> 26484 bytes 5 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 doc/fips/fips-post-compliance.png create mode 100644 doc/fips/fips-post-macsec-init.png create mode 100644 doc/fips/fips-post-overview.png create mode 100644 doc/fips/fips-post-switch-init.png diff --git a/doc/fips/SONiC-FIPS-POST.md b/doc/fips/SONiC-FIPS-POST.md index 9cc785afef6..aff9407a7e2 100644 --- a/doc/fips/SONiC-FIPS-POST.md +++ b/doc/fips/SONiC-FIPS-POST.md @@ -32,7 +32,7 @@ The design must meet the following requirements: The following figure depicts the data flow and SONiC components in the design. Orchagent is responsible for triggering POST via SAI calls and publishing POST status in State DB. MACSec container, precisely MACSecMgr, is enhanced to be POST aware and only process MACSec configuration after POST has passed. -![](images/fips-post-overview.png) +![](fips-post-overview.png) ### State DB @@ -55,7 +55,7 @@ status = "in-progress" ; POST is in-progress. Orchagent enables POST when creating SAI switch regardless of whether the MACSec feature is supported or enabled. This can avoid triggering POST after SAI switch creation, e.g., MACSec feature is enabled later. The below flow chart depicts the process. -![](images/fips-post-switch-init.png) +![](fips-post-switch-init.png) Orchagent enables POST when creating SAI switch. After SAI switch is created, Orchagent queries SAI POST capability. If POST is supported in switch init, Orchagent sets POST status to in-progress and waits for POST completion callback. Otherwise, if POST is supported only in MACSec init, Orchagent sets POST status to not-started, which informs MACSecOrch of performing POST in its initialization. @@ -70,7 +70,7 @@ In the above scenarios, Orchagent sets POST status to unsupported, which means P POST is performed by MACSecOrch when POST is supported only in MACSec init. The following flow chart demonstrates the process. -![](images/fips-post-macsec-init.png) +![](fips-post-macsec-init.png) POST is triggered in MACSecOrch initialization. Since POST is enabled via SAI MACSec create API, SAI MACSec object may be created proactively and before any MACSec port is configured. @@ -86,4 +86,4 @@ If SAI POST fails, MACSecOrch reads POST status of all MACSec ports and finds o In order to be compliant to FIPS, SONiC should process MACSec configuration only after POST passes. This is achieved by enhancing MACSecMgr, running in MACSec container, to check POST status published in State DB before processing any MACSec configuration, as shown in the flow chart below: -![](images/fips-post-compliance.png) \ No newline at end of file +![](fips-post-compliance.png) \ No newline at end of file diff --git a/doc/fips/fips-post-compliance.png b/doc/fips/fips-post-compliance.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca899cac59bb9250af2f2a0649a30bc8b60181f GIT binary patch literal 19359 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 literal 0 HcmV?d00001 diff --git a/doc/fips/fips-post-macsec-init.png b/doc/fips/fips-post-macsec-init.png new file mode 100644 index 0000000000000000000000000000000000000000..ddef1f3dcd0c07221db4d61d44db57382169c208 GIT binary patch literal 17076 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 literal 0 HcmV?d00001 diff --git a/doc/fips/fips-post-switch-init.png b/doc/fips/fips-post-switch-init.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b2ed7e230e369840c60c4808f0f0942a142701 GIT binary patch literal 26484 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 Z$f?ckI)8MKhNqKWI@*R>a1E!}e*@OV4CMd- literal 0 HcmV?d00001 From eb3dd1bd054832b632b68ac03210c9a7bb343467 Mon Sep 17 00:00:00 2001 From: syuan Date: Mon, 7 Jul 2025 23:52:54 +0000 Subject: [PATCH 4/8] Update HLD. --- doc/fips/SONiC-FIPS-POST.md | 8 ++++---- doc/fips/fips-post-compliance.png | Bin 19359 -> 0 bytes doc/fips/fips-post-macsec-init.png | Bin 17076 -> 0 bytes doc/fips/fips-post-overview.png | Bin 23368 -> 0 bytes doc/fips/fips-post-switch-init.png | Bin 26484 -> 0 bytes 5 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 doc/fips/fips-post-compliance.png delete mode 100644 doc/fips/fips-post-macsec-init.png delete mode 100644 doc/fips/fips-post-overview.png delete mode 100644 doc/fips/fips-post-switch-init.png diff --git a/doc/fips/SONiC-FIPS-POST.md b/doc/fips/SONiC-FIPS-POST.md index aff9407a7e2..0e4cd55f19a 100644 --- a/doc/fips/SONiC-FIPS-POST.md +++ b/doc/fips/SONiC-FIPS-POST.md @@ -32,7 +32,7 @@ The design must meet the following requirements: The following figure depicts the data flow and SONiC components in the design. Orchagent is responsible for triggering POST via SAI calls and publishing POST status in State DB. MACSec container, precisely MACSecMgr, is enhanced to be POST aware and only process MACSec configuration after POST has passed. -![](fips-post-overview.png) +![](images/fips-post-overview.png) ### State DB @@ -55,7 +55,7 @@ status = "in-progress" ; POST is in-progress. Orchagent enables POST when creating SAI switch regardless of whether the MACSec feature is supported or enabled. This can avoid triggering POST after SAI switch creation, e.g., MACSec feature is enabled later. The below flow chart depicts the process. -![](fips-post-switch-init.png) +![](images/fips-post-switch-init.png) Orchagent enables POST when creating SAI switch. After SAI switch is created, Orchagent queries SAI POST capability. If POST is supported in switch init, Orchagent sets POST status to in-progress and waits for POST completion callback. Otherwise, if POST is supported only in MACSec init, Orchagent sets POST status to not-started, which informs MACSecOrch of performing POST in its initialization. @@ -70,7 +70,7 @@ In the above scenarios, Orchagent sets POST status to unsupported, which means P POST is performed by MACSecOrch when POST is supported only in MACSec init. The following flow chart demonstrates the process. -![](fips-post-macsec-init.png) +![](images/fips-post-macsec-init.png) POST is triggered in MACSecOrch initialization. Since POST is enabled via SAI MACSec create API, SAI MACSec object may be created proactively and before any MACSec port is configured. @@ -86,4 +86,4 @@ If SAI POST fails, MACSecOrch reads POST status of all MACSec ports and finds o In order to be compliant to FIPS, SONiC should process MACSec configuration only after POST passes. This is achieved by enhancing MACSecMgr, running in MACSec container, to check POST status published in State DB before processing any MACSec configuration, as shown in the flow chart below: -![](fips-post-compliance.png) \ No newline at end of file +![](images/fips-post-compliance.png) diff --git a/doc/fips/fips-post-compliance.png b/doc/fips/fips-post-compliance.png deleted file mode 100644 index 9ca899cac59bb9250af2f2a0649a30bc8b60181f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19359 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 diff --git a/doc/fips/fips-post-macsec-init.png b/doc/fips/fips-post-macsec-init.png deleted file mode 100644 index ddef1f3dcd0c07221db4d61d44db57382169c208..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17076 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 diff --git a/doc/fips/fips-post-switch-init.png b/doc/fips/fips-post-switch-init.png deleted file mode 100644 index a6b2ed7e230e369840c60c4808f0f0942a142701..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26484 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 Z$f?ckI)8MKhNqKWI@*R>a1E!}e*@OV4CMd- From 5e8635e13e37714fdee6bb2c7b8e6c3757c2b227 Mon Sep 17 00:00:00 2001 From: syuan Date: Tue, 8 Jul 2025 00:01:22 +0000 Subject: [PATCH 5/8] Update HLD. --- doc/fips/images/fips-post-compliance.png | Bin 19359 -> 19392 bytes doc/fips/images/fips-post-macsec-init.png | Bin 17076 -> 17319 bytes doc/fips/images/fips-post-overview.png | Bin 23368 -> 23899 bytes doc/fips/images/fips-post-switch-init.png | Bin 26484 -> 26540 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/fips/images/fips-post-compliance.png b/doc/fips/images/fips-post-compliance.png index 9ca899cac59bb9250af2f2a0649a30bc8b60181f..b5ece3e9b8675d86dcc378f91dfae47b11089e4e 100644 GIT binary patch literal 19392 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 lfByv2|EIr7wQ)!!uJs0Qn*F5|v;#ww(3`0(e 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 diff --git a/doc/fips/images/fips-post-macsec-init.png b/doc/fips/images/fips-post-macsec-init.png index ddef1f3dcd0c07221db4d61d44db57382169c208..3e7b87dc9237193344306ef12d013c2179e43903 100644 GIT binary patch literal 17319 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 literal 17076 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 literal 23368 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 diff --git a/doc/fips/images/fips-post-switch-init.png b/doc/fips/images/fips-post-switch-init.png index a6b2ed7e230e369840c60c4808f0f0942a142701..05bc7543891cbaefb2c94c23c9e92b786f2d71ae 100644 GIT binary patch literal 26540 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 J(VEc6zX2mU+I#>2 literal 26484 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 Z$f?ckI)8MKhNqKWI@*R>a1E!}e*@OV4CMd- From 0dbbf489a3c15e333ab77564cd9e0701eeb7280f Mon Sep 17 00:00:00 2001 From: syuan Date: Wed, 27 Aug 2025 22:17:39 +0000 Subject: [PATCH 6/8] Update HLD. --- doc/fips/SONiC-FIPS-POST.md | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/doc/fips/SONiC-FIPS-POST.md b/doc/fips/SONiC-FIPS-POST.md index 0e4cd55f19a..26b6d9b944a 100644 --- a/doc/fips/SONiC-FIPS-POST.md +++ b/doc/fips/SONiC-FIPS-POST.md @@ -36,18 +36,18 @@ The following figure depicts the data flow and SONiC components in the design. O ### State DB -The following table is added to State DB to track POST status. +The following table is added to State DB to track MACSec POST status, including SAI POST result/status. ``` -POST_STATUS_TABLE +FIPS_MACSEC_POST_TABLE -;Store POST status +;Store MACSec POST status -key = POST_STATUS_TABLE|macsec -status = "in-progress" ; POST is in-progress. - "not-started" ; POST was not enabled in switch init. - "pass" ; POST passed. - "fail" ; POST failed. - "unsupported" ; POST is not supported by SAI. +key = FIPS_MACSEC_POST_TABLE|sai +status = "switch-level-post-in-progress" ; SAI switch level POST is in-progress. + "macsec-level-post-in-progress" ; SAI MACsec level POST will be triggered or in-progress. + "pass" ; SAI POST passed. + "fail" ; SAI POST failed. + "disabled" ; SAI POST is disabled. ``` @@ -80,7 +80,15 @@ Since SAI supports POST completion callback, a callback or notification function ### Handling SAI POST failure -If SAI POST fails, MACSecOrch reads POST status of all MACSec ports and finds out which port has failed in POST. MACSecOrch then adds the details of the failure in syslog. +If SAI POST fails, MACSecOrch reads POST status of all MACSec ports and finds out which port has failed in POST. MACSecOrch then adds the details of the failure in syslog. The following syslog is added to report SAI POST failure. +Swith level POST failure +``` +Switch MACSec POST failed +``` +MACSec level POST failure +``` +MACSec POST failed: oid , direction ingress|egresss +``` ### Enforcing FIPS compliance From eace6b7992fca8959fca9c1298454d5a54fbe42f Mon Sep 17 00:00:00 2001 From: syuan Date: Wed, 27 Aug 2025 22:19:34 +0000 Subject: [PATCH 7/8] Update HLD. --- doc/fips/SONiC-FIPS-POST.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/fips/SONiC-FIPS-POST.md b/doc/fips/SONiC-FIPS-POST.md index 26b6d9b944a..54af60e3672 100644 --- a/doc/fips/SONiC-FIPS-POST.md +++ b/doc/fips/SONiC-FIPS-POST.md @@ -81,6 +81,7 @@ Since SAI supports POST completion callback, a callback or notification function ### Handling SAI POST failure If SAI POST fails, MACSecOrch reads POST status of all MACSec ports and finds out which port has failed in POST. MACSecOrch then adds the details of the failure in syslog. The following syslog is added to report SAI POST failure. + Swith level POST failure ``` Switch MACSec POST failed From ea8a18b07bdbadc48dd23e4771d20752d38000b3 Mon Sep 17 00:00:00 2001 From: syuan Date: Fri, 12 Sep 2025 15:13:56 +0000 Subject: [PATCH 8/8] Update and rename HLD --- .../{SONiC-FIPS-POST.md => SONiC-SAI-POST.md} | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) rename doc/fips/{SONiC-FIPS-POST.md => SONiC-SAI-POST.md} (76%) diff --git a/doc/fips/SONiC-FIPS-POST.md b/doc/fips/SONiC-SAI-POST.md similarity index 76% rename from doc/fips/SONiC-FIPS-POST.md rename to doc/fips/SONiC-SAI-POST.md index 54af60e3672..a89847038b2 100644 --- a/doc/fips/SONiC-FIPS-POST.md +++ b/doc/fips/SONiC-SAI-POST.md @@ -1,4 +1,4 @@ -# SONiC FIPS POST support +# SONiC SAI POST support for MACSec ## Revision | Rev | Date | Author | Change Description | @@ -18,7 +18,7 @@ ## Overview -This document describes SONiC design for Federal Information Processing Standards (FIPS) 140-3 standard compliance. Especially, the focus of the document is to trigger Pre-Operational Self-Test (POST) in SONiC and also ensure SONiC’s behavior is compliant to FIPS standard after POST. +This document describes SONiC design for Federal Information Processing Standards (FIPS) 140-3 standard compliance. Especially, the focus of the document is to trigger MACSec Pre-Operational Self-Test (POST) in SONiC and also ensure SONiC’s behavior is compliant to FIPS standard after POST. ## Design requirements @@ -30,7 +30,7 @@ The design must meet the following requirements: ## Deisgn details -The following figure depicts the data flow and SONiC components in the design. Orchagent is responsible for triggering POST via SAI calls and publishing POST status in State DB. MACSec container, precisely MACSecMgr, is enhanced to be POST aware and only process MACSec configuration after POST has passed. +The following figure depicts the data flow and SONiC components in the design. Orchagent is responsible for triggering POST via SAI calls and publishing POST status in State DB. MACSec container, precisely MACSecMgr, is enhanced to be POST aware and only process MACSec configuration after POST has passed. ![](images/fips-post-overview.png) @@ -51,6 +51,14 @@ status = "switch-level-post-in-progress" ; SAI switch level POST is in-progre ``` +### Enabling SAI POST + +SAI POST is enabled only when FIPS is enabled in SONiC. FIPS can be configured via either sonic-installer, i.e., set-fips option, or config file, i.e.,/etc/sonic/fips.json. Enabling FIPS requires switch reboot, and FIPS config will be populated in FIPS_STATS table in State DB after reboot. However, there may be a latency to populate FIPS config in State DB. Therefore, checking FIPS config in State DB is reliable because Orchagent may start before FIPS config is populated. Instead, Orchagent will directly check FIPS config in the following files: +- /proc/cmdline : When FIPS is configured via sonic-installer, the result, e.g., sonic_fips=1, is written in this file. +- /etc/fips/fips_enable : If FIPS is configured via config file /etc/sonic/fips.json, /etc/fips/fips_enable is updated accordingly. + +Orchagent will trigger SAI POST if FIPS is enabled in either of the above files. + ### Enabling POST in SAI switch init Orchagent enables POST when creating SAI switch regardless of whether the MACSec feature is supported or enabled. This can avoid triggering POST after SAI switch creation, e.g., MACSec feature is enabled later. The below flow chart depicts the process. @@ -59,12 +67,7 @@ Orchagent enables POST when creating SAI switch regardless of whether the MACSec Orchagent enables POST when creating SAI switch. After SAI switch is created, Orchagent queries SAI POST capability. If POST is supported in switch init, Orchagent sets POST status to in-progress and waits for POST completion callback. Otherwise, if POST is supported only in MACSec init, Orchagent sets POST status to not-started, which informs MACSecOrch of performing POST in its initialization. -If POST is not supported in either switch or MACSec init, then SAI does not support POST. The possible scenarios are: -- The platform does not support MACSec. Or -- The platform does support MACSec. But the deployment does not require FIPS compliance. Or -- The platform does support MACSec, and the vendor incrementally supports FIPS when they can. - -In the above scenarios, Orchagent sets POST status to unsupported, which means POST is not required and is no-op. +If POST is not supported in either switch or MACSec init, then SAI does not support POST. In this case, Orchagent sets POST status to fail if FIPS is enabled in SONiC. ### Enabling POST in SAI MACSec init