diff --git a/agent/common/core.h b/agent/common/core.h
index 2eb201c..5e5a49b 100644
--- a/agent/common/core.h
+++ b/agent/common/core.h
@@ -215,6 +215,10 @@
     const char *vendor_id, const char *vendor_specific);
 Status EnablePonIf_(uint32_t intf_id);
 Status DisablePonIf_(uint32_t intf_id);
+Status DisableOnuSerialNumber_(const ::openolt::InterfaceOnuSerialNumber* request);
+Status EnableOnuSerialNumber_(const ::openolt::InterfaceOnuSerialNumber* request);
+Status DisableOnu_(const ::openolt::InterfaceOnuSerialNumberOnuId* request);
+Status EnableOnu_(const ::openolt::InterfaceOnuSerialNumberOnuId* request);
 Status SetStateUplinkIf_(uint32_t intf_id, bool set_state);
 uint32_t GetNniSpeed_(uint32_t intf_id);
 unsigned NumNniIf_();
diff --git a/agent/common/server.cc b/agent/common/server.cc
index 507bfc1..5f46a6a 100644
--- a/agent/common/server.cc
+++ b/agent/common/server.cc
@@ -226,6 +226,38 @@
         return DisablePonIf_(request->intf_id());
     }
 
+    Status DisableOnuSerialNumber(
+            ServerContext* context,
+            const openolt::InterfaceOnuSerialNumber* request,
+            openolt::Empty* response) override {
+
+        return DisableOnuSerialNumber_(request);
+    }
+
+    Status EnableOnuSerialNumber(
+            ServerContext* context,
+            const openolt::InterfaceOnuSerialNumber* request,
+            openolt::Empty* response) override {
+
+        return EnableOnuSerialNumber_(request);
+    }
+    
+    Status DisableOnu(
+            ServerContext* context,
+            const openolt::InterfaceOnuSerialNumberOnuId* request,
+            openolt::Empty* response) override {
+
+        return DisableOnu_(request);
+    }
+
+    Status EnableOnu(
+            ServerContext* context,
+            const openolt::InterfaceOnuSerialNumberOnuId* request,
+            openolt::Empty* response) override {
+
+        return EnableOnu_(request);
+    }
+    
     Status CollectStatistics(
             ServerContext* context,
             const openolt::Empty* request,
