Matter SDK Coverage Report
Current view: top level - include/platform - DiagnosticDataProvider.h (source / functions) Coverage Total Hit
Test: SHA:4d2388ac7eed75b2fe5e05e20de377999c632502 Lines: 2.4 % 82 2
Test Date: 2025-07-27 07:17:09 Functions: 4.4 % 45 2

            Line data    Source code
       1              : /*
       2              :  *
       3              :  *    Copyright (c) 2021,2024 Project CHIP Authors
       4              :  *
       5              :  *    Licensed under the Apache License, Version 2.0 (the "License");
       6              :  *    you may not use this file except in compliance with the License.
       7              :  *    You may obtain a copy of the License at
       8              :  *
       9              :  *        http://www.apache.org/licenses/LICENSE-2.0
      10              :  *
      11              :  *    Unless required by applicable law or agreed to in writing, software
      12              :  *    distributed under the License is distributed on an "AS IS" BASIS,
      13              :  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      14              :  *    See the License for the specific language governing permissions and
      15              :  *    limitations under the License.
      16              :  */
      17              : 
      18              : /**
      19              :  *    @file
      20              :  *          Defines the public interface for the Device Layer DiagnosticDataProvider object.
      21              :  */
      22              : 
      23              : #pragma once
      24              : 
      25              : #include <app-common/zap-generated/cluster-objects.h>
      26              : #include <inet/InetInterface.h>
      27              : #include <lib/core/ClusterEnums.h>
      28              : #include <platform/CHIPDeviceConfig.h>
      29              : #include <platform/GeneralFaults.h>
      30              : 
      31              : namespace chip {
      32              : namespace DeviceLayer {
      33              : 
      34              : // Maximum length of vendor defined name or prefix of the software thread that is
      35              : // static for the duration of the thread.
      36              : static constexpr size_t kMaxThreadNameLength = 8;
      37              : // 48-bit IEEE MAC Address or a 64-bit IEEE MAC Address (e.g. EUI-64).
      38              : inline constexpr size_t kMaxHardwareAddrSize = 8;
      39              : 
      40              : inline constexpr size_t kMaxIPv4AddrSize  = 4;
      41              : inline constexpr size_t kMaxIPv6AddrSize  = 16;
      42              : inline constexpr size_t kMaxIPv4AddrCount = 4;
      43              : inline constexpr size_t kMaxIPv6AddrCount = 8;
      44              : 
      45              : using BootReasonType = app::Clusters::GeneralDiagnostics::BootReasonEnum;
      46              : 
      47              : struct ThreadMetrics : public app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type
      48              : {
      49              :     char NameBuf[kMaxThreadNameLength + 1];
      50              :     ThreadMetrics * Next; /* Pointer to the next structure.  */
      51              : };
      52              : 
      53              : struct NetworkInterface : public app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type
      54              : {
      55              :     char Name[Inet::InterfaceId::kMaxIfNameLength];
      56              :     uint8_t MacAddress[kMaxHardwareAddrSize];
      57              :     uint8_t Ipv4AddressesBuffer[kMaxIPv4AddrCount][kMaxIPv4AddrSize];
      58              :     uint8_t Ipv6AddressesBuffer[kMaxIPv6AddrCount][kMaxIPv6AddrSize];
      59              :     chip::ByteSpan Ipv4AddressSpans[kMaxIPv4AddrCount];
      60              :     chip::ByteSpan Ipv6AddressSpans[kMaxIPv6AddrCount];
      61              :     NetworkInterface * Next = nullptr; /* Pointer to the next structure.  */
      62              : };
      63              : 
      64              : class DiagnosticDataProviderImpl;
      65              : 
      66              : /**
      67              :  * Defines the WiFi Diagnostics Delegate class to notify WiFi network events.
      68              :  */
      69              : class WiFiDiagnosticsDelegate
      70              : {
      71              : public:
      72              :     virtual ~WiFiDiagnosticsDelegate() {}
      73              : 
      74              :     /**
      75              :      * @brief
      76              :      *   Called when the Node detects Node’s Wi-Fi connection has been disconnected.
      77              :      */
      78              :     virtual void OnDisconnectionDetected(uint16_t reasonCode) {}
      79              : 
      80              :     /**
      81              :      * @brief
      82              :      *   Called when the Node fails to associate or authenticate an access point.
      83              :      */
      84              :     virtual void OnAssociationFailureDetected(uint8_t associationFailureCause, uint16_t status) {}
      85              : 
      86              :     /**
      87              :      * @brief
      88              :      *   Called when the Node’s connection status to a Wi-Fi network has changed.
      89              :      */
      90              :     virtual void OnConnectionStatusChanged(uint8_t connectionStatus) {}
      91              : };
      92              : 
      93              : /**
      94              :  * Defines the Thread Diagnostics Delegate class to notify Thread network events.
      95              :  */
      96              : class ThreadDiagnosticsDelegate
      97              : {
      98              : public:
      99              :     virtual ~ThreadDiagnosticsDelegate() {}
     100              : 
     101              :     /**
     102              :      * @brief
     103              :      *   Called when the Node’s connection status to a Thread network has changed.
     104              :      */
     105              :     virtual void OnConnectionStatusChanged(app::Clusters::ThreadNetworkDiagnostics::ConnectionStatusEnum newConnectionStatus) {}
     106              : 
     107              :     /**
     108              :      * @brief
     109              :      *   Called when the Node detects change in the set of current Thread network faults.
     110              :      */
     111              :     virtual void OnNetworkFaultChanged(const GeneralFaults<kMaxNetworkFaults> & previous,
     112              :                                        const GeneralFaults<kMaxNetworkFaults> & current)
     113              :     {}
     114              : };
     115              : 
     116              : /**
     117              :  * Provides access to runtime and build-time configuration information for a chip device.
     118              :  */
     119              : class DiagnosticDataProvider
     120              : {
     121              : public:
     122              :     void SetWiFiDiagnosticsDelegate(WiFiDiagnosticsDelegate * delegate) { mWiFiDiagnosticsDelegate = delegate; }
     123            0 :     WiFiDiagnosticsDelegate * GetWiFiDiagnosticsDelegate() const { return mWiFiDiagnosticsDelegate; }
     124              :     void SetThreadDiagnosticsDelegate(ThreadDiagnosticsDelegate * delegate) { mThreadDiagnosticsDelegate = delegate; }
     125              :     ThreadDiagnosticsDelegate * GetThreadDiagnosticsDelegate() const { return mThreadDiagnosticsDelegate; }
     126              : 
     127              :     /**
     128              :      * General Diagnostics methods.
     129              :      */
     130              : 
     131              :     /**
     132              :      * @brief Obtain the number of times the node has rebooted.
     133              :      *        The reboot count value will be reset only upon a factory reset of the node.
     134              :      *
     135              :      * @param[out] rebootCount Reference to location where the reboot count integer will be copied.
     136              :      */
     137              :     virtual CHIP_ERROR GetRebootCount(uint16_t & rebootCount);
     138              : 
     139              :     /**
     140              :      * @brief Obtain the time (in seconds) since the node's last reboot.
     141              :      *        The up time value will be reset upon a node reboot.
     142              :      *
     143              :      * @param[out] upTime Reference to location where the up time integer will be copied.
     144              :      */
     145              :     virtual CHIP_ERROR GetUpTime(uint64_t & upTime);
     146              : 
     147              :     /**
     148              :      * @brief Obtain the total time (in hours) the node has been operational.
     149              :      *        The total operational hours value will be reset only upon a factory reset of the node.
     150              :      *
     151              :      * @param[out] totalOperationalHours Reference to location where the total operation hours integer will be copied.
     152              :      */
     153              :     virtual CHIP_ERROR GetTotalOperationalHours(uint32_t & totalOperationalHours);
     154              : 
     155              :     /**
     156              :      * @brief Obtain the reason for the node's most recent reboot.
     157              :      *
     158              :      * @param[out] bootReason Reference to location where the boot reason enum value will be copied.
     159              :      */
     160              :     virtual CHIP_ERROR GetBootReason(BootReasonType & bootReason);
     161              : 
     162              :     /**
     163              :      * @brief Obtain the set of hardware faults currently detected by the node.
     164              :      *
     165              :      * @param[out] hardwareFaults Reference to location of a GeneralFaults instance.
     166              :      *                            The instance can be populated by sequentially calling add method.
     167              :      */
     168              :     virtual CHIP_ERROR GetActiveHardwareFaults(GeneralFaults<kMaxHardwareFaults> & hardwareFaults);
     169              : 
     170              :     /**
     171              :      * @brief Obtain the set of radio faults currently detected by the node.
     172              :      *
     173              :      * @param[out] radioFaults Reference to location of a GeneralFaults instance.
     174              :      *                         The instance can be populated by sequentially calling add method.
     175              :      */
     176              :     virtual CHIP_ERROR GetActiveRadioFaults(GeneralFaults<kMaxRadioFaults> & radioFaults);
     177              : 
     178              :     /**
     179              :      * @brief Obtain the set of network faults currently detected by the node.
     180              :      *
     181              :      * @param[out] networkFaults Reference to location of a GeneralFaults instance.
     182              :      *                           The instance can be populated by sequentially calling add method.
     183              :      */
     184              :     virtual CHIP_ERROR GetActiveNetworkFaults(GeneralFaults<kMaxNetworkFaults> & networkFaults);
     185              : 
     186              :     /**
     187              :      * @brief Obtain the average wear count of the node's persistent storage backend.
     188              :      *
     189              :      * @param[out] averageWearCount Reference to location where the average wear count integer will be copied.
     190              :      */
     191              :     virtual CHIP_ERROR GetAverageWearCount(uint32_t & averageWearCount);
     192              : 
     193              :     /*
     194              :      * Get the linked list of network interfaces of the current plaform. After usage, each caller of GetNetworkInterfaces
     195              :      * needs to release the network interface list it gets via ReleaseNetworkInterfaces.
     196              :      *
     197              :      */
     198              :     virtual CHIP_ERROR GetNetworkInterfaces(NetworkInterface ** netifpp);
     199              :     virtual void ReleaseNetworkInterfaces(NetworkInterface * netifp);
     200              : 
     201              :     /**
     202              :      * Software Diagnostics methods.
     203              :      */
     204              : 
     205              :     /// Feature support - this returns support gor GetCurrentHeapHighWatermark and ResetWatermarks()
     206            0 :     virtual bool SupportsWatermarks() { return false; }
     207              : 
     208              :     virtual CHIP_ERROR GetCurrentHeapFree(uint64_t & currentHeapFree);
     209              :     virtual CHIP_ERROR GetCurrentHeapUsed(uint64_t & currentHeapUsed);
     210              :     virtual CHIP_ERROR GetCurrentHeapHighWatermark(uint64_t & currentHeapHighWatermark);
     211              :     virtual CHIP_ERROR ResetWatermarks();
     212              : 
     213              :     /*
     214              :      * Get the linked list of thread metrics of the current plaform. After usage, each caller of GetThreadMetrics
     215              :      * needs to release the thread metrics list it gets via ReleaseThreadMetrics.
     216              :      *
     217              :      */
     218              :     virtual CHIP_ERROR GetThreadMetrics(ThreadMetrics ** threadMetricsOut);
     219              :     virtual void ReleaseThreadMetrics(ThreadMetrics * threadMetrics);
     220              : 
     221              :     /**
     222              :      * Ethernet network diagnostics methods
     223              :      */
     224              :     virtual CHIP_ERROR GetEthPHYRate(app::Clusters::EthernetNetworkDiagnostics::PHYRateEnum & pHYRate);
     225              :     virtual CHIP_ERROR GetEthFullDuplex(bool & fullDuplex);
     226              :     virtual CHIP_ERROR GetEthCarrierDetect(bool & carrierDetect);
     227              :     virtual CHIP_ERROR GetEthTimeSinceReset(uint64_t & timeSinceReset);
     228              :     virtual CHIP_ERROR GetEthPacketRxCount(uint64_t & packetRxCount);
     229              :     virtual CHIP_ERROR GetEthPacketTxCount(uint64_t & packetTxCount);
     230              :     virtual CHIP_ERROR GetEthTxErrCount(uint64_t & txErrCount);
     231              :     virtual CHIP_ERROR GetEthCollisionCount(uint64_t & collisionCount);
     232              :     virtual CHIP_ERROR GetEthOverrunCount(uint64_t & overrunCount);
     233              :     virtual CHIP_ERROR ResetEthNetworkDiagnosticsCounts();
     234              : 
     235              :     /**
     236              :      * Wi-Fi network diagnostics methods
     237              :      */
     238              : 
     239              :     /**
     240              :      * The MutableByteSpan provided to GetWiFiBssId must have size at least
     241              :      * kMaxHardwareAddrSize. Its size will be set to the actual size of the
     242              :      * BSSID.
     243              :      */
     244              :     virtual CHIP_ERROR GetWiFiBssId(MutableByteSpan & value);
     245              :     virtual CHIP_ERROR GetWiFiSecurityType(app::Clusters::WiFiNetworkDiagnostics::SecurityTypeEnum & securityType);
     246              :     virtual CHIP_ERROR GetWiFiVersion(app::Clusters::WiFiNetworkDiagnostics::WiFiVersionEnum & wiFiVersion);
     247              :     virtual CHIP_ERROR GetWiFiChannelNumber(uint16_t & channelNumber);
     248              :     virtual CHIP_ERROR GetWiFiRssi(int8_t & rssi);
     249              :     virtual CHIP_ERROR GetWiFiBeaconLostCount(uint32_t & beaconLostCount);
     250              :     virtual CHIP_ERROR GetWiFiBeaconRxCount(uint32_t & beaconRxCount);
     251              :     virtual CHIP_ERROR GetWiFiPacketMulticastRxCount(uint32_t & packetMulticastRxCount);
     252              :     virtual CHIP_ERROR GetWiFiPacketMulticastTxCount(uint32_t & packetMulticastTxCount);
     253              :     virtual CHIP_ERROR GetWiFiPacketUnicastRxCount(uint32_t & packetUnicastRxCount);
     254              :     virtual CHIP_ERROR GetWiFiPacketUnicastTxCount(uint32_t & packetUnicastTxCount);
     255              :     virtual CHIP_ERROR GetWiFiCurrentMaxRate(uint64_t & currentMaxRate);
     256              :     virtual CHIP_ERROR GetWiFiOverrunCount(uint64_t & overrunCount);
     257              :     virtual CHIP_ERROR ResetWiFiNetworkDiagnosticsCounts();
     258              : 
     259              : protected:
     260              :     // Construction/destruction limited to subclasses.
     261            5 :     DiagnosticDataProvider()          = default;
     262           48 :     virtual ~DiagnosticDataProvider() = default;
     263              : 
     264              : private:
     265              :     WiFiDiagnosticsDelegate * mWiFiDiagnosticsDelegate     = nullptr;
     266              :     ThreadDiagnosticsDelegate * mThreadDiagnosticsDelegate = nullptr;
     267              : 
     268              :     // No copy, move or assignment.
     269              :     DiagnosticDataProvider(const DiagnosticDataProvider &)             = delete;
     270              :     DiagnosticDataProvider(const DiagnosticDataProvider &&)            = delete;
     271              :     DiagnosticDataProvider & operator=(const DiagnosticDataProvider &) = delete;
     272              : };
     273              : 
     274              : /**
     275              :  * Returns a reference to the public interface of the DiagnosticDataProvider singleton object.
     276              :  *
     277              :  * Applications should use this to access features of the DiagnosticDataProvider object
     278              :  * that are common to all platforms.
     279              :  */
     280              : DiagnosticDataProvider & GetDiagnosticDataProvider();
     281              : 
     282              : /**
     283              :  * Returns the platform-specific implementation of the DiagnosticDataProvider singleton object.
     284              :  *
     285              :  * Applications can use this to gain access to features of the DiagnosticDataProvider
     286              :  * that are specific to the selected platform.
     287              :  */
     288              : extern DiagnosticDataProvider & GetDiagnosticDataProviderImpl();
     289              : 
     290              : /**
     291              :  * Sets a reference to a DiagnosticDataProvider object.
     292              :  *
     293              :  * This must be called before any calls to GetDiagnosticDataProvider. If a nullptr is passed in,
     294              :  * no changes will be made.
     295              :  */
     296              : void SetDiagnosticDataProvider(DiagnosticDataProvider * diagnosticDataProvider);
     297              : 
     298            0 : inline CHIP_ERROR DiagnosticDataProvider::GetCurrentHeapFree(uint64_t & currentHeapFree)
     299              : {
     300            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     301              : }
     302              : 
     303            0 : inline CHIP_ERROR DiagnosticDataProvider::GetCurrentHeapUsed(uint64_t & currentHeapUsed)
     304              : {
     305            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     306              : }
     307              : 
     308            0 : inline CHIP_ERROR DiagnosticDataProvider::GetCurrentHeapHighWatermark(uint64_t & currentHeapHighWatermark)
     309              : {
     310            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     311              : }
     312              : 
     313            0 : inline CHIP_ERROR DiagnosticDataProvider::ResetWatermarks()
     314              : {
     315            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     316              : }
     317              : 
     318            0 : inline CHIP_ERROR DiagnosticDataProvider::GetThreadMetrics(ThreadMetrics ** threadMetricsOut)
     319              : {
     320            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     321              : }
     322              : 
     323            0 : inline void DiagnosticDataProvider::ReleaseThreadMetrics(ThreadMetrics * threadMetrics) {}
     324              : 
     325            0 : inline CHIP_ERROR DiagnosticDataProvider::GetRebootCount(uint16_t & rebootCount)
     326              : {
     327            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     328              : }
     329              : 
     330            0 : inline CHIP_ERROR DiagnosticDataProvider::GetUpTime(uint64_t & upTime)
     331              : {
     332            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     333              : }
     334              : 
     335            0 : inline CHIP_ERROR DiagnosticDataProvider::GetTotalOperationalHours(uint32_t & totalOperationalHours)
     336              : {
     337            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     338              : }
     339              : 
     340            0 : inline CHIP_ERROR DiagnosticDataProvider::GetBootReason(BootReasonType & bootReason)
     341              : {
     342            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     343              : }
     344              : 
     345            0 : inline CHIP_ERROR DiagnosticDataProvider::GetActiveHardwareFaults(GeneralFaults<kMaxHardwareFaults> & hardwareFaults)
     346              : {
     347            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     348              : }
     349              : 
     350            0 : inline CHIP_ERROR DiagnosticDataProvider::GetActiveRadioFaults(GeneralFaults<kMaxRadioFaults> & radioFaults)
     351              : {
     352            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     353              : }
     354              : 
     355            0 : inline CHIP_ERROR DiagnosticDataProvider::GetActiveNetworkFaults(GeneralFaults<kMaxNetworkFaults> & networkFaults)
     356              : {
     357            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     358              : }
     359              : 
     360            0 : inline CHIP_ERROR DiagnosticDataProvider::GetAverageWearCount(uint32_t & averageWearCount)
     361              : {
     362            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     363              : }
     364              : 
     365            0 : inline CHIP_ERROR DiagnosticDataProvider::GetNetworkInterfaces(NetworkInterface ** netifpp)
     366              : {
     367            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     368              : }
     369              : 
     370            0 : inline void DiagnosticDataProvider::ReleaseNetworkInterfaces(NetworkInterface * netifp) {}
     371              : 
     372            0 : inline CHIP_ERROR DiagnosticDataProvider::GetEthPHYRate(app::Clusters::EthernetNetworkDiagnostics::PHYRateEnum & pHYRate)
     373              : {
     374            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     375              : }
     376              : 
     377            0 : inline CHIP_ERROR DiagnosticDataProvider::GetEthFullDuplex(bool & fullDuplex)
     378              : {
     379            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     380              : }
     381              : 
     382            0 : inline CHIP_ERROR DiagnosticDataProvider::GetEthCarrierDetect(bool & carrierDetect)
     383              : {
     384            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     385              : }
     386              : 
     387            0 : inline CHIP_ERROR DiagnosticDataProvider::GetEthTimeSinceReset(uint64_t & timeSinceReset)
     388              : {
     389            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     390              : }
     391              : 
     392            0 : inline CHIP_ERROR DiagnosticDataProvider::GetEthPacketRxCount(uint64_t & packetRxCount)
     393              : {
     394            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     395              : }
     396              : 
     397            0 : inline CHIP_ERROR DiagnosticDataProvider::GetEthPacketTxCount(uint64_t & packetTxCount)
     398              : {
     399            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     400              : }
     401              : 
     402            0 : inline CHIP_ERROR DiagnosticDataProvider::GetEthTxErrCount(uint64_t & txErrCount)
     403              : {
     404            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     405              : }
     406              : 
     407            0 : inline CHIP_ERROR DiagnosticDataProvider::GetEthCollisionCount(uint64_t & collisionCount)
     408              : {
     409            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     410              : }
     411              : 
     412            0 : inline CHIP_ERROR DiagnosticDataProvider::GetEthOverrunCount(uint64_t & overrunCount)
     413              : {
     414            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     415              : }
     416              : 
     417            0 : inline CHIP_ERROR DiagnosticDataProvider::ResetEthNetworkDiagnosticsCounts()
     418              : {
     419            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     420              : }
     421              : 
     422            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiBssId(MutableByteSpan & value)
     423              : {
     424            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     425              : }
     426              : 
     427              : inline CHIP_ERROR
     428            0 : DiagnosticDataProvider::GetWiFiSecurityType(app::Clusters::WiFiNetworkDiagnostics::SecurityTypeEnum & securityType)
     429              : {
     430            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     431              : }
     432              : 
     433            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiVersion(app::Clusters::WiFiNetworkDiagnostics::WiFiVersionEnum & wiFiVersion)
     434              : {
     435            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     436              : }
     437              : 
     438            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiChannelNumber(uint16_t & channelNumber)
     439              : {
     440            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     441              : }
     442              : 
     443            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiRssi(int8_t & rssi)
     444              : {
     445            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     446              : }
     447              : 
     448            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiBeaconLostCount(uint32_t & beaconLostCount)
     449              : {
     450            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     451              : }
     452              : 
     453            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiBeaconRxCount(uint32_t & beaconRxCount)
     454              : {
     455            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     456              : }
     457              : 
     458            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiPacketMulticastRxCount(uint32_t & packetMulticastRxCount)
     459              : {
     460            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     461              : }
     462              : 
     463            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiPacketMulticastTxCount(uint32_t & packetMulticastTxCount)
     464              : {
     465            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     466              : }
     467              : 
     468            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiPacketUnicastRxCount(uint32_t & packetUnicastRxCount)
     469              : {
     470            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     471              : }
     472              : 
     473            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiPacketUnicastTxCount(uint32_t & packetUnicastTxCount)
     474              : {
     475            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     476              : }
     477              : 
     478            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiCurrentMaxRate(uint64_t & currentMaxRate)
     479              : {
     480            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     481              : }
     482              : 
     483            0 : inline CHIP_ERROR DiagnosticDataProvider::GetWiFiOverrunCount(uint64_t & overrunCount)
     484              : {
     485            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     486              : }
     487              : 
     488            0 : inline CHIP_ERROR DiagnosticDataProvider::ResetWiFiNetworkDiagnosticsCounts()
     489              : {
     490            0 :     return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
     491              : }
     492              : 
     493              : } // namespace DeviceLayer
     494              : } // namespace chip
        

Generated by: LCOV version 2.0-1