VOL-1023 - Supporting multiple UNI per ONU

To support multiple UNIs on a given ONU, OpenOLT Driver is updated to support
an abstract opaque cookie that is registered with all controller-bound trap
flows. This cookie is supplied back to adapter during all packet indications.
OpenOLT adapter will use this cookie to track the OF logical port that should
be used to reflect the origin of packet to OF controller.

For outbound packets from controller, the system needs to inject frames
directly onto a GEM port rather than towards "any GEM" associated with the ONU.
This is necessary to send to various UNIs on one ONU. This is achieved by
registering the OF logical port number with the flow and gemport(s) associated
with the port. The OF Out packet will include the logical port number and
hence can be tracked back to a registered GEM for that UNI.

Change-Id: I1085a4b44d12b9402a431c41083e3a5cdb4764b9
diff --git a/agent/common/server.cc b/agent/common/server.cc
index b556e06..03707cd 100644
--- a/agent/common/server.cc
+++ b/agent/common/server.cc
@@ -109,6 +109,7 @@
         return OnuPacketOut_(
             request->intf_id(),
             request->onu_id(),
+            request->port_no(),
             request->pkt());
     }
 
@@ -128,6 +129,8 @@
         return FlowAdd_(
             request->access_intf_id(),
             request->onu_id(),
+            request->uni_id(),
+            request->port_no(),
             request->flow_id(),
             request->flow_type(),
             request->alloc_id(),
@@ -135,7 +138,8 @@
             request->gemport_id(),
             request->classifier(),
             request->action(),
-            request->priority());
+            request->priority(),
+            request->cookie());
     }
 
     Status FlowRemove(
@@ -258,7 +262,6 @@
             ServerContext* context,
             const openolt::Tconts* request,
             openolt::Empty* response) override {
-        std::cout << "create tconts";
         CreateTconts_(request);
         return Status::OK;
     };
@@ -267,7 +270,6 @@
             ServerContext* context,
             const openolt::Tconts* request,
             openolt::Empty* response) override {
-        std::cout << "remove tconts";
         RemoveTconts_(request);
         return Status::OK;
     };