VOL-253: grpc-c was crashed if we configured wrong VOLTHA IP address
Fix for grpc-c crash, dying gas alarm, kpis and packet data

Change-Id: I172e64afa0f9e9c1492f4871b6fa7ae3152065cd
diff --git a/src/asfvolt16_driver.c b/src/asfvolt16_driver.c
index 24bca9d..662c94c 100755
--- a/src/asfvolt16_driver.c
+++ b/src/asfvolt16_driver.c
@@ -47,6 +47,13 @@
 
     cb_cfg.module = BCMOS_MODULE_ID_NONE;
 
+    /* Access Terminal Operational State Change */
+    cb_cfg.obj_type = BCMBAL_OBJ_ID_ACCESS_TERMINAL;
+    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_acc_term_osc_indication_cb;
+    ind_subgroup = bcmbal_access_terminal_auto_id_oper_status_change;
+    cb_cfg.p_subgroup = &ind_subgroup;
+    err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
+
     /* Register to get indications for interface objects
      */
     cb_cfg.obj_type = BCMBAL_OBJ_ID_INTERFACE;
@@ -63,6 +70,12 @@
     cb_cfg.p_subgroup = &ind_subgroup;
     err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
 
+    /* Interface Operational State Change */
+    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_interface_osc_indication_cb;
+    ind_subgroup = bcmbal_interface_auto_id_oper_status_change;
+    cb_cfg.p_subgroup = &ind_subgroup;
+    err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
+
     /* Register to get indications for subscriber terminal objects
      */
     cb_cfg.obj_type = BCMBAL_OBJ_ID_SUBSCRIBER_TERMINAL;
@@ -73,6 +86,12 @@
     cb_cfg.p_subgroup = &ind_subgroup;
     err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
 
+    /* Subscriber Terminal dgi */
+    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_sub_term_dgi_indication_cb;
+    ind_subgroup = bcmbal_subscriber_terminal_auto_id_dgi;
+    cb_cfg.p_subgroup = &ind_subgroup;
+    err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
+
     /* Subscriber Terminal Discovery */
     cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_sub_term_disc_indication_cb;
     ind_subgroup = bcmbal_subscriber_terminal_auto_id_sub_term_disc;
@@ -85,6 +104,12 @@
     cb_cfg.p_subgroup = &ind_subgroup;
     err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
 
+    /* Subscriber Terminal Operational State Change */
+    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_sub_term_osc_indication_cb;
+    ind_subgroup = bcmbal_subscriber_terminal_auto_id_oper_status_change;
+    cb_cfg.p_subgroup = &ind_subgroup;
+    err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
+
     /* Register to get indication callbacks for OMCI objects
      */
     cb_cfg.obj_type = BCMBAL_OBJ_ID_PACKET;
@@ -100,14 +125,13 @@
     ind_subgroup = bcmbal_packet_auto_id_bearer_channel_rx;
     cb_cfg.p_subgroup = &ind_subgroup;
     err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
-
 #if 0
-    /* Access Terminal Operational State Change */
-    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_acc_term_osc_indication_cb;
-    ind_subgroup = bcmbal_access_terminal_auto_id_oper_status_change;
+    /* OAM Channel Data - oam response indication */
+    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_oam_data_indication_cb;
+    ind_subgroup = bcmbal_packet_auto_id_ieee_oam_channel_rx;
     cb_cfg.p_subgroup = &ind_subgroup;
     err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
-
+#endif
     /* Register to get indication callbacks for flow objects
      */
     cb_cfg.obj_type = BCMBAL_OBJ_ID_FLOW;
@@ -124,38 +148,6 @@
     cb_cfg.p_subgroup = &ind_subgroup;
     err = bcmbal_subscribe_ind(access_term_id, &cb_cfg);
 
-    /* Register to get indication callbacks for group objects
-     */
-    cb_cfg.obj_type = BCMBAL_OBJ_ID_GROUP;
-    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_group_indication_cb;
-    ind_subgroup = bcmbal_group_auto_id_ind;
-    cb_cfg.p_subgroup = &ind_subgroup;
-    err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
-    
-    /* Interface Operational State Change */
-    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_interface_osc_indication_cb;
-    ind_subgroup = bcmbal_interface_auto_id_oper_status_change;
-    cb_cfg.p_subgroup = &ind_subgroup;
-    err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
-
-    /* Interface los */
-    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_interface_los_indication_cb;
-    ind_subgroup = bcmbal_interface_auto_id_los;
-    cb_cfg.p_subgroup = &ind_subgroup;
-    err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
-
-    /* Subscriber Terminal Operational State Change */
-    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_sub_term_osc_indication_cb;
-    ind_subgroup = bcmbal_subscriber_terminal_auto_id_oper_status_change;
-    cb_cfg.p_subgroup = &ind_subgroup;
-    err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
-
-    /* Subscriber Terminal dgi */
-    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_sub_term_dgi_indication_cb;
-    ind_subgroup = bcmbal_subscriber_terminal_auto_id_dgi;
-    cb_cfg.p_subgroup = &ind_subgroup;
-    err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
-
     /* Register to get indication callbacks for tm queue objects
      */
     cb_cfg.obj_type = BCMBAL_OBJ_ID_TM_QUEUE;
@@ -171,15 +163,14 @@
     ind_subgroup = bcmbal_tm_sched_auto_id_ind;
     cb_cfg.p_subgroup = &ind_subgroup;
     err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
-    
-    
-    /* OAM Channel Data - oam response indication */
-    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_oam_data_indication_cb;
-    ind_subgroup = bcmbal_packet_auto_id_ieee_oam_channel_rx;
+
+    /* Register to get indication callbacks for group objects
+     */
+    cb_cfg.obj_type = BCMBAL_OBJ_ID_GROUP;
+    cb_cfg.ind_cb_hdlr = (f_bcmbal_ind_handler)bal_group_indication_cb;
+    ind_subgroup = bcmbal_group_auto_id_ind;
     cb_cfg.p_subgroup = &ind_subgroup;
     err = err ? err : bcmbal_subscribe_ind(access_term_id, &cb_cfg);
-    
-#endif
     return err;
 }