Add template listener for getting OEM netd

It is a template OemNetdListener that OEM could extend their
binder interface based on it.

Bug: 120251561
Test: built, flashed, booted
        system/netd/tests/runtests.sh pass

Change-Id: Ida29af3f970f65fafc733617ac091747fe10eb11
diff --git a/tests/binder_test.cpp b/tests/binder_test.cpp
index da55b71..a4ea0fd 100644
--- a/tests/binder_test.cpp
+++ b/tests/binder_test.cpp
@@ -57,6 +57,7 @@
 #include "XfrmController.h"
 #include "android/net/INetd.h"
 #include "binder/IServiceManager.h"
+#include "com/android/internal/net/IOemNetd.h"
 #include "netdutils/Stopwatch.h"
 #include "netdutils/Syscalls.h"
 #include "tun_interface.h"
@@ -3033,3 +3034,18 @@
     // Remove test physical network
     EXPECT_TRUE(mNetd->networkDestroy(TEST_NETID1).isOk());
 }
+
+TEST_F(BinderTest, OemNetdIsAlive) {
+    sp<IBinder> binder;
+    binder::Status status = mNetd->getOemNetd(&binder);
+    EXPECT_TRUE(status.isOk()) << status.exceptionMessage();
+    sp<com::android::internal::net::IOemNetd> oemNetd;
+    if (binder != nullptr) {
+        oemNetd = android::interface_cast<com::android::internal::net::IOemNetd>(binder);
+    }
+
+    TimedOperation t("OemNetd isAlive RPC");
+    bool isAlive = false;
+    oemNetd->isAlive(&isAlive);
+    ASSERT_TRUE(isAlive);
+}