### otThreadDiscoveryRequestInfo
https://openthread.io/reference/struct/ot-thread-discovery-request-info
```
#include <thread.h>
```
#### Public attributes
1. mExtAddress
```
otExtAddress otThreadDiscoveryRequestInfo::mExtAddress
IEEE 802.15.4 Extended Address of the requester.
```
2. mIsJoiner
```
bool otThreadDiscoveryRequestInfo::mIsJoiner
Whether is from joiner.
```
3. mVersion
```
uint8_t otThreadDiscoveryRequestInfo::mVersion
Thread version.
```
### otThreadParentResponseInfo
https://openthread.io/reference/struct/ot-thread-parent-response-info
#### Public attributes
1. mExtAddr
```
otExtAddress otThreadParentResponseInfo::mExtAddr
IEEE 802.15.4 Extended Address of the Parent.
```
2. mIsAttached
```
bool otThreadParentResponseInfo::mIsAttached
Is the node receiving parent response attached.
```
3. mLinkQuality1
```
uint8_t otThreadParentResponseInfo::mLinkQuality1
Parent Link Quality 1.
```
4. mLinkQuality2
```
uint8_t otThreadParentResponseInfo::mLinkQuality2
Parent Link Quality 2.
```
5. mLinkQuality3
```
uint8_t otThreadParentResponseInfo::mLinkQuality3
Parent Link Quality 3.
```
6. mPriority
```
int8_t otThreadParentResponseInfo::mPriority
Parent priority.
```
7. mRloc16
```
uint16_t otThreadParentResponseInfo::mRloc16
Short address of the Parent.
```
8. mRssi
```
int8_t otThreadParentResponseInfo::mRssi
Rssi of the Parent.
```
### otThreadDiscoveryRequestCallback
```
void(* otThreadDiscoveryRequestCallback)(const otThreadDiscoveryRequestInfo *aInfo, void *aContext)
```
This function pointer is called every time an MLE Discovery Request message is received.
[in] aInfo - A pointer to the Discovery Request info data.
[in] aContext - A pointer to callback application-specific context.
### otThreadParentResponseCallback
```
void(* otThreadParentResponseCallback)(otThreadParentResponseInfo *aInfo, void *aContext)
```
[in] aInfo - A pointer to a location on stack holding the stats data.
[in] aContext - A pointer to callback client-specific context.
### otThreadDiscover
```
otError otThreadDiscover(
otInstance *aInstance,
uint32_t aScanChannels,
uint16_t aPanId,
bool aJoiner,
bool aEnableEui64Filtering,
otHandleActiveScanResult aCallback,
void *aCallbackContext
)
```
This function starts a Thread Discovery scan.
Parameters
```
[in] aInstance A pointer to an OpenThread instance.
[in] aScanChannels A bit vector indicating which channels to scan (e.g. OT_CHANNEL_11_MASK).
[in] aPanId The PAN ID filter (set to Broadcast PAN to disable filter).
[in] aJoiner Value of the Joiner Flag in the Discovery Request TLV.
[in] aEnableEui64Filtering TRUE to filter responses on EUI-64, FALSE otherwise.
[in] aCallback A pointer to a function called on receiving an MLE Discovery Response or scan completes.
[in] aCallbackContext A pointer to application-specific context.
```
Return Values
```
OT_ERROR_NONE Successfully started a Thread Discovery Scan.
OT_ERROR_INVALID_STATE The IPv6 interface is not enabled (netif is not up).
OT_ERROR_NO_BUFS Could not allocate message for Discovery Request.
OT_ERROR_BUSY Thread Discovery Scan is already in progress.
```
### otNetDataGet
This method provides a full or stable copy of the Partition's Thread Network Data.
```
otError otNetDataGet(
otInstance *aInstance,
bool aStable,
uint8_t *aData,
uint8_t *aDataLength
)
```
### otThreadGetLeaderData
This function get the Thread Leader Data.
```
otError otThreadGetLeaderData(
otInstance *aInstance,
otLeaderData *aLeaderData
)
```
```
[in] aInstance A pointer to an OpenThread instance.
[out] aLeaderData A pointer to where the leader data is placed.
OT_ERROR_NONE Successfully retrieved the leader data.
OT_ERROR_DETACHED Not currently attached.
```
### otThreadGetParentInfo
```
otError otThreadGetParentInfo(
otInstance *aInstance,
otRouterInfo *aParentInfo
)
```
The function retrieves diagnostic information for a Thread Router as parent.
```
[in] aInstance A pointer to an OpenThread instance.
[out] aParentInfo A pointer to where the parent router information is placed.
```
### otThreadIsDiscoverInProgress
```
bool otThreadIsDiscoverInProgress(
otInstance *aInstance
)
```
This function determines if an MLE Thread Discovery is currently in progress.
```
[in] aInstance A pointer to an OpenThread instance.
```
### otThreadRegisterParentResponseCallback
```
void otThreadRegisterParentResponseCallback(
otInstance *aInstance,
otThreadParentResponseCallback aCallback,
void *aContext
)
```
This function registers a callback to receive MLE Parent Response data.
```
[in] aInstance A pointer to an OpenThread instance.
[in] aCallback A pointer to a function that is called upon receiving an MLE Parent Response message.
[in] aContext A pointer to callback client-specific context.
```
### otThreadSetDiscoveryRequestCallback
```
void otThreadSetDiscoveryRequestCallback(
otInstance *aInstance,
otThreadDiscoveryRequestCallback aCallback,
void *aContext
)
```
This function sets a callback to receive MLE Discovery Request data.
```
[in] aInstance A pointer to an OpenThread instance.
[in] aCallback A pointer to a function that is called upon receiving an MLE Discovery Request message.
[in] aContext A pointer to callback application-specific context.
````
### otThreadSetJoinerAdvertisement
```
otError otThreadSetJoinerAdvertisement(
otInstance *aInstance,
uint32_t aOui,
const uint8_t *aAdvData,
uint8_t aAdvDataLength
)
```
This method sets the Thread Joiner Advertisement when discovering Thread network.
Thread Joiner Advertisement is used to allow a Joiner to advertise its own application-specific information (such as Vendor ID, Product ID, Discriminator, etc.) via a newly-proposed Joiner Advertisement TLV, and to make this information available to Commissioners or Commissioner Candidates without human interaction.
```
[in] aInstance A pointer to an OpenThread instance.
[in] aOui The Vendor IEEE OUI value that will be included in the Joiner Advertisement. Only the least significant 3 bytes will be used, and the most significant byte will be ignored.
[in] aAdvData A pointer to the AdvData that will be included in the Joiner Advertisement.
[in] aAdvDataLength The length of AdvData in bytes.
OT_ERROR_NONE Successfully set Joiner Advertisement.
OT_ERROR_INVALID_ARGS Invalid AdvData.
```