From 280e51b1e686ddbada1234bb546ac9e018fb1d08 Mon Sep 17 00:00:00 2001 From: Stepan Blyshchak Date: Fri, 5 Nov 2021 14:09:45 +0200 Subject: [PATCH 1/3] Add SAI version check to SONiC build system Signed-off-by: Stepan Blyshchak --- .../img/sai-sonic-build-system.drawio.png | Bin 0 -> 23585 bytes .../img/sonic-sairedis-check.drawio.png | Bin 0 -> 14181 bytes doc/sonic-build-system/saiversioncheck.md | 83 ++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100755 doc/sonic-build-system/img/sai-sonic-build-system.drawio.png create mode 100755 doc/sonic-build-system/img/sonic-sairedis-check.drawio.png create mode 100644 doc/sonic-build-system/saiversioncheck.md diff --git a/doc/sonic-build-system/img/sai-sonic-build-system.drawio.png b/doc/sonic-build-system/img/sai-sonic-build-system.drawio.png new file mode 100755 index 0000000000000000000000000000000000000000..93fce0634b0327b525f563e1e3cc7d9e2a5f6514 GIT binary patch literal 23585 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 AA^-pY literal 0 HcmV?d00001 diff --git a/doc/sonic-build-system/img/sonic-sairedis-check.drawio.png b/doc/sonic-build-system/img/sonic-sairedis-check.drawio.png new file mode 100755 index 0000000000000000000000000000000000000000..a9e1cbad72611dda4a6a2491cdffc0fde858951c GIT binary patch literal 14181 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