This commit adds support for Joiner Discerner in wpantund and wpanctl. The Joiner Discerner enables new a mechanism for Thread commissioning. The traditional Thread commissioning process uses factory assigned EUI-64 of the device to derive the Joiner ID and identify/filter a joiner (through steering data bloom filter). The Joiner Discerner (which is an unsigned value along with a user-specified bit length up to 64 bits) allows users to have more control and do not rely on factory-assigned EUI-64.
For support of Discerner for Joiner operation in wpantund two methods are provided: Support for two new wpan properties Joiner:Discerner:Value and Joiner:Discerner:BitLength are added. To set the Joiner Discerner on device, the bit-length must be set first followed by setting the value. Setting the bit-length to zero will clear any previously set Joiner Discerner on the NCP (i.e., device would go back to default behavior using the factory-assigned EUI-64). Alternatively, the discerner value can be specified as the value-map parameters (with same keys as wpan property names) passed along through a "Joiner Start" DBus API call.
For commissioner, the NCP Control Interface related APIs and the corresponding DBus APIs are updated to allow either an EUI-64 or a Joiner Discerner (or accepting any Joiner) to be provided. wpanctlcommissioner command is also updated to allow the same.
This commit adds support for Joiner Discerner in
wpantund
andwpanctl
. The Joiner Discerner enables new a mechanism for Thread commissioning. The traditional Thread commissioning process uses factory assigned EUI-64 of the device to derive the Joiner ID and identify/filter a joiner (through steering data bloom filter). The Joiner Discerner (which is an unsigned value along with a user-specified bit length up to 64 bits) allows users to have more control and do not rely on factory-assigned EUI-64.For support of Discerner for Joiner operation in
wpantund
two methods are provided: Support for two new wpan propertiesJoiner:Discerner:Value
andJoiner:Discerner:BitLength
are added. To set the Joiner Discerner on device, the bit-length must be set first followed by setting the value. Setting the bit-length to zero will clear any previously set Joiner Discerner on the NCP (i.e., device would go back to default behavior using the factory-assigned EUI-64). Alternatively, the discerner value can be specified as the value-map parameters (with same keys as wpan property names) passed along through a "Joiner Start" DBus API call.For commissioner, the NCP Control Interface related APIs and the corresponding DBus APIs are updated to allow either an EUI-64 or a Joiner Discerner (or accepting any Joiner) to be provided.
wpanctl
commissioner
command is also updated to allow the same.Related PR in openthread: https://github.com/openthread/openthread/pull/5137