(VOL-4972)PON and ONU object get apis (the pipeline will fail until
the protos changes (https://gerrit.opencord.org/c/voltha-protos/+/34069)
get merged)
Change-Id: I38c11ae873a24c7b20594b0d484565085f4432a5
diff --git a/agent/src/core_utils.cc b/agent/src/core_utils.cc
index dafc68c..9bc7659 100644
--- a/agent/src/core_utils.cc
+++ b/agent/src/core_utils.cc
@@ -891,6 +891,51 @@
return err;
}
+bcmos_errno get_gpon_onu_info(bcmolt_interface pon_ni, int onu_id, bcmolt_onu_state *onu_state, bcmolt_status *losi, bcmolt_status *lofi, bcmolt_status *loami)
+{
+
+ bcmos_errno err;
+ bcmolt_onu_cfg onu_cfg;
+ bcmolt_itu_onu_params itu = {};
+ bcmolt_gpon_onu_alarm_state alarm_state = {};
+ bcmolt_gpon_onu_params gpon = {};
+
+ bcmolt_onu_cfg onu_cfg_itu;
+ bcmolt_onu_key onu_key;
+ onu_key.pon_ni = pon_ni;
+ onu_key.onu_id = onu_id;
+
+ BCMOLT_CFG_INIT(&onu_cfg, onu, onu_key);
+ BCMOLT_FIELD_SET_PRESENT(&onu_cfg.data, onu_cfg_data, onu_state);
+
+ BCMOLT_FIELD_SET_PRESENT(&onu_cfg.data, onu_cfg_data, itu);
+
+ BCMOLT_FIELD_SET_PRESENT(&itu, itu_onu_params, gpon);
+ BCMOLT_FIELD_SET_PRESENT(&gpon, gpon_onu_params, alarm_state);
+
+ BCMOLT_FIELD_SET_PRESENT(&alarm_state, gpon_onu_alarm_state, losi);
+ BCMOLT_FIELD_SET_PRESENT(&alarm_state, gpon_onu_alarm_state, lofi);
+ BCMOLT_FIELD_SET_PRESENT(&alarm_state, gpon_onu_alarm_state, loami);
+
+ BCMOLT_FIELD_SET(&gpon, gpon_onu_params, alarm_state, alarm_state);
+
+ BCMOLT_FIELD_SET(&itu, itu_onu_params, gpon, gpon);
+
+ BCMOLT_FIELD_SET(&onu_cfg.data, onu_cfg_data, itu, itu);
+
+ err = bcmolt_cfg_get(dev_id, &onu_cfg.hdr);
+
+ *onu_state = onu_cfg.data.onu_state;
+ // fetch onu itu
+ *losi = onu_cfg.data.itu.gpon.alarm_state.losi;
+
+ *lofi = onu_cfg.data.itu.gpon.alarm_state.lofi;
+
+ *loami = onu_cfg.data.itu.gpon.alarm_state.loami;
+
+ return err;
+}
+
bcmos_errno get_gem_obj_state(bcmolt_interface pon_ni, bcmolt_gem_port_id id, bcmolt_activation_state *state) {
bcmos_errno err;
bcmolt_itupon_gem_cfg cfg;