1313
1414#include " srsran/f1u/cu_up/f1u_bearer_logger.h"
1515#include " srsran/f1u/cu_up/f1u_gateway.h"
16- #include " srsran/f1u/cu_up/f1u_tx_pdu_notifier.h"
1716#include " srsran/f1u/du/f1u_bearer_logger.h"
1817#include " srsran/f1u/du/f1u_gateway.h"
1918#include " srsran/srslog/srslog.h"
@@ -27,7 +26,7 @@ namespace srsran {
2726// /
2827// / It will keep a notifier to the DU NR-U RX and provide the methods to pass
2928// / an SDU to it.
30- class f1u_gateway_cu_bearer : public srs_cu_up ::f1u_tx_pdu_notifier
29+ class f1u_gateway_cu_bearer : public f1u_cu_up_gateway_bearer
3130{
3231public:
3332 f1u_gateway_cu_bearer (uint32_t ue_index,
@@ -44,7 +43,9 @@ class f1u_gateway_cu_bearer : public srs_cu_up::f1u_tx_pdu_notifier
4443 {
4544 }
4645
47- ~f1u_gateway_cu_bearer () override { disconnector.disconnect_cu_bearer (ul_tnl_info); }
46+ ~f1u_gateway_cu_bearer () override { stop (); }
47+
48+ void stop () override { disconnector.disconnect_cu_bearer (ul_tnl_info); }
4849
4950 void attach_du_handler (srs_du::f1u_du_gateway_bearer_rx_notifier& handler_,
5051 const up_transport_layer_info& dl_tnl_info_)
@@ -93,7 +94,7 @@ class f1u_gateway_cu_bearer : public srs_cu_up::f1u_tx_pdu_notifier
9394 task_executor& ul_exec;
9495};
9596
96- class f1u_gateway_du_bearer : public srs_du ::f1u_tx_pdu_notifier
97+ class f1u_gateway_du_bearer : public srs_du ::f1u_du_gateway_bearer
9798{
9899public:
99100 f1u_gateway_du_bearer (uint32_t ue_index,
@@ -112,6 +113,8 @@ class f1u_gateway_du_bearer : public srs_du::f1u_tx_pdu_notifier
112113
113114 ~f1u_gateway_du_bearer () override { disconnector.remove_du_bearer (dl_tnl_info); }
114115
116+ void stop () override { disconnector.remove_du_bearer (dl_tnl_info); }
117+
115118 void attach_cu_handler (f1u_cu_up_gateway_bearer_rx_notifier& handler_)
116119 {
117120 std::unique_lock<std::mutex> lock (handler_mutex);
@@ -161,28 +164,28 @@ class f1u_local_connector final : public srs_du::f1u_du_gateway, public f1u_cu_u
161164 srs_du::f1u_du_gateway* get_f1u_du_gateway () { return this ; }
162165 f1u_cu_up_gateway* get_f1u_cu_up_gateway () { return this ; }
163166
164- std::unique_ptr<srs_cu_up::f1u_tx_pdu_notifier > create_cu_bearer (uint32_t ue_index,
165- drb_id_t drb_id,
166- const srs_cu_up::f1u_config& config,
167- const up_transport_layer_info& ul_up_tnl_info,
168- f1u_cu_up_gateway_bearer_rx_notifier& rx_notifier,
169- task_executor& ul_exec,
170- timer_factory ue_dl_timer_factory,
171- unique_timer& ue_inactivity_timer) override ;
167+ std::unique_ptr<f1u_cu_up_gateway_bearer > create_cu_bearer (uint32_t ue_index,
168+ drb_id_t drb_id,
169+ const srs_cu_up::f1u_config& config,
170+ const up_transport_layer_info& ul_up_tnl_info,
171+ f1u_cu_up_gateway_bearer_rx_notifier& rx_notifier,
172+ task_executor& ul_exec,
173+ timer_factory ue_dl_timer_factory,
174+ unique_timer& ue_inactivity_timer) override ;
172175
173176 void attach_dl_teid (const up_transport_layer_info& ul_up_tnl_info,
174177 const up_transport_layer_info& dl_up_tnl_info) override ;
175178
176179 void disconnect_cu_bearer (const up_transport_layer_info& ul_up_tnl_info) override ;
177180
178- std::unique_ptr<srs_du::f1u_tx_pdu_notifier > create_du_bearer (uint32_t ue_index,
179- drb_id_t drb_id,
180- srs_du::f1u_config config,
181- const up_transport_layer_info& dl_up_tnl_info,
182- const up_transport_layer_info& ul_up_tnl_info,
183- srs_du::f1u_du_gateway_bearer_rx_notifier& du_rx,
184- timer_factory timers,
185- task_executor& ue_executor) override ;
181+ std::unique_ptr<srs_du::f1u_du_gateway_bearer > create_du_bearer (uint32_t ue_index,
182+ drb_id_t drb_id,
183+ srs_du::f1u_config config,
184+ const up_transport_layer_info& dl_up_tnl_info,
185+ const up_transport_layer_info& ul_up_tnl_info,
186+ srs_du::f1u_du_gateway_bearer_rx_notifier& du_rx,
187+ timer_factory timers,
188+ task_executor& ue_executor) override ;
186189
187190 void remove_du_bearer (const up_transport_layer_info& dl_up_tnl_info) override ;
188191
0 commit comments