diff --git a/voltha/adapters/asfvolt16_olt/protos/bal_indications.proto b/voltha/adapters/asfvolt16_olt/protos/bal_indications.proto
new file mode 100644
index 0000000..dd132e3
--- /dev/null
+++ b/voltha/adapters/asfvolt16_olt/protos/bal_indications.proto
@@ -0,0 +1,181 @@
+//
+// Copyright 2017 the original author or authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+syntax = "proto3";
+
+import "bal_model_ids.proto";
+import "bal_errno.proto";
+import "bal_model_types.proto";
+
+enum BalAlarmIndStatus{
+    BAL_ALARM_IND_CLEARED = 0; //Alarm cleared
+    BAL_ALARM_IND_RAISED  = 1; //Alarm raised
+}
+
+//ONU alarm info
+message BalOnuAlarmInfo{
+    uint32  onu_id = 1;  //onu id
+    BalSerialNumber serial_number = 2; //serial number of the ONU
+    BalAlarmIndStatus onu_alarm_status = 3; //status of the alarm raised by ONU
+    string onu_alarm_name = 4; //name of the alarm raised by ONU
+}
+
+//OLT alarm info
+message BalOltAlarmInfo{
+    uint32  olt_no = 1; //olt number
+    uint32  deviceId = 2; //pon interface number of the corresponding OLT
+    BalAlarmIndStatus olt_alarm_status = 3; //status of the alarm raised by OLT
+    string olt_alarm_name = 4; //name of the alarm raised by OLT
+}
+
+//Alarms generated by the system
+message BalAlarmInfo{
+    uint32  NoOfAlarmsPresent = 1;  //number of alarms present in the BAL system currently
+    BalOnuAlarmInfo onuAlarmInfo = 2; //ONU alarm info
+    BalOltAlarmInfo oltAlarmInfo = 3; //OLT alarm info
+}
+
+//NNI statistics
+message BalNniStatsInfo{
+    uint32      nni_rx_frames_64 = 1;
+    uint32      nni_rx_frames_65_127 = 2;
+    uint32      nni_rx_frames_128_255 = 3;
+    uint32      nni_rx_frames_256_511 = 4;
+    uint32      nni_rx_frames_512_1023 = 5;
+    uint32      nni_rx_frames_1024_1518 = 6;
+    uint32      nni_rx_frames_1519_2047 = 7;
+    uint32      nni_rx_frames_2048_4095 = 8;
+    uint32      nni_rx_frames_4096_9216 = 9;
+    uint32      nni_rx_frames_9217_16383 = 10;
+    uint32      nni_rx_frames = 11;
+    uint32      nni_rx_bytes = 12;
+    uint32      nni_rx_good_frames = 13;
+    uint32      nni_rx_unicast_frames = 14;
+    uint32      nni_rx_multicast_frames = 15;
+    uint32      nni_rx_broadcast_frames = 16;
+    uint32      nni_rx_fcs_errors = 17;
+    uint32      nni_rx_control_frames = 18;
+    uint32      nni_rx_pause_frames = 19;
+    uint32      nni_rx_pfc_frames = 20;
+    uint32      nni_rx_unsupported_opcode = 21;
+    uint32      nni_rx_unsupported_da = 22;
+    uint32      nni_rx_alignment_errors = 23;
+    uint32      nni_rx_length_out_of_range = 24;
+    uint32      nni_rx_code_errors = 25;
+    uint32      nni_rx_oversized_frames = 26;
+    uint32      nni_rx_jabber_frames = 27;
+    uint32      nni_rx_mtu_check_errors = 28;
+    uint32      nni_rx_promiscuous_frames = 29;
+    uint32      nni_rx_vlan_frames = 30;
+    uint32      nni_rx_double_vlan_frames = 31;
+    uint32      nni_rx_truncated_frames = 32;
+    uint32      nni_rx_undersize_frames = 33;
+    uint32      nni_rx_fragmented_frames = 34;
+    uint32      nni_rx_runt_frames = 35;
+    uint32      nni_tx_frames_64 = 36;
+    uint32      nni_tx_frames_65_127 = 37;
+    uint32      nni_tx_frames_128_255 = 38;
+    uint32      nni_tx_frames_256_511 = 39;
+    uint32      nni_tx_frames_512_1023 = 40;
+    uint32      nni_tx_frames_1024_1518 = 41;
+    uint32      nni_tx_frames_1519_2047 = 42;
+    uint32      nni_tx_frames_2048_4095 = 44;
+    uint32      nni_tx_frames_4096_9216 = 45;
+    uint32      nni_tx_frames_9217_16383 = 46;
+    uint32      nni_tx_frames = 47;
+    uint32      nni_tx_bytes = 48;
+    uint32      nni_tx_good_frames = 49;
+    uint32      nni_tx_unicast_frames = 50;
+    uint32      nni_tx_multicast_frames = 51;
+    uint32      nni_tx_broadcast_frames = 52;
+    uint32      nni_tx_pause_frames = 53;
+    uint32      nni_tx_pfc_frames = 54;
+    uint32      nni_tx_jabber_frames = 55;
+    uint32      nni_tx_fcs_errors = 56;
+    uint32      nni_tx_control_frames = 57;
+    uint32      nni_tx_oversize_frames = 58;
+    uint32      nni_tx_fragmented_frames = 59;
+    uint32      nni_tx_error_frames = 60;
+    uint32      nni_tx_vlan_frames = 61;
+    uint32      nni_tx_double_vlan_frames = 62;
+    uint32      nni_tx_runt_frames = 63;
+    uint32      nni_tx_underrun_frames = 64;
+}
+
+//PON statistics
+message BalPonNiStatsInfo{
+    uint32       pon_ni_tx_packets = 1;
+    uint32       pon_ni_rx_omci = 2;
+    uint32       pon_ni_tx_omci = 3;
+    uint32       pon_ni_rx_xgem = 4;
+    uint32       pon_ni_tx_xgem = 5;
+}
+
+//Gem port based statistics
+message BalPonGemStatsInfo{
+    uint32       pon_gem_rx_packets = 1;
+    uint32       pon_gem_rx_bytes = 2;
+    uint32       pon_gem_tx_packets = 3;
+    uint32       pon_gem_tx_bytes = 4;
+}
+
+//ONU statistics
+message BalOnuStatsInfo{
+    uint32       onu_id = 1;
+    uint32       onu_rx_words = 2;
+    uint32       onu_rx_omci = 3;
+    uint32       onu_positive_drift = 4;
+    uint32       onu_negative_drift = 5;
+}
+
+enum BalIndStatsType{
+    BAL_IND_NNI_STATS     = 0;
+    BAL_IND_PON_STATS     = 1;
+    BAL_IND_PON_GEM_STATS = 2;
+    BAL_IND_ONU_STATS     = 3;
+}
+
+message BalIndStatsInfo{
+    uint32                device_id = 1; //pon interface number of the corresponding OLT
+    BalIndStatsType       stats_type = 2; //type of statistics
+    BalNniStatsInfo       nni_stats = 3; //nni statistics info
+    BalPonNiStatsInfo     pon_ni_stats = 4; //pon based statistics
+    BalPonGemStatsInfo    pon_gem_stats = 5; //gem port based statistics
+    BalOnuStatsInfo       onu_stats = 6; //onu statistics
+}
+
+message BalIndications{
+    BalObjId     objType = 1; //type of object for which the indications have been received
+    BalErrno     status  = 2; //status of the indication received from BAL utilities
+    string       keyStr  = 3; //key string containing additional data
+    oneof u {
+          bytes        pktData = 4; //raw packet in case of object type is PACKET
+          BalAlarmInfo balAlarmInfo = 5; //alarm info from BAL
+          BalIndStatsInfo balStatsInfo = 6; //statistics info from BAL
+    }
+}
+
+message BalErr {
+    BalErrno err = 1;
+}
+
+service BalInd {
+
+    //Handling of bal indications from the device
+    rpc BalIndInfo(BalIndications) returns(BalErr) {}
+
+}
+
