Skip to content

Commit

Permalink
Align Ethernet Network Diagnostics cluster with the latest spec (#14818)
Browse files Browse the repository at this point in the history
* Align Ethernet Network Diagnostics cluster with the latest spec

* Run codegen
  • Loading branch information
yufengwangca authored Feb 7, 2022
1 parent a92d1a8 commit c4a06e3
Show file tree
Hide file tree
Showing 42 changed files with 839 additions and 310 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1318,14 +1318,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
6 changes: 3 additions & 3 deletions examples/bridge-app/bridge-common/bridge-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -260,14 +260,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
6 changes: 3 additions & 3 deletions examples/door-lock-app/door-lock-common/door-lock-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -737,14 +737,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -447,14 +447,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
6 changes: 3 additions & 3 deletions examples/lighting-app/lighting-common/lighting-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -452,14 +452,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
6 changes: 3 additions & 3 deletions examples/lock-app/lock-common/lock-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -198,14 +198,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,14 +198,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,14 +198,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
6 changes: 3 additions & 3 deletions examples/thermostat/thermostat-common/thermostat.matter
Original file line number Diff line number Diff line change
Expand Up @@ -219,14 +219,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
6 changes: 3 additions & 3 deletions examples/tv-app/tv-common/tv-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -527,14 +527,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1244,14 +1244,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
6 changes: 3 additions & 3 deletions examples/window-app/common/window-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute bitmap32 featureMap = 65532;
readonly global attribute int16u clusterRevision = 65533;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ class EthernetDiagosticsAttrAccess : public AttributeAccessInterface
private:
template <typename T>
CHIP_ERROR ReadIfSupported(CHIP_ERROR (DiagnosticDataProvider::*getter)(T &), AttributeValueEncoder & aEncoder);

CHIP_ERROR ReadPHYRate(AttributeValueEncoder & aEncoder);
CHIP_ERROR ReadFullDuplex(AttributeValueEncoder & aEncoder);
CHIP_ERROR ReadCarrierDetect(AttributeValueEncoder & aEncoder);
};

template <typename T>
Expand All @@ -67,6 +71,61 @@ CHIP_ERROR EthernetDiagosticsAttrAccess::ReadIfSupported(CHIP_ERROR (DiagnosticD
return aEncoder.Encode(data);
}

CHIP_ERROR EthernetDiagosticsAttrAccess::ReadPHYRate(AttributeValueEncoder & aEncoder)
{
Attributes::PHYRate::TypeInfo::Type pHYRate;
uint8_t value = 0;

if (DeviceLayer::GetDiagnosticDataProvider().GetEthPHYRate(value) == CHIP_NO_ERROR)
{
pHYRate.SetNonNull(static_cast<PHYRateType>(value));
ChipLogProgress(Zcl, "The current nominal, usable speed at the top of the physical layer of the Node: %d", value);
}
else
{
ChipLogProgress(Zcl, "The Ethernet interface is not currently configured or operational");
}

return aEncoder.Encode(pHYRate);
}

CHIP_ERROR EthernetDiagosticsAttrAccess::ReadFullDuplex(AttributeValueEncoder & aEncoder)
{
Attributes::FullDuplex::TypeInfo::Type fullDuplex;
bool value = 0;

if (DeviceLayer::GetDiagnosticDataProvider().GetEthFullDuplex(value) == CHIP_NO_ERROR)
{
fullDuplex.SetNonNull(value);
ChipLogProgress(Zcl, "The full-duplex operating status of Node: %d", value);
}
else
{
ChipLogProgress(Zcl, "The Ethernet interface is not currently configured or operational");
}

return aEncoder.Encode(fullDuplex);
}

CHIP_ERROR EthernetDiagosticsAttrAccess::ReadCarrierDetect(AttributeValueEncoder & aEncoder)
{
Attributes::CarrierDetect::TypeInfo::Type carrierDetect;
bool value = 0;

if (DeviceLayer::GetDiagnosticDataProvider().GetEthCarrierDetect(value) == CHIP_NO_ERROR)
{
carrierDetect.SetNonNull(value);
ChipLogProgress(Zcl, "The status of the Carrier Detect control signal present on the ethernet network interface: %d",
value);
}
else
{
ChipLogProgress(Zcl, "The Ethernet interface is not currently configured or operational");
}

return aEncoder.Encode(carrierDetect);
}

EthernetDiagosticsAttrAccess gAttrAccess;

CHIP_ERROR EthernetDiagosticsAttrAccess::Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder)
Expand All @@ -80,13 +139,13 @@ CHIP_ERROR EthernetDiagosticsAttrAccess::Read(const ConcreteReadAttributePath &
switch (aPath.mAttributeId)
{
case PHYRate::Id: {
return ReadIfSupported(&DiagnosticDataProvider::GetEthPHYRate, aEncoder);
return ReadPHYRate(aEncoder);
}
case FullDuplex::Id: {
return ReadIfSupported(&DiagnosticDataProvider::GetEthFullDuplex, aEncoder);
return ReadFullDuplex(aEncoder);
}
case CarrierDetect::Id: {
return ReadIfSupported(&DiagnosticDataProvider::GetEthCarrierDetect, aEncoder);
return ReadCarrierDetect(aEncoder);
}
case TimeSinceReset::Id: {
return ReadIfSupported(&DiagnosticDataProvider::GetEthTimeSinceReset, aEncoder);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,14 @@ limitations under the License.
<code>0x0037</code>
<define>ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER</define>
<description>The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems.</description>
<attribute side="server" code="0x00" define="PHY_RATE" type="ENUM8" writable="false" optional="true">PHYRate</attribute>
<attribute side="server" code="0x01" define="FULL_DUPLEX" type="BOOLEAN" min="0x00" max="0x01" writable="false" default="0x00" optional="true">FullDuplex</attribute>
<attribute side="server" code="0x00" define="PHY_RATE" type="PHYRateType" writable="false" isNullable="true" optional="true">PHYRate</attribute>
<attribute side="server" code="0x01" define="FULL_DUPLEX" type="BOOLEAN" min="0x00" max="0x01" writable="false" isNullable="true" optional="true">FullDuplex</attribute>
<attribute side="server" code="0x02" define="PACKET_RX_COUNT" type="INT64U" min="0x0000000000000000" max="0xFFFFFFFFFFFFFFFF" writable="false" default="0x0000000000000000" optional="false">PacketRxCount</attribute>
<attribute side="server" code="0x03" define="PACKET_TX_COUNT" type="INT64U" min="0x0000000000000000" max="0xFFFFFFFFFFFFFFFF" writable="false" default="0x0000000000000000" optional="false">PacketTxCount</attribute>
<attribute side="server" code="0x04" define="TX_ERR_COUNT" type="INT64U" min="0x0000000000000000" max="0xFFFFFFFFFFFFFFFF" writable="false" default="0x0000000000000000" optional="false">TxErrCount</attribute>
<attribute side="server" code="0x05" define="COLLISION_COUNT" type="INT64U" min="0x0000000000000000" max="0xFFFFFFFFFFFFFFFF" writable="false" default="0x0000000000000000" optional="false">CollisionCount</attribute>
<attribute side="server" code="0x06" define="ETHERNET_OVERRUN_COUNT" type="INT64U" min="0x0000000000000000" max="0xFFFFFFFFFFFFFFFF" writable="false" default="0x0000000000000000" optional="false">OverrunCount</attribute>
<attribute side="server" code="0x07" define="CARRIER_DETECT" type="BOOLEAN" min="0x00" max="0x01" writable="false" default="0x00" optional="true">CarrierDetect</attribute>
<attribute side="server" code="0x07" define="CARRIER_DETECT" type="BOOLEAN" min="0x00" max="0x01" writable="false" isNullable="true" optional="true">CarrierDetect</attribute>
<attribute side="server" code="0x08" define="TIME_SINCE_RESET" type="INT64U" min="0x0000000000000000" max="0xFFFFFFFFFFFFFFFF" writable="false" default="0x0000000000000000" optional="true">TimeSinceReset</attribute>
<command source="client" code="0x00" name="ResetCounts" optional="false" cli="chip ethernet_network_diagnostics resetcounts">
<description>Reception of this command SHALL reset the attributes: PacketRxCount, PacketTxCount, TxErrCount, CollisionCount, OverrunCount to 0</description>
Expand Down
6 changes: 3 additions & 3 deletions src/controller/data_model/controller-clusters.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1619,14 +1619,14 @@ client cluster EthernetNetworkDiagnostics = 55 {
k400g = 9;
}

readonly attribute enum8 PHYRate = 0;
readonly attribute boolean fullDuplex = 1;
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute boolean carrierDetect = 7;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly global attribute command_id serverGeneratedCommandList[] = 65528;
readonly global attribute command_id clientGeneratedCommandList[] = 65529;
Expand Down
Loading

0 comments on commit c4a06e3

Please sign in to comment.