X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=fapi_5g%2Fsource%2Finclude%2Fnr5g_fapi_framework.h;h=63cb237507c186b7dfb7f1ec696306f32bbcfa46;hb=refs%2Fchanges%2F60%2F7960%2F1;hp=fea31bf701574009bc88fbd80292f1cc75ca0c8e;hpb=9d66fca5c45c8b3e0d6eab6d51a90c8e9d2614dc;p=o-du%2Fphy.git diff --git a/fapi_5g/source/include/nr5g_fapi_framework.h b/fapi_5g/source/include/nr5g_fapi_framework.h index fea31bf..63cb237 100644 --- a/fapi_5g/source/include/nr5g_fapi_framework.h +++ b/fapi_5g/source/include/nr5g_fapi_framework.h @@ -34,9 +34,13 @@ // FAPI CONFIG.request parameters typedef struct _nr5g_fapi_phy_config { - uint8_t n_nr_of_rx_ant; uint16_t phy_cell_id; -} nr5g_fapi_phy_config_t, *pnr5g_fapi_phy_config_t; + uint8_t n_nr_of_rx_ant; + uint8_t use_vendor_EpreXSSB; + uint8_t sub_c_common; + uint8_t pad[3]; +} nr5g_fapi_phy_config_t, +*pnr5g_fapi_phy_config_t; typedef struct _nr5g_fapi_rach_info { uint16_t phy_cell_id; @@ -62,6 +66,7 @@ typedef struct _nr5g_fapi_ul_slot_info { uint16_t cookie; //set this to frame_no at UL_TTI.Request and compare the //same during uplink indications. uint8_t slot_no; + uint8_t symbol_no; uint8_t num_ulsch; uint8_t num_ulcch; uint8_t num_srs; @@ -177,19 +182,25 @@ typedef struct _nr5g_fapi_phy_instance { nr5g_fapi_phy_config_t phy_config; // place holder to store, // parameters from config request nr5g_fapi_stats_t stats; - nr5g_fapi_ul_slot_info_t ul_slot_info[MAX_UL_SLOT_INFO_COUNT]; -} nr5g_fapi_phy_instance_t, *p_nr5g_fapi_phy_instance_t; + nr5g_fapi_ul_slot_info_t ul_slot_info[FAPI_MAX_SLOT_INFO_URLLC][MAX_UL_SLOT_INFO_COUNT][MAX_UL_SYMBOL_INFO_COUNT]; +} nr5g_fapi_phy_instance_t, +*p_nr5g_fapi_phy_instance_t; // Phy Context typedef struct _nr5g_fapi_phy_context { uint8_t num_phy_instance; uint8_t mac2phy_worker_core_id; uint8_t phy2mac_worker_core_id; + uint8_t urllc_worker_core_id; pthread_t phy2mac_tid; pthread_t mac2phy_tid; - uint64_t process_exit; + pthread_t urllc_tid; + sem_t urllc_sem_process; + sem_t urllc_sem_done; + volatile uint64_t process_exit; nr5g_fapi_phy_instance_t phy_instance[FAPI_MAX_PHY_INSTANCES]; -} nr5g_fapi_phy_ctx_t, *p_nr5g_fapi_phy_ctx_t; +} nr5g_fapi_phy_ctx_t, +*p_nr5g_fapi_phy_ctx_t; // Function Declarations inline p_nr5g_fapi_phy_ctx_t nr5g_fapi_get_nr5g_fapi_phy_ctx( @@ -208,12 +219,17 @@ void *nr5g_fapi_phy2mac_thread_func( void *config); void *nr5g_fapi_mac2phy_thread_func( void *config); +void *nr5g_fapi_urllc_thread_func( + void *config); nr5g_fapi_ul_slot_info_t *nr5g_fapi_get_ul_slot_info( + bool is_urllc, uint16_t frame_no, - uint8_t slot_no, + uint16_t slot_no, + uint8_t symbol_no, p_nr5g_fapi_phy_instance_t p_phy_instance); void nr5g_fapi_set_ul_slot_info( uint16_t frame_no, - uint8_t slot_no, + uint16_t slot_no, + uint8_t symbol_no, nr5g_fapi_ul_slot_info_t * p_ul_slot_info); #endif // _NR5G_FAPI_FRAMEWORK_H_