DHCP: implement simple Server/Client (solicit/reply) (#884)

* DHCP implementation
- implementation Dhcp client/server (solicit/reply)
- two build options --enable-dhcp6-server  --enable-dhcp6-client (default disable)
- add Cert_5_3_09_AddressQuery for Dhcp Client/Server test in travis
This commit is contained in:
rongli
2016-10-31 21:38:56 -07:00
committed by Jonathan Hui
parent 196c28d022
commit 3001fc689c
36 changed files with 2844 additions and 33 deletions
+9 -1
View File
@@ -46,6 +46,7 @@
#include <openthread-diag.h>
#include <commissioning/commissioner.h>
#include <commissioning/joiner.h>
#include <dhcp6/dhcp6_client.h>
#include "cli.hpp"
#include "cli_dataset.hpp"
@@ -2469,8 +2470,15 @@ void Interpreter::HandleNetifStateChanged(uint32_t aFlags)
{
VerifyOrExit((aFlags & OT_THREAD_NETDATA_UPDATED) != 0, ;);
otSlaacUpdate(mInstance, mAutoAddresses, sizeof(mAutoAddresses) / sizeof(mAutoAddresses[0]), otCreateRandomIid,
otSlaacUpdate(mInstance, mSlaacAddresses, sizeof(mSlaacAddresses) / sizeof(mSlaacAddresses[0]), otCreateRandomIid,
NULL);
#if OPENTHREAD_ENABLE_DHCP6_SERVER
mInstance->mThreadNetif.GetDhcp6Server().UpdateService();
#endif // OPENTHREAD_ENABLE_DHCP6_SERVER
#if OPENTHREAD_ENABLE_DHCP6_CLIENT
otDhcp6ClientUpdate(mInstance, mDhcpAddresses, sizeof(mDhcpAddresses) / sizeof(mDhcpAddresses[0]), NULL);
#endif // OPENTHREAD_ENABLE_DHCP6_CLIENT
exit:
return;
+5 -1
View File
@@ -45,6 +45,7 @@
#include <cli/cli_server.hpp>
#include <net/icmp6.hpp>
#include <common/timer.hpp>
#include <dhcp6/dhcp6_client.h>
namespace Thread {
@@ -234,7 +235,10 @@ private:
uint32_t sInterval;
Timer sPingTimer;
otNetifAddress mAutoAddresses[kMaxAutoAddresses];
otNetifAddress mSlaacAddresses[OPENTHREAD_CONFIG_NUM_SLAAC_ADDRESSES];
#if OPENTHREAD_ENABLE_DHCP6_CLIENT
otNetifAddress mDhcpAddresses[OPENTHREAD_CONFIG_NUM_DHCP_PREFIXES];
#endif // OPENTHREAD_ENABLE_DHCP6_CLIENT
otInstance *mInstance;
};