diff --git a/agent/common/core.h b/agent/common/core.h
index 840d0c8..01e09a0 100644
--- a/agent/common/core.h
+++ b/agent/common/core.h
@@ -42,21 +42,22 @@
 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, const std::string pkt);
+Status OnuPacketOut_(uint32_t intf_id, uint32_t onu_id, uint32_t port_no, const std::string pkt);
 Status ProbeDeviceCapabilities_();
 Status ProbePonIfTechnology_();
 Status UplinkPacketOut_(uint32_t intf_id, const std::string pkt);
-Status FlowAdd_(int32_t access_intf_id, int32_t onu_id,
+Status FlowAdd_(int32_t access_intf_id, int32_t onu_id, int32_t uni_id, uint32_t port_no,
                 uint32_t flow_id, const std::string flow_type,
                 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);
+                const ::openolt::Action& action, int32_t priority_value, uint64_t cookie);
 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);
+uint32_t GetPortNum_(uint32_t flow_id);
 
 void stats_collection();
 #endif
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;
     };
