diff --git a/agent/common/core.h b/agent/common/core.h
index d277904..d301a01 100644
--- a/agent/common/core.h
+++ b/agent/common/core.h
@@ -20,6 +20,7 @@
 #include <grpc++/grpc++.h>
 using grpc::Status;
 #include <voltha_protos/openolt.grpc.pb.h>
+#include <voltha_protos/ext_config.grpc.pb.h>
 
 #include "state.h"
 
@@ -200,7 +201,7 @@
 //***************************************//
 Status Enable_(int argc, char *argv[]);
 Status ActivateOnu_(uint32_t intf_id, uint32_t onu_id,
-    const char *vendor_id, const char *vendor_specific, uint32_t pir);
+    const char *vendor_id, const char *vendor_specific, uint32_t pir, bool omcc_encryption_mode);
 Status DeactivateOnu_(uint32_t intf_id, uint32_t onu_id,
     const char *vendor_id, const char *vendor_specific);
 Status DeleteOnu_(uint32_t intf_id, uint32_t onu_id,
@@ -231,7 +232,7 @@
 Status RemoveTrafficQueues_(const tech_profile::TrafficQueues *traffic_queues);
 Status PerformGroupOperation_(const openolt::Group *group_cfg);
 Status DeleteGroup_(uint32_t group_id);
-Status OnuItuPonAlarmSet_(const openolt::OnuItuPonAlarm* request);
+Status OnuItuPonAlarmSet_(const config::OnuItuPonAlarm* request);
 uint32_t GetPortNum_(uint32_t flow_id);
 Status GetLogicalOnuDistanceZero_(uint32_t intf_id, openolt::OnuLogicalDistance* response);
 Status GetLogicalOnuDistance_(uint32_t intf_id, uint32_t onu_id, openolt::OnuLogicalDistance* response);
diff --git a/agent/common/server.cc b/agent/common/server.cc
index 5a30f37..72fc2f7 100644
--- a/agent/common/server.cc
+++ b/agent/common/server.cc
@@ -67,7 +67,7 @@
             request->intf_id(),
             request->onu_id(),
             ((request->serial_number()).vendor_id()).c_str(),
-            ((request->serial_number()).vendor_specific()).c_str(), request->pir());
+            ((request->serial_number()).vendor_specific()).c_str(), request->pir(), request->omcc_encryption());
     }
 
     Status DeactivateOnu(
@@ -318,7 +318,7 @@
 
     Status OnuItuPonAlarmSet(
             ServerContext* context,
-            const openolt::OnuItuPonAlarm* request,
+            const config::OnuItuPonAlarm* request,
             openolt::Empty* response) override {
         return OnuItuPonAlarmSet_(request);
     };
