-
Notifications
You must be signed in to change notification settings - Fork 270
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[sonic-sairedis] Support bulk counter #1094
[sonic-sairedis] Support bulk counter #1094
Conversation
Hi @kcudnik , could you please review this? |
Hi @liat-grozovik , could you please help add kcudnik as reviewer? |
The coverage report does not really reflect the coverage:
My major change is on FlexCounter.cpp whose coverage is 95%. Changes to other files are only to have a default implementation for new SAI APIs to make compiler happy. I am not sure that it is necessary to cover them as it does not contains real logic. |
please address code coverage |
36267a0
/azpw run |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
please address code coverage |
Hi @kcudnik , could you please review and sign-off? |
/azpw run Azure.sonic-sairedis |
/AzurePipelines run Azure.sonic-sairedis |
Azure Pipelines successfully started running 1 pipeline(s). |
/azpw run Azure.sonic-sairedis |
/AzurePipelines run Azure.sonic-sairedis |
Azure Pipelines successfully started running 1 pipeline(s). |
@kcudnik could you please help to merge? |
Update sonic-sairedis submodule pointer to include the following: * [sonic-sairedis] Support bulk counter ([sonic-net#1094](sonic-net/sonic-sairedis#1094)) * Transfer organization from Azure to sonic-net ([sonic-net#1095](sonic-net/sonic-sairedis#1095)) * [BFN] Provide unified approach to select P4 profile based on chip family ([sonic-net#1089](sonic-net/sonic-sairedis#1089)) * Add support of mdio IPC server class using sai switch api and unix socket ([sonic-net#1080](sonic-net/sonic-sairedis#1080)) * [FlexCounter] Refactor FlexCounter class ([sonic-net#1073](sonic-net/sonic-sairedis#1073)) Signed-off-by: dprital <drorp@nvidia.com>
Update sonic-sairedis submodule pointer to include the following: * Run 20 vs tests at a time. ([sonic-net#1111](sonic-net/sonic-sairedis#1111)) * [asan] suppress the static variable leaks ([sonic-net#1085](sonic-net/sonic-sairedis#1085)) * [sonic-sairedis] Support bulk counter ([sonic-net#1094](sonic-net/sonic-sairedis#1094)) * Transfer organization from Azure to sonic-net ([sonic-net#1095](sonic-net/sonic-sairedis#1095)) * [BFN] Provide unified approach to select P4 profile based on chip family ([sonic-net#1089](sonic-net/sonic-sairedis#1089)) Signed-off-by: dprital <drorp@nvidia.com>
* 660a920 [Chassis] Create fabric ports for switch_type fabric. (sonic-net/sonic-sairedis#1114) * 8140c22 Fix issue: bulk counter feature cannot compile on platforms having no sai_bulk_object_get_stats/sai_bulk_object_clear_stats (sonic-net/sonic-sairedis#1105) * 0aa60f5 [lgtm] Add uuid library (sonic-net/sonic-sairedis#1119) * e8a01a8 Add retry on zmq functions if fail with EINTR. (sonic-net/sonic-sairedis#1109) * 594b242 Add SAI_PORT_ATTR_OPER_SPEED support (sonic-net/sonic-sairedis#1107) * 4c9e048 Add Xsight specific syncd start options (sonic-net/sonic-sairedis#1112) * da26ace Run 20 vs tests at a time. (sonic-net/sonic-sairedis#1111) * ffc4109 [asan] suppress the static variable leaks (sonic-net/sonic-sairedis#1085) * bfd37e3 [sonic-sairedis] Support bulk counter (sonic-net/sonic-sairedis#1094) * 90ba09a Transfer organization from Azure to sonic-net (sonic-net/sonic-sairedis#1095) * 4853881 [BFN] Provide unified approach to select P4 profile based on chip family (sonic-net/sonic-sairedis#1089)
Note: the build may fail due to SAI header dependency. Vendor SAI implementation shall include this PR: opencomputeproject/SAI#1352 HLD: https://github.com/sonic-net/SONiC/blob/master/doc/bulk_counter/bulk_counter.md **Why I did this?** PR https://github.com/opencomputeproject/SAI/pull/1352/files introduced new SAI APIs that supports bulk stats: sai_bulk_object_get_stats sai_bulk_object_clear_stats SONiC flex counter infrastructure shall utilize bulk stats API to gain better performance. This document discusses how to integrate these two new APIs to SONiC. **What I did?** 1. Support using bulk stats APIs based on object type. E.g. for a counter group that queries queue and pg stats, queue stats support bulk while pg stats does not, in that case queue stats shall use bulk API, pg stats shall use non bulk API 2. Automatically fall back to old way if bulk stats APIs are not supported **How I test this** Almost full unit test coverage Manual test
Note: the build may fail due to SAI header dependency. Vendor SAI implementation shall include this PR: opencomputeproject/SAI#1352
HLD: https://github.com/sonic-net/SONiC/blob/master/doc/bulk_counter/bulk_counter.md
Why I did this?
PR https://github.com/opencomputeproject/SAI/pull/1352/files introduced new SAI APIs that supports bulk stats:
sai_bulk_object_get_stats
sai_bulk_object_clear_stats
SONiC flex counter infrastructure shall utilize bulk stats API to gain better performance. This document discusses how to integrate these two new APIs to SONiC.
What I did?
How I test this
Almost full unit test coverage
Manual test