mirror of
https://github.com/espressif/openthread.git
synced 2026-08-08 19:57:46 +00:00
[network-diagnostic] replace anonymous structs in netdiag.h (#4760)
This commit is contained in:
@@ -239,26 +239,26 @@ typedef struct otNetworkDiagTlv
|
||||
uint32_t mMaxChildTimeout;
|
||||
struct
|
||||
{
|
||||
uint8_t mNetworkDataCount;
|
||||
uint8_t mNetworkData[OT_NETWORK_BASE_TLV_MAX_LENGTH];
|
||||
};
|
||||
uint8_t mCount;
|
||||
uint8_t m8[OT_NETWORK_BASE_TLV_MAX_LENGTH];
|
||||
} mNetworkData;
|
||||
struct
|
||||
{
|
||||
uint8_t mIp6AddrCount;
|
||||
otIp6Address mIp6AddrList[OT_NETWORK_BASE_TLV_MAX_LENGTH / OT_IP6_ADDRESS_SIZE];
|
||||
};
|
||||
uint8_t mCount;
|
||||
otIp6Address mList[OT_NETWORK_BASE_TLV_MAX_LENGTH / OT_IP6_ADDRESS_SIZE];
|
||||
} mIp6AddrList;
|
||||
struct
|
||||
{
|
||||
uint8_t mChildCount;
|
||||
uint8_t mCount;
|
||||
otNetworkDiagChildEntry
|
||||
mChildTable[OT_NETWORK_BASE_TLV_MAX_LENGTH / OT_NETWORK_DIAGNOSTIC_CHILD_TABLE_ENTRY_SIZE];
|
||||
};
|
||||
mTable[OT_NETWORK_BASE_TLV_MAX_LENGTH / OT_NETWORK_DIAGNOSTIC_CHILD_TABLE_ENTRY_SIZE];
|
||||
} mChildTable;
|
||||
struct
|
||||
{
|
||||
uint8_t mChannelPageCount;
|
||||
uint8_t mChannelPages[OT_NETWORK_BASE_TLV_MAX_LENGTH];
|
||||
};
|
||||
};
|
||||
uint8_t mCount;
|
||||
uint8_t m8[OT_NETWORK_BASE_TLV_MAX_LENGTH];
|
||||
} mChannelPages;
|
||||
} mData;
|
||||
} otNetworkDiagTlv;
|
||||
|
||||
/**
|
||||
|
||||
+17
-17
@@ -3907,72 +3907,72 @@ void Interpreter::HandleDiagnosticGetResponse(const otMessage &aMessage, const I
|
||||
{
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_EXT_ADDRESS:
|
||||
mServer->OutputFormat("Ext Address: '");
|
||||
OutputBytes(diagTlv.mExtAddress.m8, sizeof(diagTlv.mExtAddress.m8));
|
||||
OutputBytes(diagTlv.mData.mExtAddress.m8, sizeof(diagTlv.mData.mExtAddress.m8));
|
||||
mServer->OutputFormat("'\r\n");
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_SHORT_ADDRESS:
|
||||
mServer->OutputFormat("Rloc16: 0x%04x\r\n", diagTlv.mAddr16);
|
||||
mServer->OutputFormat("Rloc16: 0x%04x\r\n", diagTlv.mData.mAddr16);
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_MODE:
|
||||
mServer->OutputFormat("Mode:\r\n");
|
||||
OutputMode(diagTlv.mMode, column + INDENT_SIZE);
|
||||
OutputMode(diagTlv.mData.mMode, column + INDENT_SIZE);
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_TIMEOUT:
|
||||
mServer->OutputFormat("Timeout: %u\r\n", diagTlv.mTimeout);
|
||||
mServer->OutputFormat("Timeout: %u\r\n", diagTlv.mData.mTimeout);
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_CONNECTIVITY:
|
||||
mServer->OutputFormat("Connectivity:\r\n");
|
||||
OutputConnectivity(diagTlv.mConnectivity, column + INDENT_SIZE);
|
||||
OutputConnectivity(diagTlv.mData.mConnectivity, column + INDENT_SIZE);
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_ROUTE:
|
||||
mServer->OutputFormat("Route:\r\n");
|
||||
OutputRoute(diagTlv.mRoute, column + INDENT_SIZE);
|
||||
OutputRoute(diagTlv.mData.mRoute, column + INDENT_SIZE);
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_LEADER_DATA:
|
||||
mServer->OutputFormat("Leader Data:\r\n");
|
||||
OutputLeaderData(diagTlv.mLeaderData, column + INDENT_SIZE);
|
||||
OutputLeaderData(diagTlv.mData.mLeaderData, column + INDENT_SIZE);
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_NETWORK_DATA:
|
||||
mServer->OutputFormat("Network Data: '");
|
||||
OutputBytes(diagTlv.mNetworkData, diagTlv.mNetworkDataCount);
|
||||
OutputBytes(diagTlv.mData.mNetworkData.m8, diagTlv.mData.mNetworkData.mCount);
|
||||
mServer->OutputFormat("'\r\n");
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_IP6_ADDR_LIST:
|
||||
mServer->OutputFormat("IP6 Address List:\r\n");
|
||||
for (uint16_t i = 0; i < diagTlv.mIp6AddrCount; ++i)
|
||||
for (uint16_t i = 0; i < diagTlv.mData.mIp6AddrList.mCount; ++i)
|
||||
{
|
||||
OutputSpaces(column + INDENT_SIZE);
|
||||
mServer->OutputFormat("- ");
|
||||
OutputIp6Address(diagTlv.mIp6AddrList[i]);
|
||||
OutputIp6Address(diagTlv.mData.mIp6AddrList.mList[i]);
|
||||
mServer->OutputFormat("\r\n");
|
||||
}
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_MAC_COUNTERS:
|
||||
mServer->OutputFormat("MAC Counters:\r\n");
|
||||
OutputNetworkDiagMacCounters(diagTlv.mMacCounters, column + INDENT_SIZE);
|
||||
OutputNetworkDiagMacCounters(diagTlv.mData.mMacCounters, column + INDENT_SIZE);
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_BATTERY_LEVEL:
|
||||
mServer->OutputFormat("Battery Level: %u%%\r\n", diagTlv.mBatteryLevel);
|
||||
mServer->OutputFormat("Battery Level: %u%%\r\n", diagTlv.mData.mBatteryLevel);
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_SUPPLY_VOLTAGE:
|
||||
mServer->OutputFormat("Supply Voltage: %umV\r\n", diagTlv.mSupplyVoltage);
|
||||
mServer->OutputFormat("Supply Voltage: %umV\r\n", diagTlv.mData.mSupplyVoltage);
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_CHILD_TABLE:
|
||||
mServer->OutputFormat("Child Table:\r\n");
|
||||
for (uint16_t i = 0; i < diagTlv.mChildCount; ++i)
|
||||
for (uint16_t i = 0; i < diagTlv.mData.mChildTable.mCount; ++i)
|
||||
{
|
||||
OutputSpaces(column + INDENT_SIZE);
|
||||
mServer->OutputFormat("- ");
|
||||
OutputChildTableEntry(diagTlv.mChildTable[i], column + INDENT_SIZE + 2);
|
||||
OutputChildTableEntry(diagTlv.mData.mChildTable.mTable[i], column + INDENT_SIZE + 2);
|
||||
}
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_CHANNEL_PAGES:
|
||||
mServer->OutputFormat("Channel Pages: '");
|
||||
OutputBytes(diagTlv.mChannelPages, diagTlv.mChannelPageCount);
|
||||
OutputBytes(diagTlv.mData.mChannelPages.m8, diagTlv.mData.mChannelPages.mCount);
|
||||
mServer->OutputFormat("'\r\n");
|
||||
break;
|
||||
case OT_NETWORK_DIAGNOSTIC_TLV_MAX_CHILD_TIMEOUT:
|
||||
mServer->OutputFormat("Max Child Timeout: %u\r\n", diagTlv.mMaxChildTimeout);
|
||||
mServer->OutputFormat("Max Child Timeout: %u\r\n", diagTlv.mData.mMaxChildTimeout);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -818,7 +818,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &extMacAddr) == tlvTotalLength);
|
||||
VerifyOrExit(extMacAddr.IsValid());
|
||||
|
||||
aNetworkDiagTlv.mExtAddress = *extMacAddr.GetMacAddr();
|
||||
aNetworkDiagTlv.mData.mExtAddress = *extMacAddr.GetMacAddr();
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -831,7 +831,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &addr16) == tlvTotalLength);
|
||||
VerifyOrExit(addr16.IsValid());
|
||||
|
||||
aNetworkDiagTlv.mAddr16 = addr16.GetRloc16();
|
||||
aNetworkDiagTlv.mData.mAddr16 = addr16.GetRloc16();
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -844,7 +844,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &linkMode) == tlvTotalLength);
|
||||
VerifyOrExit(linkMode.IsValid());
|
||||
|
||||
ParseMode(linkMode.GetMode(), aNetworkDiagTlv.mMode);
|
||||
ParseMode(linkMode.GetMode(), aNetworkDiagTlv.mData.mMode);
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -857,7 +857,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &timeout) == tlvTotalLength);
|
||||
VerifyOrExit(timeout.IsValid());
|
||||
|
||||
aNetworkDiagTlv.mTimeout = timeout.GetTimeout();
|
||||
aNetworkDiagTlv.mData.mTimeout = timeout.GetTimeout();
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -870,7 +870,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &connectivity) == tlvTotalLength);
|
||||
VerifyOrExit(connectivity.IsValid());
|
||||
|
||||
ParseConnectivity(connectivity, aNetworkDiagTlv.mConnectivity);
|
||||
ParseConnectivity(connectivity, aNetworkDiagTlv.mData.mConnectivity);
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -884,7 +884,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &route) == tlvTotalLength);
|
||||
VerifyOrExit(route.IsValid());
|
||||
|
||||
ParseRoute(route, aNetworkDiagTlv.mRoute);
|
||||
ParseRoute(route, aNetworkDiagTlv.mData.mRoute);
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -897,7 +897,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &leaderData) == tlvTotalLength);
|
||||
VerifyOrExit(leaderData.IsValid());
|
||||
|
||||
ParseLeaderData(leaderData, aNetworkDiagTlv.mLeaderData);
|
||||
ParseLeaderData(leaderData, aNetworkDiagTlv.mData.mLeaderData);
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -910,10 +910,10 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(tlvTotalLength <= sizeof(networkData));
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &networkData) == tlvTotalLength);
|
||||
VerifyOrExit(networkData.IsValid());
|
||||
VerifyOrExit(sizeof(aNetworkDiagTlv.mNetworkData) >= networkData.GetLength());
|
||||
VerifyOrExit(sizeof(aNetworkDiagTlv.mData.mNetworkData.m8) >= networkData.GetLength());
|
||||
|
||||
memcpy(aNetworkDiagTlv.mNetworkData, networkData.GetNetworkData(), networkData.GetLength());
|
||||
aNetworkDiagTlv.mNetworkDataCount = networkData.GetLength();
|
||||
memcpy(aNetworkDiagTlv.mData.mNetworkData.m8, networkData.GetNetworkData(), networkData.GetLength());
|
||||
aNetworkDiagTlv.mData.mNetworkData.mCount = networkData.GetLength();
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -923,11 +923,11 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
Ip6AddressListTlv &ip6AddrList = static_cast<Ip6AddressListTlv &>(tlv);
|
||||
|
||||
VerifyOrExit(ip6AddrList.IsValid());
|
||||
VerifyOrExit(sizeof(aNetworkDiagTlv.mIp6AddrList) >= ip6AddrList.GetLength());
|
||||
VerifyOrExit(sizeof(aNetworkDiagTlv.mData.mIp6AddrList.mList) >= ip6AddrList.GetLength());
|
||||
VerifyOrExit(message.Read(offset + sizeof(ip6AddrList), ip6AddrList.GetLength(),
|
||||
aNetworkDiagTlv.mIp6AddrList) == ip6AddrList.GetLength());
|
||||
aNetworkDiagTlv.mData.mIp6AddrList.mList) == ip6AddrList.GetLength());
|
||||
|
||||
aNetworkDiagTlv.mIp6AddrCount = ip6AddrList.GetLength() / OT_IP6_ADDRESS_SIZE;
|
||||
aNetworkDiagTlv.mData.mIp6AddrList.mCount = ip6AddrList.GetLength() / OT_IP6_ADDRESS_SIZE;
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -940,7 +940,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &macCounters) == tlvTotalLength);
|
||||
VerifyOrExit(macCounters.IsValid());
|
||||
|
||||
ParseMacCounters(macCounters, aNetworkDiagTlv.mMacCounters);
|
||||
ParseMacCounters(macCounters, aNetworkDiagTlv.mData.mMacCounters);
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -953,7 +953,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &batteryLevel) == tlvTotalLength);
|
||||
VerifyOrExit(batteryLevel.IsValid());
|
||||
|
||||
aNetworkDiagTlv.mBatteryLevel = batteryLevel.GetBatteryLevel();
|
||||
aNetworkDiagTlv.mData.mBatteryLevel = batteryLevel.GetBatteryLevel();
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -966,7 +966,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &supplyVoltage) == tlvTotalLength);
|
||||
VerifyOrExit(supplyVoltage.IsValid());
|
||||
|
||||
aNetworkDiagTlv.mSupplyVoltage = supplyVoltage.GetSupplyVoltage();
|
||||
aNetworkDiagTlv.mData.mSupplyVoltage = supplyVoltage.GetSupplyVoltage();
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -976,26 +976,26 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
ChildTableTlv &childTable = static_cast<ChildTableTlv &>(tlv);
|
||||
|
||||
VerifyOrExit(childTable.IsValid());
|
||||
VerifyOrExit(childTable.GetNumEntries() <= OT_ARRAY_LENGTH(aNetworkDiagTlv.mChildTable));
|
||||
VerifyOrExit(childTable.GetNumEntries() <= OT_ARRAY_LENGTH(aNetworkDiagTlv.mData.mChildTable.mTable));
|
||||
|
||||
for (uint8_t i = 0; i < childTable.GetNumEntries(); ++i)
|
||||
{
|
||||
ChildTableEntry childEntry;
|
||||
VerifyOrExit(childTable.ReadEntry(childEntry, message, offset, i) == OT_ERROR_NONE);
|
||||
ParseChildEntry(childEntry, aNetworkDiagTlv.mChildTable[i]);
|
||||
ParseChildEntry(childEntry, aNetworkDiagTlv.mData.mChildTable.mTable[i]);
|
||||
}
|
||||
aNetworkDiagTlv.mChildCount = childTable.GetNumEntries();
|
||||
aNetworkDiagTlv.mData.mChildTable.mCount = childTable.GetNumEntries();
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
|
||||
case NetworkDiagnosticTlv::kChannelPages:
|
||||
{
|
||||
VerifyOrExit(sizeof(aNetworkDiagTlv.mChannelPages) >= tlv.GetLength());
|
||||
VerifyOrExit(message.Read(offset + sizeof(tlv), tlv.GetLength(), aNetworkDiagTlv.mChannelPages) ==
|
||||
VerifyOrExit(sizeof(aNetworkDiagTlv.mData.mChannelPages.m8) >= tlv.GetLength());
|
||||
VerifyOrExit(message.Read(offset + sizeof(tlv), tlv.GetLength(), aNetworkDiagTlv.mData.mChannelPages.m8) ==
|
||||
tlv.GetLength());
|
||||
|
||||
aNetworkDiagTlv.mChannelPageCount = tlv.GetLength();
|
||||
aNetworkDiagTlv.mData.mChannelPages.mCount = tlv.GetLength();
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
@@ -1008,7 +1008,7 @@ otError NetworkDiagnostic::GetNextDiagTlv(const otMessage & aMessage,
|
||||
VerifyOrExit(message.Read(offset, tlvTotalLength, &maxChildTimeout) == tlvTotalLength);
|
||||
VerifyOrExit(maxChildTimeout.IsValid());
|
||||
|
||||
aNetworkDiagTlv.mMaxChildTimeout = maxChildTimeout.GetTimeout();
|
||||
aNetworkDiagTlv.mData.mMaxChildTimeout = maxChildTimeout.GetTimeout();
|
||||
ExitNow(error = OT_ERROR_NONE);
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user