[VOL-3239] Fix MAC address reported to adapter when
Edgecore OLT is running in In-band mode.
-The openolt-agent report the MAC address of the interface on which the GRPC server is listening on.

Change-Id: Iee44d8247c7b86b312d6e289ab0607af6bf57c5d
diff --git a/agent/src/core_api_handler.cc b/agent/src/core_api_handler.cc
index 9975c36..147582c 100644
--- a/agent/src/core_api_handler.cc
+++ b/agent/src/core_api_handler.cc
@@ -217,8 +217,23 @@
 
     char device_id[OPENOLT_FIELD_LEN];
     memset(device_id, '\0', OPENOLT_FIELD_LEN);
-    openolt_read_sysinfo("MAC", device_id);
-    OPENOLT_LOG(INFO, openolt_log_id, "Fetched device mac address %s\n", device_id);
+
+    if (grpc_server_interface_name != NULL) {
+       if (get_intf_mac(grpc_server_interface_name, device_id, sizeof(device_id)) != NULL)
+       {
+           OPENOLT_LOG(INFO, openolt_log_id, "Fetched mac address %s of an interface %s\n", device_id, grpc_server_interface_name);
+       }
+       else
+       {
+           OPENOLT_LOG(ERROR, openolt_log_id, "Mac address of an interface %s is NULL\n", grpc_server_interface_name);
+       }
+    }
+    else
+    {
+       openolt_read_sysinfo("MAC", device_id);
+       OPENOLT_LOG(INFO, openolt_log_id, "Fetched device mac address %s\n", device_id);
+    }
+
     device_info->set_device_id(device_id);
 
     // Legacy, device-wide ranges. To be deprecated when adapter