netd: HAL implmentation
Implement Netd HAL server and register service.
OEM network create and destroy
Test: ran VtsHalNetNetdV1_0TargetTest, netd_unit_test, netd_integration_test
Bug: 36682246
CRs-fixed: 2070022
Change-Id: I35681f0fbffbe09bf6db0ad25a276844ea997398
(cherry picked from commit 9560bedd6ce334d64d4e9e9331d00f90f5103e0e)
diff --git a/server/main.cpp b/server/main.cpp
index 27596f7..176d321 100644
--- a/server/main.cpp
+++ b/server/main.cpp
@@ -42,6 +42,7 @@
#include "MDnsSdListener.h"
#include "NFLogListener.h"
#include "NetdConstants.h"
+#include "NetdHwService.h"
#include "NetdNativeService.h"
#include "NetlinkManager.h"
#include "Stopwatch.h"
@@ -54,6 +55,7 @@
using android::net::CommandListener;
using android::net::DnsProxyListener;
using android::net::FwmarkServer;
+using android::net::NetdHwService;
using android::net::NetdNativeService;
using android::net::NetlinkManager;
using android::net::NFLogListener;
@@ -150,6 +152,15 @@
write_pid_file();
+ // Now that netd is ready to process commands, advertise service
+ // availability for HAL clients.
+ NetdHwService mHwSvc;
+ if ((ret = mHwSvc.start()) != android::OK) {
+ ALOGE("Unable to start NetdHwService: %d", ret);
+ exit(1);
+ }
+ ALOGI("Registering NetdHwService: %.1fms", subTime.getTimeAndReset());
+
ALOGI("Netd started in %dms", static_cast<int>(s.timeTaken()));
IPCThreadState::self()->joinThreadPool();