Seeker
This module includes functions for the Thread Seeker role.
Summary
Enumerations |
|
|---|---|
otSeekerVerdict{
|
enum Represents a verdict returned from the otSeekerScanEvaluator callback when evaluating a Discover Scan result. |
Typedefs |
|
|---|---|
otSeekerScanEvaluator)(void *aContext, const otSeekerScanResult *aResult)
|
typedef Represents the callback function type used to evaluate a scan result or report the end of a scan. |
otSeekerScanResult
|
typedef Represents a Discover Scan result. |
otSeekerVerdict
|
typedefenum otSeekerVerdict
Represents a verdict returned from the otSeekerScanEvaluator callback when evaluating a Discover Scan result. |
Functions |
|
|---|---|
otSeekerGetUdpPort(otInstance *aInstance)
|
uint16_t
Gets the Seeker UDP port (unsecure port).
|
otSeekerIsRunning(otInstance *aInstance)
|
bool
Indicates whether or not the Seeker is running.
|
otSeekerSetUdpPort(otInstance *aInstance, uint16_t aUdpPort)
|
Sets the Seeker UDP port (unsecure port).
|
otSeekerSetUpNextConnection(otInstance *aInstance, otSockAddr *aSockAddr)
|
Selects the next best candidate and prepares the connection.
|
otSeekerStart(otInstance *aInstance, otSeekerScanEvaluator aScanEvaluator, void *aContext)
|
Starts the Seeker operation.
|
otSeekerStop(otInstance *aInstance)
|
void
Stops the Seeker operation.
|
Enumerations
otSeekerVerdict
otSeekerVerdict
Typedefs
otSeekerScanEvaluator
otSeekerVerdict(* otSeekerScanEvaluator)(void *aContext, const otSeekerScanResult *aResult)
Represents the callback function type used to evaluate a scan result or report the end of a scan.
| Details | |||||
|---|---|---|---|---|---|
| Parameters |
|
||||
| Returns |
The verdict for the scan result (Accept, AcceptPreferred, or Ignore). If
aResult is NULL (scan complete), the return value is ignored. |
otSeekerVerdict
enum otSeekerVerdict otSeekerVerdict
Represents a verdict returned from the otSeekerScanEvaluator callback when evaluating a Discover Scan result.
Functions
otSeekerGetUdpPort
uint16_t otSeekerGetUdpPort( otInstance *aInstance )
Gets the Seeker UDP port (unsecure port).
| Details | |||
|---|---|---|---|
| Parameters |
|
||
| Returns |
The Seeker UDP port.
|
otSeekerIsRunning
bool otSeekerIsRunning( otInstance *aInstance )
Indicates whether or not the Seeker is running.
| Details | |||||
|---|---|---|---|---|---|
| Parameters |
|
||||
| Return Values |
|
otSeekerSetUdpPort
otError otSeekerSetUdpPort( otInstance *aInstance, uint16_t aUdpPort )
Sets the Seeker UDP port (unsecure port).
This UDP port can only be changed when the Seeker is not running.
| Details | |||||
|---|---|---|---|---|---|
| Parameters |
|
||||
| Return Values |
|
otSeekerSetUpNextConnection
otError otSeekerSetUpNextConnection( otInstance *aInstance, otSockAddr *aSockAddr )
Selects the next best candidate and prepares the connection.
This function MUST be called after the discovery scan has completed (indicated by the otSeekerScanEvaluator callback receiving NULL). Calling it before scan completion will result in OT_ERROR_INVALID_STATE.
This function iterates through the discovered Joiner Router candidates in order of priority. For the selected candidate, it configures the radio channel and PAN ID, and populates aSockAddr with the candidate's address. It also registers the Seeker UDP port otSeekerGetUdpPort() as an unsecure port to allow a UDP connection to the candidate. The next layer code can start sending UDP messages to the given otSockAddr ensuring to use the unsecure Seeker UDP port as the source port. These messages are then forwarded by the Joiner Router onward to a Commissioner/Enroller connected via a Border Agent/Admitter.
If the list is exhausted, this function returns OT_ERROR_NOT_FOUND and automatically calls otSeekerStop(), which removes the unsecure port and clears internal state.
| Details | |||||||
|---|---|---|---|---|---|---|---|
| Parameters |
|
||||||
| Return Values |
|
otSeekerStart
otError otSeekerStart( otInstance *aInstance, otSeekerScanEvaluator aScanEvaluator, void *aContext )
Starts the Seeker operation.
The Seeker generates and sets a random MAC address for anonymity, then initiates an MLE Discover Scan to find Joiner Router candidates.
Found candidates are reported to the aScanEvaluator callback. Based on the returned otSeekerVerdict, the Seeker maintains a prioritized list of candidates for future connection attempts.
| Details | |||||||
|---|---|---|---|---|---|---|---|
| Parameters |
|
||||||
| Return Values |
|
otSeekerStop
void otSeekerStop( otInstance *aInstance )
Stops the Seeker operation.
This function stops any ongoing discovery or connection process, unregisters the unsecure Joiner/Seeker UDP port, and clears internal state. If the Seeker is already stopped, this method has no effect.
If the join process succeeds after a call to otSeekerSetUpNextConnection(), the caller MUST call this method to stop the Seeker and, importantly, unregister the Seeker UDP port as an unsecure port.
| Details | |||
|---|---|---|---|
| Parameters |
|
Resources
OpenThread API Reference topics originate from the source code, available on GitHub. For more information, or to contribute to our documentation, refer to Resources.