Thread Commissioning. (#399)

This commit is contained in:
Jonathan Hui
2016-09-08 10:23:11 -07:00
committed by GitHub
parent 4f610ef082
commit 7c2b818d2e
46 changed files with 3987 additions and 130 deletions
+57 -3
View File
@@ -37,6 +37,8 @@
#include <openthread.h>
#include <openthread-diag.h>
#include <commissioning/commissioner.h>
#include <commissioning/joiner.h>
#include "cli.hpp"
#include "cli_dataset.hpp"
@@ -63,15 +65,24 @@ const struct Command Interpreter::sCommands[] =
{ "child", &ProcessChild },
{ "childmax", &ProcessChildMax },
{ "childtimeout", &ProcessChildTimeout },
#if OPENTHREAD_ENABLE_COMMISSIONER
{ "commissioner", &ProcessCommissioner },
#endif
{ "contextreusedelay", &ProcessContextIdReuseDelay },
{ "counter", &ProcessCounters },
{ "dataset", &ProcessDataset },
#if OPENTHREAD_ENABLE_DIAG
{ "diag", &ProcessDiag },
#endif
{ "discover", &ProcessDiscover },
{ "eidcache", &ProcessEidCache },
{ "extaddr", &ProcessExtAddress },
{ "extpanid", &ProcessExtPanId },
{ "ifconfig", &ProcessIfconfig },
{ "ipaddr", &ProcessIpAddr },
#if OPENTHREAD_ENABLE_JOINER
{ "joiner", &ProcessJoiner },
#endif
{ "keysequence", &ProcessKeySequence },
{ "leaderdata", &ProcessLeaderData },
{ "leaderpartitionid", &ProcessLeaderPartitionId },
@@ -101,9 +112,6 @@ const struct Command Interpreter::sCommands[] =
{ "thread", &ProcessThread },
{ "version", &ProcessVersion },
{ "whitelist", &ProcessWhitelist },
#if OPENTHREAD_ENABLE_DIAG
{ "diag", &ProcessDiag },
#endif
};
static otDEFINE_ALIGNED_VAR(sPingTimerBuf, sizeof(Timer), uint64_t);
@@ -1818,6 +1826,52 @@ void Interpreter::ProcessVersion(int argc, char *argv[])
(void)argv;
}
#if OPENTHREAD_ENABLE_COMMISSIONER
void Interpreter::ProcessCommissioner(int argc, char *argv[])
{
ThreadError error = kThreadError_None;
VerifyOrExit(argc > 0, error = kThreadError_Parse);
if (strcmp(argv[0], "start") == 0)
{
otCommissionerStart();
}
else if (strcmp(argv[0], "stop") == 0)
{
otCommissionerStop();
}
exit:
AppendResult(error);
}
#endif // OPENTHREAD_ENABLE_COMMISSIONER
#if OPENTHREAD_ENABLE_JOINER
void Interpreter::ProcessJoiner(int argc, char *argv[])
{
ThreadError error = kThreadError_None;
VerifyOrExit(argc > 0, error = kThreadError_Parse);
if (strcmp(argv[0], "start") == 0)
{
otJoinerStart();
}
else if (strcmp(argv[0], "stop") == 0)
{
otJoinerStop();
}
exit:
AppendResult(error);
}
#endif // OPENTHREAD_ENABLE_JOINER
void Interpreter::ProcessWhitelist(int argc, char *argv[])
{
ThreadError error = kThreadError_None;
+11 -5
View File
@@ -36,10 +36,11 @@
#include <stdarg.h>
#include <openthread-config.h>
#include <cli/cli_server.hpp>
#include <net/icmp6.hpp>
#include <common/timer.hpp>
#include <openthread-config.h>
namespace Thread {
@@ -135,9 +136,15 @@ private:
static void ProcessChild(int argc, char *argv[]);
static void ProcessChildTimeout(int argc, char *argv[]);
static void ProcessChildMax(int argc, char *argv[]);
#if OPENTHREAD_ENABLE_COMMISSIONER
static void ProcessCommissioner(int argc, char *argv[]);
#endif // OPENTHREAD_ENABLE_COMMISSIONER
static void ProcessContextIdReuseDelay(int argc, char *argv[]);
static void ProcessCounters(int argc, char *argv[]);
static void ProcessDataset(int argc, char *argv[]);
#if OPENTHREAD_ENABLE_DIAG
static void ProcessDiag(int argc, char *argv[]);
#endif // OPENTHREAD_ENABLE_DIAG
static void ProcessDiscover(int argc, char *argv[]);
static void ProcessEidCache(int argc, char *argv[]);
static void ProcessExtAddress(int argc, char *argv[]);
@@ -146,6 +153,9 @@ private:
static void ProcessIpAddr(int argc, char *argv[]);
static ThreadError ProcessIpAddrAdd(int argc, char *argv[]);
static ThreadError ProcessIpAddrDel(int argc, char *argv[]);
#if OPENTHREAD_ENABLE_JOINER
static void ProcessJoiner(int argc, char *argv[]);
#endif // OPENTHREAD_ENABLE_JOINER
static void ProcessKeySequence(int argc, char *argv[]);
static void ProcessLeaderData(int argc, char *argv[]);
static void ProcessLeaderPartitionId(int argc, char *argv[]);
@@ -181,10 +191,6 @@ private:
static void ProcessVersion(int argc, char *argv[]);
static void ProcessWhitelist(int argc, char *argv[]);
#if OPENTHREAD_ENABLE_DIAG
static void ProcessDiag(int argc, char *argv[]);
#endif
static void HandleEchoResponse(void *aContext, Message &aMessage, const Ip6::MessageInfo &aMessageInfo);
static void HandlePingTimer(void *aContext);
static void HandleActiveScanResult(otActiveScanResult *aResult, void *aContext);
+1 -1
View File
@@ -507,7 +507,7 @@ ThreadError Dataset::ProcessMgmtGetCommand(int argc, char *argv[])
}
else if (strcmp(argv[index], "localprefix") == 0)
{
tlvs[length++] = OT_MESHCOP_TLV_LOCALPREFIX;
tlvs[length++] = OT_MESHCOP_TLV_MESHLOCALPREFIX;
}
else if (strcmp(argv[index], "delaytimer") == 0)
{