SL PSBCH: MAC->PHY cfg, PSBCH scheduler + supporting functions + enable system testing & scope
- Phy config update and Sidelink frame parameters initialisation - PSBCH scheduler to trigger TX PSBCH/RX PSBCH actions - Sidelink indication with rx ind to trigger send SL-MIB to MAC - Enable Scope for PSBCH use -d or --dqt - Enable system testing of PSBCH for example using RFSIMULATOR: - UE1 is a SYNCRONISATION SOURCE UE which transmits PSBCH started using command - sudo ./nr-uesoftmodem --sl-mode 2 --sync-ref 4 --rfsim --rfsimulator.serveraddr server - UE2 syncs onto UE1 during sidelink search, gets the timing and continues to receive PSBCH started using command - sudo ./nr-uesoftmodem --sl-mode 2 --rfsim --rfsimulator.serveraddr 127.0.0.1 - In the default use case 2 Sidelink SSBs sent over 16 frames. - In case SL-SSB configuration needs to be changed use -O option in the above command like -O ../../../targets/PROJECTS/NR-SIDELINK/CONF/sidelink_preconfig_1txpool.conf
This commit is contained in:
@@ -42,6 +42,15 @@
|
||||
#include "NR_Packet_Drop.h"
|
||||
#include "nfapi/open-nFAPI/nfapi/public_inc/sidelink_nr_ue_interface.h"
|
||||
|
||||
typedef enum sl_sidelink_slot_type {
|
||||
|
||||
SIDELINK_SLOT_TYPE_NONE = 0,
|
||||
SIDELINK_SLOT_TYPE_RX,
|
||||
SIDELINK_SLOT_TYPE_TX,
|
||||
SIDELINK_SLOT_TYPE_BOTH
|
||||
|
||||
} sl_sidelink_slot_type_t;
|
||||
|
||||
extern slot_rnti_mcs_s slot_rnti_mcs[NUM_NFAPI_SLOT];
|
||||
|
||||
typedef struct NR_UL_TIME_ALIGNMENT NR_UL_TIME_ALIGNMENT_t;
|
||||
@@ -106,6 +115,8 @@ typedef struct {
|
||||
frame_t frame_tx;
|
||||
/// slot tx
|
||||
uint32_t slot_tx;
|
||||
// slot type rx or tx
|
||||
sl_sidelink_slot_type_t slot_type;
|
||||
|
||||
/// NR UE FAPI-like P7 message, direction: L1 to L2
|
||||
/// data reception indication structure
|
||||
@@ -199,7 +210,7 @@ typedef int8_t (nr_ue_scheduled_response_f)(nr_scheduled_response_t *scheduled_r
|
||||
* -1: Failed to consume bytes. Abort the mission.
|
||||
* Non-negative return values indicate success, and ignored.
|
||||
*/
|
||||
typedef int8_t (nr_sl_ue_scheduled_response_f)(nr_scheduled_response_t *sl_scheduled_response);
|
||||
typedef void (nr_sl_ue_scheduled_response_f)(nr_scheduled_response_t *sl_scheduled_response);
|
||||
|
||||
|
||||
/*
|
||||
@@ -218,7 +229,7 @@ typedef int8_t (nr_ue_phy_config_request_f)(nr_phy_config_t *phy_config);
|
||||
* -1: Failed to consume bytes. Abort the mission.
|
||||
* Non-negative return values indicate success, and ignored.
|
||||
*/
|
||||
typedef int8_t (nr_sl_ue_phy_config_request_f)(nr_sl_phy_config_t *sl_phy_config);
|
||||
typedef void(nr_ue_sl_phy_config_request_f)(nr_sl_phy_config_t *sl_phy_config);
|
||||
|
||||
/*
|
||||
* Generic type of an application-defined callback to return various
|
||||
@@ -254,12 +265,13 @@ typedef void (nr_ue_slot_indication_f)(uint8_t mod_id);
|
||||
* -1: Failed to consume bytes. Abort the mission.
|
||||
* Non-negative return values indicate success, and ignored.
|
||||
*/
|
||||
typedef int (nr_ue_sl_indication_f)(nr_sidelink_indication_t *sl_info);
|
||||
typedef void (nr_ue_sl_indication_f)(nr_sidelink_indication_t *sl_info);
|
||||
|
||||
// TODO check this stuff can be reuse of need modification
|
||||
typedef struct nr_ue_if_module_s {
|
||||
nr_ue_scheduled_response_f *scheduled_response;
|
||||
nr_ue_phy_config_request_f *phy_config_request;
|
||||
nr_ue_sl_phy_config_request_f *sl_phy_config_request;
|
||||
nr_ue_synch_request_f *synch_request;
|
||||
nr_ue_dl_indication_f *dl_indication;
|
||||
nr_ue_ul_indication_f *ul_indication;
|
||||
@@ -304,5 +316,7 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info);
|
||||
|
||||
int nr_ue_ul_indication(nr_uplink_indication_t *ul_info);
|
||||
|
||||
void nr_ue_sl_indication(nr_sidelink_indication_t *sl_indication);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user