diff --git a/protos/voltha_protos/openolt.proto b/protos/voltha_protos/openolt.proto
index 67a09f9..bc47791 100755
--- a/protos/voltha_protos/openolt.proto
+++ b/protos/voltha_protos/openolt.proto
@@ -288,6 +288,52 @@
           body: "*"
         };
     }
+
+
+    /*
+     * Disable ONU serailnumber, disable device at PLOAM.
+     * Takes input as intfid, onuid, sn of the ONU.
+     * Returns success if the call towards the device is success, error otherwise.
+     */
+    rpc DisableOnu (InterfaceOnuSerialNumberOnuId) returns (Empty) {
+       option (google.api.http) = {
+         post: "/v1/DisableOnu"
+       };
+    }
+
+    /*
+     * Enables ONU serailnumber, enable device at PLOAM.
+     * Takes input as intfid, onuid, sn of the ONU.
+     * Returns success if the call towards the device is success, error otherwise.
+     */
+    rpc EnableOnu (InterfaceOnuSerialNumberOnuId) returns (Empty) {
+       option (google.api.http) = {
+         post: "/v1/EnableOnu"
+       };
+    }
+
+
+    /*
+     * Disable ONU serailnumber, disable device at PLOAM
+     * Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
+     * Returns success if the call towards the device is success, error otherwise.
+     */
+    rpc DisableOnuSerialNumber(InterfaceOnuSerialNumber) returns (Empty) {
+       option (google.api.http) = {
+         post: "/v1/DisableOnuSerialNumber"
+       };
+    }
+
+    /* 
+     * Enables ONU serailnumber, enable device at PLOAM
+     * Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
+     * Returns success if the call towards the device is success, error otherwise.
+     */
+    rpc EnableOnuSerialNumber(InterfaceOnuSerialNumber) returns (Empty) {
+       option (google.api.http) = {
+         post: "/v1/EnableOnuSerialNumber"
+       };
+    }
 }
 
 message Indication {
@@ -302,6 +348,8 @@
         common.PortStatistics port_stats = 8;
         FlowStatistics flow_stats = 9;
         AlarmIndication alarm_ind= 10;
+        OnuDisabledIndication  onu_disabled_ind = 11;
+        OnuEnabledIndication   onu_enabled_ind = 12;
     }
 }
 
@@ -363,6 +411,19 @@
 
 }
 
+message OnuDisabledIndication {
+    fixed32 intf_id = 1;
+    fixed32 onu_id = 2;
+    SerialNumber serial_number = 4;
+}
+
+message OnuEnabledIndication {
+    fixed32 intf_id = 1;
+    fixed32 onu_id = 2;
+    SerialNumber serial_number = 4;
+}
+
+
 message IntfOperIndication {
     string type = 1;		// nni, pon
     fixed32 intf_id = 2;
@@ -864,4 +925,16 @@
     AlarmState   los = 4;
 }
 
+/*
+ * Message used for disabling device by serialnumber, disable at PLOAM
+ */
+message InterfaceOnuSerialNumberOnuId {
+    InterfaceOnuSerialNumber intf_id_serial_num = 1;
+    fixed32          onu_id = 2;
+}
+
+message InterfaceOnuSerialNumber {
+    fixed32          intf_id = 1;
+    SerialNumber     onu_serial_number = 2;
+}
 message Empty {}
