[syncd]: Route FDB LEARN/AGED/MOVE events via ProducerStateTable for key-based dedup - #1875
[syncd]: Route FDB LEARN/AGED/MOVE events via ProducerStateTable for key-based dedup#1875xq9mend wants to merge 6 commits into
Conversation
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
ae644aa to
6237b5b
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
…able Update src/sonic-sairedis to ae644aa9: Route FDB LEARN/AGED/MOVE events via ProducerStateTable for key-based dedup Update src/sonic-swss to 50abedff: Consume FDB LEARN/AGED/MOVE events from ProducerStateTable Related PRs: sonic-sairedis: sonic-net/sonic-sairedis#1875 sonic-swss: sonic-net/sonic-swss#4533 Signed-off-by: xq9mend <xq9mend@users.noreply.github.com>
e4bc7b4 to
050ed30
Compare
|
/azp run |
…able Update src/sonic-sairedis to ae644aa9: Route FDB LEARN/AGED/MOVE events via ProducerStateTable for key-based dedup Update src/sonic-swss to 50abedff: Consume FDB LEARN/AGED/MOVE events from ProducerStateTable Related PRs: sonic-sairedis: sonic-net/sonic-sairedis#1875 sonic-swss: sonic-net/sonic-swss#4533 Signed-off-by: xq9mend <xq9mend@users.noreply.github.com>
|
Azure Pipelines successfully started running 1 pipeline(s). |
050ed30 to
149b97a
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
149b97a to
18b9014
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
18b9014 to
ebf146d
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
28f9fea to
83b97d2
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
83b97d2 to
4b213de
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Split FDB notification handling in NotificationProcessor: - FLUSH events continue via PUBLISH/NotificationProducer (existing path) - LEARN/AGED/MOVE events use ProducerStateTable (key-based dedup) ProducerStateTable provides MAC-keyed deduplication so rapid flap storms for the same MAC+BVID collapse to one entry instead of flooding the notification queue. Fallback to PUBLISH is retained when m_fdbEventStateProducer is null (ZeroMQ mode). Adds REDIS_TABLE_FDB_EVENT_STATE define in sairediscommon.h. Passes m_dbAsic to NotificationProcessor constructor from Syncd. Signed-off-by: xq9mend <xq9mend@users.noreply.github.com>
…essor Cover the three new code paths added in process_on_fdb_event: - FdbLearnGoesToProducerStateTable: LEARN event writes to _FDB_EVENT_STATE:key - FdbAgedDeletesFromProducerStateTable: AGED event deletes the scratch key - FdbFlushDoesNotWriteToProducerStateTable: FLUSH event goes via PUBLISH Each test creates a NotificationProcessor with dbAsic to initialize m_fdbEventStateProducer, then verifies the Redis state after syncProcessNotification(). Signed-off-by: xq9mend <xq9mend@users.noreply.github.com>
4b213de to
7a4a5b8
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
… tests Replace per-key del calls with dbAsic->flushdb() at the end of each new NotificationProcessor test. This ensures the entire ASIC_DB is clean after our tests run, preventing any Redis state pollution that could affect FlexCounter or other tests running in the same process. Signed-off-by: xq9mend <xq9mend@users.noreply.github.com>
7a4a5b8 to
7ecf93f
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azpw run Azure.sonic-sairedis |
|
Retrying failed(or canceled) jobs... |
|
Retrying failed(or canceled) stages in build 1146339: ✅Stage BuildTrixie:
✅Stage Test:
|
|
CI status: All checks pass except This PR routes FDB LEARN/AGED/MOVE events via ProducerStateTable and is code-complete. Requesting a merge bypass given the known-broken vstest infra. CC @lolyu @croos12 @prsunny @Ndancejic |
Signed-off-by: xq9mend <xq9mend@users.noreply.github.com>
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Signed-off-by: xq9mend <xq9mend@users.noreply.github.com>
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Signed-off-by: xq9mend <xq9mend@users.noreply.github.com>
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Route FDB LEARN/AGED/MOVE events via ProducerStateTable for key-based dedup.
Adds REDIS_TABLE_FDB_EVENT_STATE define in sairediscommon.h. Passes m_dbAsic to NotificationProcessor constructor from Syncd.
FLUSH events continue via PUBLISH/NotificationProducer (existing path). LEARN/AGED/MOVE events use ProducerStateTable (key-based dedup). ProducerStateTable provides MAC-keyed deduplication so rapid flap storms for the same MAC+BVID collapse to one entry instead of flooding the notification queue.
Fallback to PUBLISH is retained when m_fdbEventStateProducer is null (ZeroMQ mode).