[VOL-3728] Support in OLT agent to send periodic onu stats and gem stats
- Add GetOnuStatistics and GetGemPortStatistics API
Change-Id: I2d796600ee6b002edbbd037ba063d1648429ffe7
diff --git a/agent/common/core.h b/agent/common/core.h
index c9c7bf1..ab4c788 100644
--- a/agent/common/core.h
+++ b/agent/common/core.h
@@ -241,6 +241,8 @@
uint32_t GetPortNum_(uint32_t flow_id);
Status GetLogicalOnuDistanceZero_(uint32_t intf_id, openolt::OnuLogicalDistance* response);
Status GetLogicalOnuDistance_(uint32_t intf_id, uint32_t onu_id, openolt::OnuLogicalDistance* response);
+Status GetOnuStatistics_(uint32_t intf_id, uint32_t onu_id, openolt::OnuStatistics *onu_stats);
+Status GetGemPortStatistics_(uint32_t intf_id, uint32_t gemport_id, openolt::GemPortStatistics* gemport_stats);
int get_status_bcm_cli_quit(void);
uint16_t get_dev_id(void);
Status pushOltOperInd(uint32_t intf_id, const char *type, const char *state);
diff --git a/agent/common/server.cc b/agent/common/server.cc
index 0294a34..e04a9ba 100644
--- a/agent/common/server.cc
+++ b/agent/common/server.cc
@@ -326,6 +326,26 @@
request->onu_id(),
response);
};
+
+ Status GetOnuStatistics(
+ ServerContext* context,
+ const openolt::Onu* request,
+ openolt::OnuStatistics* response) override {
+ return GetOnuStatistics_(
+ request->intf_id(),
+ request->onu_id(),
+ response);
+ }
+
+ Status GetGemPortStatistics(
+ ServerContext* context,
+ const openolt::OnuPacket* request,
+ openolt::GemPortStatistics* response) override {
+ return GetGemPortStatistics_(
+ request->intf_id(),
+ request->gemport_id(),
+ response);
+ }
};
void RunServer(int argc, char** argv) {