@@ -741,7 +741,7 @@ struct expert_upper_phy_appconfig {
741741 // / Higher values increase the downlink processing pipeline length, which improves performance and stability for
742742 // / demanding cell configurations, such as using large bandwidths or higher order MIMO. Higher values also increase
743743 // / the round trip latency of the radio link.
744- unsigned max_processing_delay_slots = 2U ;
744+ unsigned max_processing_delay_slots = 5U ;
745745 // / Number of PUSCH LDPC decoder iterations.
746746 unsigned pusch_decoder_max_iterations = 6 ;
747747 // / Set to true to enable the PUSCH LDPC decoder early stop.
@@ -887,6 +887,8 @@ struct ru_ofh_cell_appconfig {
887887 ru_ofh_base_cell_appconfig cell;
888888 // / Ethernet network interface name.
889889 std::string network_interface = " enp1s0f0" ;
890+ // / Promiscuous mode flag.
891+ bool enable_promiscuous_mode = true ;
890892 // / Radio Unit MAC address.
891893 std::string ru_mac_address = " 70:b3:d5:e1:5b:06" ;
892894 // / Distributed Unit MAC address.
@@ -962,15 +964,6 @@ struct upper_phy_threads_appconfig {
962964
963965// / Lower PHY thread configuration fo the gNB.
964966struct lower_phy_threads_appconfig {
965- lower_phy_threads_appconfig ()
966- {
967- // Set the lower PHY thread profile according to the number of CPU cores.
968- if (srsran::compute_host_nof_hardware_threads () >= 8U ) {
969- execution_profile = lower_phy_thread_profile::quad;
970- } else {
971- execution_profile = lower_phy_thread_profile::dual;
972- }
973- }
974967 // / \brief Lower physical layer thread profile.
975968 // /
976969 // / If not configured, a default value is selected based on the number of available CPU cores.
@@ -984,6 +977,41 @@ struct ofh_threads_appconfig {
984977
985978// / Expert threads configuration of the gNB app.
986979struct expert_threads_appconfig {
980+ expert_threads_appconfig ()
981+ {
982+ unsigned nof_threads = compute_host_nof_hardware_threads ();
983+
984+ if (nof_threads < 4 ) {
985+ upper_threads.nof_ul_threads = 1 ;
986+ upper_threads.nof_pusch_decoder_threads = 0 ;
987+ upper_threads.nof_pdsch_threads = 1 ;
988+ upper_threads.nof_dl_threads = 1 ;
989+ lower_threads.execution_profile = lower_phy_thread_profile::single;
990+ ofh_threads.is_downlink_parallelized = false ;
991+ } else if (nof_threads < 8 ) {
992+ upper_threads.nof_ul_threads = 1 ;
993+ upper_threads.nof_pusch_decoder_threads = 1 ;
994+ upper_threads.nof_pdsch_threads = 2 ;
995+ upper_threads.nof_dl_threads = 2 ;
996+ lower_threads.execution_profile = lower_phy_thread_profile::dual;
997+ ofh_threads.is_downlink_parallelized = true ;
998+ } else if (nof_threads < 16 ) {
999+ upper_threads.nof_ul_threads = 1 ;
1000+ upper_threads.nof_pusch_decoder_threads = 1 ;
1001+ upper_threads.nof_pdsch_threads = 4 ;
1002+ upper_threads.nof_dl_threads = 2 ;
1003+ lower_threads.execution_profile = lower_phy_thread_profile::quad;
1004+ ofh_threads.is_downlink_parallelized = true ;
1005+ } else {
1006+ upper_threads.nof_ul_threads = 2 ;
1007+ upper_threads.nof_pusch_decoder_threads = 2 ;
1008+ upper_threads.nof_pdsch_threads = 8 ;
1009+ upper_threads.nof_dl_threads = 4 ;
1010+ lower_threads.execution_profile = lower_phy_thread_profile::quad;
1011+ ofh_threads.is_downlink_parallelized = true ;
1012+ }
1013+ }
1014+
9871015 // / Upper PHY thread configuration of the gNB app.
9881016 upper_phy_threads_appconfig upper_threads;
9891017 // / Lower PHY thread configuration of the gNB app.
0 commit comments