MIB NR: pdcch_ConfigSIB1 selection and fill
This commit is contained in:
@@ -43,30 +43,30 @@
|
|||||||
extern RAN_CONTEXT_t RC;
|
extern RAN_CONTEXT_t RC;
|
||||||
|
|
||||||
int8_t mac_rrc_nr_data_req(const module_id_t Mod_idP,
|
int8_t mac_rrc_nr_data_req(const module_id_t Mod_idP,
|
||||||
const int CC_id,
|
const int CC_id,
|
||||||
const frame_t frameP,
|
const frame_t frameP,
|
||||||
const rb_id_t Srb_id,
|
const rb_id_t Srb_id,
|
||||||
const uint8_t Nb_tb,
|
const uint8_t Nb_tb,
|
||||||
uint8_t *const buffer_pP) {
|
uint8_t *const buffer_pP ){
|
||||||
|
|
||||||
asn_enc_rval_t enc_rval;
|
asn_enc_rval_t enc_rval;
|
||||||
uint8_t Sdu_size = 0;
|
uint8_t Sdu_size = 0;
|
||||||
uint8_t sfn_msb = (uint8_t) ((frameP >> 4) & 0x3f);
|
uint8_t sfn_msb = (uint8_t)((frameP>>4)&0x3f);
|
||||||
|
|
||||||
#ifdef DEBUG_RRC
|
#ifdef DEBUG_RRC
|
||||||
LOG_D(RRC, "[eNB %d] mac_rrc_data_req to SRB ID=%ld\n", Mod_idP, Srb_id);
|
LOG_D(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%ld\n",Mod_idP,Srb_id);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gNB_RRC_INST *rrc;
|
gNB_RRC_INST *rrc;
|
||||||
rrc_gNB_carrier_data_t *carrier;
|
rrc_gNB_carrier_data_t *carrier;
|
||||||
NR_BCCH_BCH_Message_t *mib;
|
NR_BCCH_BCH_Message_t *mib;
|
||||||
NR_SRB_INFO *srb_info;
|
NR_SRB_INFO * srb_info;
|
||||||
char payload_size, *payload_pP;
|
char payload_size, *payload_pP;
|
||||||
|
|
||||||
rrc = RC.nrrrc[Mod_idP];
|
rrc = RC.nrrrc[Mod_idP];
|
||||||
carrier = &rrc->carrier;
|
carrier = &rrc->carrier;
|
||||||
mib = &carrier->mib;
|
mib = &carrier->mib;
|
||||||
srb_info = &carrier->Srb0;
|
srb_info = &carrier->Srb0;
|
||||||
|
|
||||||
/* MIBCH */
|
/* MIBCH */
|
||||||
if ((Srb_id & RAB_OFFSET) == MIBCH) {
|
if ((Srb_id & RAB_OFFSET) == MIBCH) {
|
||||||
@@ -176,32 +176,31 @@ int8_t mac_rrc_nr_data_req(const module_id_t Mod_idP,
|
|||||||
return (3);
|
return (3);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO BCCH SIB1 SIBs */
|
/* TODO BCCH SIB1 SIBs */
|
||||||
|
|
||||||
/* CCCH */
|
/* CCCH */
|
||||||
if ((Srb_id & RAB_OFFSET) == CCCH) {
|
if( (Srb_id & RAB_OFFSET ) == CCCH) {
|
||||||
//struct rrc_eNB_ue_context_s *ue_context_p = rrc_eNB_get_ue_context(RC.rrc[Mod_idP],rnti);
|
//struct rrc_eNB_ue_context_s *ue_context_p = rrc_eNB_get_ue_context(RC.rrc[Mod_idP],rnti);
|
||||||
//if (ue_context_p == NULL) return(0);
|
//if (ue_context_p == NULL) return(0);
|
||||||
//eNB_RRC_UE_t *ue_p = &ue_context_p->ue_context;
|
//eNB_RRC_UE_t *ue_p = &ue_context_p->ue_context;
|
||||||
LOG_D(RRC, "[gNB %d] Frame %d CCCH request (Srb_id %ld)\n", Mod_idP, frameP, Srb_id);
|
LOG_D(RRC,"[gNB %d] Frame %d CCCH request (Srb_id %ld)\n", Mod_idP, frameP, Srb_id);
|
||||||
|
|
||||||
// srb_info=&ue_p->Srb0;
|
// srb_info=&ue_p->Srb0;
|
||||||
|
|
||||||
payload_size = srb_info->Tx_buffer.payload_size;
|
payload_size = srb_info->Tx_buffer.payload_size;
|
||||||
|
|
||||||
// check if data is there for MAC
|
// check if data is there for MAC
|
||||||
if (payload_size > 0) {
|
if (payload_size > 0) {
|
||||||
payload_pP = srb_info->Tx_buffer.Payload;
|
payload_pP = srb_info->Tx_buffer.Payload;
|
||||||
LOG_D(RRC, "[gNB %d] CCCH (%p) has %d bytes (dest: %p, src %p)\n", Mod_idP, srb_info, payload_size,
|
LOG_D(RRC,"[gNB %d] CCCH (%p) has %d bytes (dest: %p, src %p)\n", Mod_idP, srb_info, payload_size, buffer_pP, payload_pP);
|
||||||
buffer_pP, payload_pP);
|
// Fill buffer
|
||||||
// Fill buffer
|
memcpy((void *)buffer_pP, (void*)payload_pP, payload_size);
|
||||||
memcpy((void *) buffer_pP, (void *) payload_pP, payload_size);
|
Sdu_size = payload_size;
|
||||||
Sdu_size = payload_size;
|
srb_info->Tx_buffer.payload_size = 0;
|
||||||
srb_info->Tx_buffer.payload_size = 0;
|
|
||||||
}
|
|
||||||
return Sdu_size;
|
|
||||||
}
|
}
|
||||||
|
return Sdu_size;
|
||||||
|
}
|
||||||
|
|
||||||
return (0);
|
return(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user