diff --git a/protos/voltha_protos/openolt.proto b/protos/voltha_protos/openolt.proto
index c26be7a..67a09f9 100755
--- a/protos/voltha_protos/openolt.proto
+++ b/protos/voltha_protos/openolt.proto
@@ -23,6 +23,7 @@
 import "voltha_protos/tech_profile.proto";
 import "voltha_protos/ext_config.proto";
 import "voltha_protos/extensions.proto";
+import "voltha_protos/common.proto";
 
 service Openolt {
 
@@ -252,6 +253,41 @@
           body: "*"
         };
     }
+
+    /*
+     * GetAllocIdStatistics takes onuId and allocId as argument.
+     * This method includes a default wait period of 10 secs before collecting the stats.
+     * The caller has to be aware of this wait and handle it accordingly.
+     * Returns AllocId statistics in the form of OnuAllocStatistics structure
+     */
+    rpc GetAllocIdStatistics(OnuPacket) returns (OnuAllocIdStatistics) {
+        option (google.api.http) = {
+            post: "/v1/GetAllocIdStatistics"
+            body: "*"
+        };
+    }
+
+    /*
+     * GetPonPortStatistics takes interface id and type as argument from Interface structure.
+     * Returns Pon port statistics in the form of PonStatsData structure.
+     */
+     rpc GetPonPortStatistics(Interface) returns (common.PortStatistics) {
+        option (google.api.http) = {
+          post: "/v1/GetPonPortStatistics"
+          body: "*"
+        };
+    }
+
+    /*
+     * GetNniPortStatistics takes takes interface id and type as argument from Interface structure.
+     * Returns Nni port statistics in the form of NniStatsData structure
+     */
+     rpc GetNniPortStatistics(Interface) returns (common.PortStatistics) {
+        option (google.api.http) = {
+          post: "/v1/GetNniPortStatistics"
+          body: "*"
+        };
+    }
 }
 
 message Indication {
@@ -263,7 +299,7 @@
         OnuIndication onu_ind = 5;
         OmciIndication omci_ind = 6;
         PacketIndication pkt_ind = 7;
-        PortStatistics port_stats = 8;
+        common.PortStatistics port_stats = 8;
         FlowStatistics flow_stats = 9;
         AlarmIndication alarm_ind= 10;
     }
@@ -377,6 +413,7 @@
 
 message Interface {
     fixed32 intf_id = 1;
+    fixed32 intf_type = 2;
 }
 
 message Heartbeat {
@@ -409,6 +446,7 @@
     fixed32 onu_id = 2;
     fixed32 port_no = 4;
     fixed32 gemport_id = 5;
+    fixed32 alloc_id = 6;
     bytes pkt = 3;
 }
 
@@ -550,49 +588,6 @@
     bytes vendor_specific = 2;
 }
 
-message PortStatistics {
-    fixed32 intf_id = 1;
-    fixed64 rx_bytes = 2;
-    fixed64 rx_packets = 3;
-    fixed64 rx_ucast_packets = 4;
-    fixed64 rx_mcast_packets = 5;
-    fixed64 rx_bcast_packets = 6;
-    fixed64 rx_error_packets = 7;
-    fixed64 rx_frames = 17;
-    fixed64 rx_frames_64 = 18;
-    fixed64 rx_frames_65_127 = 19;
-    fixed64 rx_frames_128_255 = 20;
-    fixed64 rx_frames_256_511 = 21;
-    fixed64 rx_frames_512_1023 = 22;
-    fixed64 rx_frames_1024_1518 = 23;
-    fixed64 rx_frames_1519_2047 = 24;
-    fixed64 rx_frames_2048_4095 = 25;
-    fixed64 rx_frames_4096_9216 = 26;
-    fixed64 rx_frames_9217_16383 = 27;
-    fixed64 rx_crc_errors = 14;
-
-    fixed64 tx_bytes = 8;
-    fixed64 tx_packets = 9;
-    fixed64 tx_ucast_packets = 10;
-    fixed64 tx_mcast_packets = 11;
-    fixed64 tx_bcast_packets = 12;
-    fixed64 tx_error_packets = 13;
-    fixed64 tx_frames = 28;
-    fixed64 tx_frames_64 = 29;
-    fixed64 tx_frames_65_127 = 30;
-    fixed64 tx_frames_128_255 = 31;
-    fixed64 tx_frames_256_511 = 32;
-    fixed64 tx_frames_512_1023 = 33;
-    fixed64 tx_frames_1024_1518 = 34;
-    fixed64 tx_frames_1519_2047 = 35;
-    fixed64 tx_frames_2048_4095 = 36;
-    fixed64 tx_frames_4096_9216 = 37;
-    fixed64 tx_frames_9217_16383 = 38;
-
-    fixed64 bip_errors = 15;
-    fixed32 timestamp = 16;
-}
-
 message OnuStatistics {
     fixed32 intf_id = 1;
     fixed32 onu_id = 2;
@@ -818,6 +813,12 @@
     double rx_power_mean_dbm = 5;
 }
 
+message OnuAllocIdStatistics {
+    fixed32 intfId = 1;
+    fixed32 allocId = 2;
+    fixed64 rxBytes = 3;
+}
+
 enum AlarmState {
     OFF   = 0;
     ON    = 1;
