@@ -101,6 +101,27 @@ void ReliableMessageMgr::TicklessDebugDumpRetransTable(const char * log)
101
101
#endif
102
102
}
103
103
104
+ void ReliableMessageMgr::TransmitEventAnalyticNotification (const RetransTableEntry & entry, const SessionHandle & sessionHandle,
105
+ const ReliableMessageAnalyticsDelegate::EventType & eventType)
106
+ {
107
+ if (!mAnalyticsDelegate )
108
+ {
109
+ return ;
110
+ }
111
+ uint32_t messageCounter = entry.retainedBuf .GetMessageCounter ();
112
+ auto fabricIndex = sessionHandle->GetFabricIndex ();
113
+ auto destination = kUndefinedNodeId ;
114
+ if (sessionHandle->IsSecureSession ())
115
+ {
116
+ destination = sessionHandle->AsSecureSession ()->GetPeerNodeId ();
117
+ }
118
+ ReliableMessageAnalyticsDelegate::TransmitEvent event = {
119
+ .nodeId = destination, .fabricIndex = fabricIndex, .eventType = eventType, .messageCounter = messageCounter
120
+ };
121
+
122
+ mAnalyticsDelegate ->OnTransmitEvent (event);
123
+ }
124
+
104
125
void ReliableMessageMgr::ExecuteActions ()
105
126
{
106
127
System::Clock::Timestamp now = System::SystemClock ().GetMonotonicTimestamp ();
@@ -155,25 +176,7 @@ void ReliableMessageMgr::ExecuteActions()
155
176
Transport::GetSessionTypeString (session), fabricIndex, ChipLogValueX64 (destination),
156
177
CHIP_CONFIG_RMP_DEFAULT_MAX_RETRANS);
157
178
158
- if (mAnalyticsDelegate )
159
- {
160
- #if !(CHIP_ERROR_LOGGING || CHIP_PROGRESS_LOGGING)
161
- uint32_t messageCounter = entry->retainedBuf .GetMessageCounter ();
162
- auto fabricIndex = sessionHandle->GetFabricIndex ();
163
- auto destination = kUndefinedNodeId ;
164
- if (sessionHandle->IsSecureSession ())
165
- {
166
- destination = sessionHandle->AsSecureSession ()->GetPeerNodeId ();
167
- }
168
- #endif // !(CHIP_ERROR_LOGGING || CHIP_PROGRESS_LOGGING)
169
- ReliableMessageAnalyticsDelegate::TransmitEvent event = { .nodeId = destination,
170
- .fabricIndex = fabricIndex,
171
- .eventType =
172
- ReliableMessageAnalyticsDelegate::EventType::kFailed ,
173
- .messageCounter = messageCounter };
174
-
175
- mAnalyticsDelegate ->OnTransmitEvent (event);
176
- }
179
+ TransmitEventAnalyticNotification (*entry, session, ReliableMessageAnalyticsDelegate::EventType::kFailed );
177
180
178
181
// If the exchange is expecting a response, it will handle sending
179
182
// this notification once it detects that it has not gotten a
@@ -315,24 +318,8 @@ bool ReliableMessageMgr::CheckAndRemRetransTable(ReliableMessageContext * rc, ui
315
318
mRetransTable .ForEachActiveObject ([&](auto * entry) {
316
319
if (entry->ec ->GetReliableMessageContext () == rc && entry->retainedBuf .GetMessageCounter () == ackMessageCounter)
317
320
{
318
- if (mAnalyticsDelegate )
319
- {
320
- auto session = entry->ec ->GetSessionHandle ();
321
- auto fabricIndex = session->GetFabricIndex ();
322
- auto destination = kUndefinedNodeId ;
323
- if (session->IsSecureSession ())
324
- {
325
- destination = session->AsSecureSession ()->GetPeerNodeId ();
326
- }
327
- ReliableMessageAnalyticsDelegate::TransmitEvent event = {
328
- .nodeId = destination,
329
- .fabricIndex = fabricIndex,
330
- .eventType = ReliableMessageAnalyticsDelegate::EventType::kAcknowledged ,
331
- .messageCounter = ackMessageCounter
332
- };
333
-
334
- mAnalyticsDelegate ->OnTransmitEvent (event);
335
- }
321
+ auto session = entry->ec ->GetSessionHandle ();
322
+ TransmitEventAnalyticNotification (*entry, session, ReliableMessageAnalyticsDelegate::EventType::kAcknowledged );
336
323
337
324
// Clear the entry from the retransmision table.
338
325
ClearRetransTable (*entry);
@@ -568,27 +555,11 @@ void ReliableMessageMgr::CalculateNextRetransTime(RetransTableEntry & entry)
568
555
// For initial send the packet has already been submitted to transport layer successfully.
569
556
// On re-transmits we do not know if transport layer is unable to retransmit for some
570
557
// reason, so saying we have sent re-transmit here is a little presumptuous.
571
- if (mAnalyticsDelegate )
572
- {
573
- #if !CHIP_PROGRESS_LOGGING
574
- uint32_t messageCounter = entry.retainedBuf .GetMessageCounter ();
575
- auto fabricIndex = sessionHandle->GetFabricIndex ();
576
- auto destination = kUndefinedNodeId ;
577
- if (sessionHandle->IsSecureSession ())
578
- {
579
- destination = sessionHandle->AsSecureSession ()->GetPeerNodeId ();
580
- }
581
- #endif // !CHIP_PROGRESS_LOGGING
582
- ReliableMessageAnalyticsDelegate::TransmitEvent event = {
583
- .nodeId = destination,
584
- .fabricIndex = fabricIndex,
585
- .eventType = entry.sendCount == 0 ? ReliableMessageAnalyticsDelegate::EventType::kInitialSend
586
- : ReliableMessageAnalyticsDelegate::EventType::kRetransmission ,
587
- .messageCounter = messageCounter
588
- };
589
-
590
- mAnalyticsDelegate ->OnTransmitEvent (event);
591
- }
558
+
559
+ ReliableMessageAnalyticsDelegate::EventType eventType = entry.sendCount == 0
560
+ ? ReliableMessageAnalyticsDelegate::EventType::kInitialSend
561
+ : ReliableMessageAnalyticsDelegate::EventType::kRetransmission ;
562
+ TransmitEventAnalyticNotification (entry, sessionHandle, eventType);
592
563
}
593
564
594
565
#if CHIP_CONFIG_TEST
0 commit comments