diff --git a/agent/common/core.h b/agent/common/core.h
index 01e09a0..22ef8a9 100644
--- a/agent/common/core.h
+++ b/agent/common/core.h
@@ -42,7 +42,7 @@
 unsigned NumNniIf_();
 unsigned NumPonIf_();
 Status OmciMsgOut_(uint32_t intf_id, uint32_t onu_id, const std::string pkt);
-Status OnuPacketOut_(uint32_t intf_id, uint32_t onu_id, uint32_t port_no, const std::string pkt);
+Status OnuPacketOut_(uint32_t intf_id, uint32_t onu_id, uint32_t port_no, uint32_t gemport_id, const std::string pkt);
 Status ProbeDeviceCapabilities_();
 Status ProbePonIfTechnology_();
 Status UplinkPacketOut_(uint32_t intf_id, const std::string pkt);
@@ -55,8 +55,10 @@
 Status Disable_();
 Status Reenable_();
 Status GetDeviceInfo_(openolt::DeviceInfo* device_info);
-Status CreateTconts_(const openolt::Tconts *tconts);
-Status RemoveTconts_(const openolt::Tconts *tconts);
+Status CreateTrafficSchedulers_(const tech_profile::TrafficSchedulers *traffic_scheds);
+Status RemoveTrafficSchedulers_(const tech_profile::TrafficSchedulers *traffic_scheds);
+Status CreateTrafficQueues_(const tech_profile::TrafficQueues *traffic_queues);
+Status RemoveTrafficQueues_(const tech_profile::TrafficQueues *traffic_queues);
 uint32_t GetPortNum_(uint32_t flow_id);
 
 void stats_collection();
diff --git a/agent/common/server.cc b/agent/common/server.cc
index 03707cd..f87b85e 100644
--- a/agent/common/server.cc
+++ b/agent/common/server.cc
@@ -31,6 +31,7 @@
 
 #include <grpc++/grpc++.h>
 #include <openolt.grpc.pb.h>
+#include <tech_profile.grpc.pb.h>
 
 using grpc::Server;
 using grpc::ServerBuilder;
@@ -110,6 +111,7 @@
             request->intf_id(),
             request->onu_id(),
             request->port_no(),
+            request->gemport_id(),
             request->pkt());
     }
 
@@ -258,19 +260,35 @@
 
     }
 
-    Status CreateTconts(
+    Status CreateTrafficSchedulers(
             ServerContext* context,
-            const openolt::Tconts* request,
+            const tech_profile::TrafficSchedulers* request,
             openolt::Empty* response) override {
-        CreateTconts_(request);
+        CreateTrafficSchedulers_(request);
         return Status::OK;
     };
 
-    Status RemoveTconts(
+    Status RemoveTrafficSchedulers(
             ServerContext* context,
-            const openolt::Tconts* request,
+            const tech_profile::TrafficSchedulers* request,
             openolt::Empty* response) override {
-        RemoveTconts_(request);
+        RemoveTrafficSchedulers_(request);
+        return Status::OK;
+    };
+
+    Status CreateTrafficQueues(
+            ServerContext* context,
+            const tech_profile::TrafficQueues* request,
+            openolt::Empty* response) override {
+        CreateTrafficQueues_(request);
+        return Status::OK;
+    };
+
+    Status RemoveTrafficQueues(
+            ServerContext* context,
+            const tech_profile::TrafficQueues* request,
+            openolt::Empty* response) override {
+        RemoveTrafficQueues_(request);
         return Status::OK;
     };
 
