VOL-1221: OpenOLT Adapter/Driver will use a Technology Profile Instance to create the OLT Upstream and Downstream Queuing and Scheduling Constructs for a Bidirectional Flow.

Change-Id: I8106182a280ee24147e2b19da583d95c254c69ad
diff --git a/agent/common/core.h b/agent/common/core.h
index 812a9b5..840d0c8 100644
--- a/agent/common/core.h
+++ b/agent/common/core.h
@@ -30,13 +30,11 @@
 
 Status Enable_(int argc, char *argv[]);
 Status ActivateOnu_(uint32_t intf_id, uint32_t onu_id,
-    const char *vendor_id, const char *vendor_specific, uint32_t pir,
-    uint32_t alloc_id);
+    const char *vendor_id, const char *vendor_specific, uint32_t pir);
 Status DeactivateOnu_(uint32_t intf_id, uint32_t onu_id,
     const char *vendor_id, const char *vendor_specific);
 Status DeleteOnu_(uint32_t intf_id, uint32_t onu_id,
-    const char *vendor_id, const char *vendor_specific,
-    uint32_t alloc_id);
+    const char *vendor_id, const char *vendor_specific);
 Status EnablePonIf_(uint32_t intf_id);
 Status DisablePonIf_(uint32_t intf_id);
 Status EnableUplinkIf_(uint32_t intf_id);
@@ -48,17 +46,17 @@
 Status ProbeDeviceCapabilities_();
 Status ProbePonIfTechnology_();
 Status UplinkPacketOut_(uint32_t intf_id, const std::string pkt);
-Status FlowAdd_(int32_t onu_id,
+Status FlowAdd_(int32_t access_intf_id, int32_t onu_id,
                 uint32_t flow_id, const std::string flow_type,
-                int32_t access_intf_id, int32_t network_intf_id,
-                uint32_t gemport_id, uint32_t sched_id,
-                int32_t priority_value,
-                const ::openolt::Classifier& classifier,
-                const ::openolt::Action& action);
+                int32_t alloc_id, int32_t network_intf_id,
+                int32_t gemport_id, const ::openolt::Classifier& classifier,
+                const ::openolt::Action& action, int32_t priority_value);
 Status FlowRemove_(uint32_t flow_id, const std::string flow_type);
 Status Disable_();
 Status Reenable_();
 Status GetDeviceInfo_(openolt::DeviceInfo* device_info);
+Status CreateTconts_(const openolt::Tconts *tconts);
+Status RemoveTconts_(const openolt::Tconts *tconts);
 
 void stats_collection();
 #endif
diff --git a/agent/common/server.cc b/agent/common/server.cc
index e40f0cf..b556e06 100644
--- a/agent/common/server.cc
+++ b/agent/common/server.cc
@@ -67,8 +67,7 @@
             request->intf_id(),
             request->onu_id(),
             ((request->serial_number()).vendor_id()).c_str(),
-            ((request->serial_number()).vendor_specific()).c_str(),
-            request->pir(), request->alloc_id());
+            ((request->serial_number()).vendor_specific()).c_str(), request->pir());
     }
 
     Status DeactivateOnu(
@@ -90,8 +89,7 @@
             request->intf_id(),
             request->onu_id(),
             ((request->serial_number()).vendor_id()).c_str(),
-            ((request->serial_number()).vendor_specific()).c_str(),
-            request->alloc_id());
+            ((request->serial_number()).vendor_specific()).c_str());
     }
 
     Status OmciMsgOut(
@@ -128,16 +126,16 @@
             const openolt::Flow* request,
             openolt::Empty* response) override {
         return FlowAdd_(
+            request->access_intf_id(),
             request->onu_id(),
             request->flow_id(),
             request->flow_type(),
-            request->access_intf_id(),
+            request->alloc_id(),
             request->network_intf_id(),
             request->gemport_id(),
-            request->alloc_id(),
-            request->priority(),
             request->classifier(),
-            request->action());
+            request->action(),
+            request->priority());
     }
 
     Status FlowRemove(
@@ -256,7 +254,23 @@
 
     }
 
+    Status CreateTconts(
+            ServerContext* context,
+            const openolt::Tconts* request,
+            openolt::Empty* response) override {
+        std::cout << "create tconts";
+        CreateTconts_(request);
+        return Status::OK;
+    };
 
+    Status RemoveTconts(
+            ServerContext* context,
+            const openolt::Tconts* request,
+            openolt::Empty* response) override {
+        std::cout << "remove tconts";
+        RemoveTconts_(request);
+        return Status::OK;
+    };
 
 };