VOL-955 Handling of port stats in OFAgent

Change-Id: Ib73bcb539dc573e577e5c9d736e425256c6a8972
diff --git a/ofagent/of_protocol_handler.py b/ofagent/of_protocol_handler.py
index d6aa92d..8d09461 100644
--- a/ofagent/of_protocol_handler.py
+++ b/ofagent/of_protocol_handler.py
@@ -249,10 +249,16 @@
     def handle_meter_features_request(self, req):
         self.cxn.send(ofp.message.bad_request_error_msg())
 
+    @inlineCallbacks
     def handle_port_stats_request(self, req):
-        port_stats = []  # see https://jira.opencord.org/browse/CORD-825
-        self.cxn.send(ofp.message.port_stats_reply(
-            xid=req.xid,entries=port_stats))
+        try:
+            ports = yield self.rpc.list_ports(self.device_id)
+            port_stats = [to_loxi(p.ofp_port_stats) for p in ports]
+            of_message = ofp.message.port_stats_reply(
+                xid=req.xid,entries=port_stats)
+            self.cxn.send(of_message)
+        except:
+            log.exception('failed-port_stats-request', req=req)
 
     @inlineCallbacks
     def handle_port_desc_request(self, req):