[dataset] add support for wake-up channel (#10736)

- Add Wake-up Channel TLV to the dataset.
- Add CLI support to handle the wake-up channel.
- Add MAC support for wake-up channel (to be used for sending
  and receiving wake-up frames).
This commit is contained in:
Eduardo Montoya
2024-09-26 23:01:46 +02:00
committed by GitHub
parent b42be4cff1
commit 596c5aa6a2
23 changed files with 308 additions and 3 deletions
+30
View File
@@ -134,6 +134,12 @@ const Dataset::ComponentMapper *Dataset::LookupMapper(const char *aName) const
&Dataset::OutputSecurityPolicy,
&Dataset::ParseSecurityPolicy,
},
{
"wakeupchannel",
&Components::mIsWakeupChannelPresent,
&Dataset::OutputWakeupChannel,
&Dataset::ParseWakeupChannel,
},
};
static_assert(BinarySearch::IsSorted(kMappers), "kMappers is not sorted");
@@ -182,6 +188,24 @@ void Dataset::OutputActiveTimestamp(const otOperationalDataset &aDataset)
*/
void Dataset::OutputChannel(const otOperationalDataset &aDataset) { OutputLine("%u", aDataset.mChannel); }
/**
* @cli dataset wakeupchannel (get,set)
* @code
* dataset wakeupchannel
* 13
* Done
* @endcode
* @code
* dataset wakeupchannel 13
* Done
* @endcode
* @cparam dataset wakeupchannel [@ca{channel-num}]
* Use the optional `channel-num` argument to set the wake-up channel.
* @par
* Gets or sets #otOperationalDataset::mWakeupChannel.
*/
void Dataset::OutputWakeupChannel(const otOperationalDataset &aDataset) { OutputLine("%u", aDataset.mWakeupChannel); }
/**
* @cli dataset channelmask (get,set)
* @code
@@ -412,6 +436,11 @@ otError Dataset::ParseChannel(Arg *&aArgs, otOperationalDataset &aDataset)
return aArgs++->ParseAsUint16(aDataset.mChannel);
}
otError Dataset::ParseWakeupChannel(Arg *&aArgs, otOperationalDataset &aDataset)
{
return aArgs++->ParseAsUint16(aDataset.mWakeupChannel);
}
otError Dataset::ParseChannelMask(Arg *&aArgs, otOperationalDataset &aDataset)
{
return aArgs++->ParseAsUint32(aDataset.mChannelMask);
@@ -561,6 +590,7 @@ otError Dataset::Print(otOperationalDatasetTlvs &aDatasetTlvs)
{"Pending Timestamp", "pendingtimestamp"},
{"Active Timestamp", "activetimestamp"},
{"Channel", "channel"},
{"Wake-up Channel", "wakeupchannel"},
{"Channel Mask", "channelmask"},
{"Delay", "delay"},
{"Ext PAN ID", "extpanid"},